hamuna-quant-cli 0.1.19__tar.gz → 0.1.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/PKG-INFO +1 -1
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/__init__.py +1 -1
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/qmt_broker.py +23 -1
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/PKG-INFO +1 -1
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/pyproject.toml +1 -1
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/MANIFEST.in +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/README.md +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/README.md +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/__main__.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/_market_fallback.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/_metrics_15.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/_test_akquant_parity.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/akquant_data_adapter.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/akquant_runner.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/akquant_schema_adapter.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/base_strategy.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/cross_sectional_helpers.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/__init__.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/loader.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/qmt_market.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/runner.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/server_market_client.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/prebuilt_downloader.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/prebuilt_resolver.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/qmt_translator.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/__init__.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/backtest.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/cache.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/discipline.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/http_client.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/s3client.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/server_client.py +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/scripts/server.json +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/SOURCES.txt +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/dependency_links.txt +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/entry_points.txt +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/requires.txt +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/top_level.txt +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/setup.cfg +0 -0
- {hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/tests/test_live_safety.py +0 -0
|
@@ -291,7 +291,21 @@ def _make_trader_gateway():
|
|
|
291
291
|
|
|
292
292
|
# ----- 生命周期 -----
|
|
293
293
|
def connect(self) -> None:
|
|
294
|
-
"""
|
|
294
|
+
"""POST /set_account 设全局账户 + /account 验证桥活.
|
|
295
|
+
|
|
296
|
+
Round 18.63.12: 先 /set_account 设置 bridge 全局 ACCOUNT_ID — 否则
|
|
297
|
+
桌面 app 轮询 /orders /positions 等不带 account_id 的请求报
|
|
298
|
+
ACCOUNT_NOT_CONFIGURED (仅 CLI 请求带 account_id 不够, bridge 全局
|
|
299
|
+
账户未设, 无 account_id 的请求全部 400).
|
|
300
|
+
"""
|
|
301
|
+
set_resp = self._http.post("/set_account", {
|
|
302
|
+
"account_id": self._account_id,
|
|
303
|
+
"account_type": self._account_type,
|
|
304
|
+
})
|
|
305
|
+
if not isinstance(set_resp, dict) or not set_resp.get("ok"):
|
|
306
|
+
raise BrokerHTTPError(
|
|
307
|
+
f"connect: /set_account 返回异常: {set_resp!r}"
|
|
308
|
+
)
|
|
295
309
|
data = self._http.post("/account", {
|
|
296
310
|
"account_id": self._account_id,
|
|
297
311
|
"account_type": self._account_type,
|
|
@@ -733,6 +747,14 @@ if __name__ == "__main__":
|
|
|
733
747
|
|
|
734
748
|
def do_POST(self):
|
|
735
749
|
data = self._read_json()
|
|
750
|
+
if "/set_account" in self.path:
|
|
751
|
+
# Round 18.63.12: connect() 先 POST /set_account 设全局账户 —
|
|
752
|
+
# mock 同步返回 ok, 否则 paper 模式 connect 抛异常.
|
|
753
|
+
self._send(200, {"ok": True, "value": {
|
|
754
|
+
"account_id": data.get("account_id"),
|
|
755
|
+
"account_type": data.get("account_type") or "stock",
|
|
756
|
+
}})
|
|
757
|
+
return
|
|
736
758
|
if "/account" in self.path:
|
|
737
759
|
self._send(200, {"ok": True, "value": {
|
|
738
760
|
"account_id": data.get("account_id"), "account_type": "stock",
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hamuna-quant-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.20"
|
|
8
8
|
description = "Hamuna A 股回测 + 实盘统一 CLI (akquant 0.3.x). 替代 v1 自建 driver + QMT-style 策略规范."
|
|
9
9
|
readme = "hamuna_quant_cli/README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/_test_akquant_parity.py
RENAMED
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/akquant_data_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/akquant_schema_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/cross_sectional_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/live/server_market_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli/runtime/server_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{hamuna_quant_cli-0.1.19 → hamuna_quant_cli-0.1.20}/hamuna_quant_cli.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|