Add JoinQuant simulated trading automation
This commit is contained in:
@@ -559,6 +559,27 @@ def test_browser_config_template_and_placeholder_resolution(tmp_path):
|
||||
assert resolve_template("save:{expected_joinquant_csvs.fills}", context) == "save:/tmp/jq_fills.csv"
|
||||
|
||||
|
||||
def test_sim_trade_browser_config_template(tmp_path):
|
||||
config_path = write_browser_config_template(
|
||||
tmp_path / "sim_config.json",
|
||||
strategy_url="https://www.joinquant.com/sim",
|
||||
flow="sim-trade",
|
||||
)
|
||||
config = json.loads(config_path.read_text())
|
||||
|
||||
assert config["flow"] == "sim-trade"
|
||||
selectors = " ".join(
|
||||
action.get("selector", "") for action in config["actions"]
|
||||
)
|
||||
assert "模拟盘" in selectors
|
||||
assert "模拟交易" in selectors
|
||||
assert any(
|
||||
action["type"] == "screenshot"
|
||||
and action["path"] == "{run_artifact_dir}/sim_trade_final.png"
|
||||
for action in config["actions"]
|
||||
)
|
||||
|
||||
|
||||
def test_joinquant_cli_browser_config_smoke(tmp_path):
|
||||
runner = CliRunner()
|
||||
config_path = tmp_path / "browser_config.json"
|
||||
@@ -574,3 +595,17 @@ def test_joinquant_cli_browser_config_smoke(tmp_path):
|
||||
assert result.exit_code == 0, result.output
|
||||
assert config_path.exists()
|
||||
assert default_browser_config()["actions"]
|
||||
|
||||
sim_config_path = tmp_path / "sim_browser_config.json"
|
||||
result = runner.invoke(cli, [
|
||||
"joinquant",
|
||||
"write-browser-config",
|
||||
"--out-path",
|
||||
str(sim_config_path),
|
||||
"--strategy-url",
|
||||
"https://www.joinquant.com/sim",
|
||||
"--flow",
|
||||
"sim-trade",
|
||||
])
|
||||
assert result.exit_code == 0, result.output
|
||||
assert json.loads(sim_config_path.read_text())["flow"] == "sim-trade"
|
||||
|
||||
Reference in New Issue
Block a user