This commit is contained in:
2026-09-07 21:22:51 +08:00
parent 9778d54f3d
commit ba61ed5de7
28 changed files with 303 additions and 64 deletions

View File

@@ -3,8 +3,6 @@
该模块负责组合 SDK、配置、状态存储和做 T 策略组件,供 main.py 调用。
"""
from __future__ import annotations
from concurrent.futures import Future, ThreadPoolExecutor
import logging as log
import time
@@ -143,7 +141,7 @@ def RunOnce(run: Runtime, state: TState, signals: list[SignalItem]) -> None:
allow_open: list[SignalItem] = []
allow_codes: list[str] = []
for signal in signals:
if signal.code not in position_codes:
if signal.code not in portfolio.positions:
allow_open.append(signal)
allow_codes.append(signal.code)
@@ -196,4 +194,4 @@ def _wait_worker(name: str, future: Future) -> None:
try:
future.result()
except Exception:
log.exception("[运行] %s线程失败", name)
log.exception("[运行] %s线程失败", name)

View File

@@ -1,7 +1,5 @@
"""使用 dcm 信号建立做 T 底仓。"""
from __future__ import annotations
from datetime import datetime
import logging as log
import math

View File

@@ -1,7 +1,5 @@
"""日内先卖后买的做 T 规则,不包含趋势补仓或整仓止盈。"""
from __future__ import annotations
import logging as log
import math

View File

@@ -1,7 +1,5 @@
"""做 T 策略的持仓状态和逐笔实际成交记录。"""
from __future__ import annotations
import math
from dataclasses import dataclass
from datetime import datetime
@@ -115,7 +113,10 @@ class TState:
self.items[code] = TStateItem(code, -delta)
for row in rows:
item = self.items.setdefault(row['stock_code'], TStateItem(row['stock_code']))
code = row['stock_code']
item = self.items.get(code)
if item is None:
item = self.items[code] = TStateItem(code)
self._reset(item, row['trade_date'])
qty, amount = row['volume'], row['trade_amount']
if row['order_local_id'].startswith('zt-base-'):