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、配置、状态存储和趋势策略组件供 main.py 调用。
"""
from __future__ import annotations
import time
import logging as log
from concurrent.futures import Future, ThreadPoolExecutor
@@ -161,7 +159,7 @@ def RunOnce(run: Runtime, 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)

View File

@@ -1,8 +1,7 @@
"""趋势策略开仓逻辑。"""
from __future__ import annotations
from datetime import datetime
from functools import lru_cache
from libs import calc_buy_volume
from sdk import OP_BUY
@@ -164,6 +163,7 @@ def check_timezone(timezone: str, now: datetime | None = None) -> bool:
return False
@lru_cache(maxsize=256)
def _parse_minutes(value: str) -> int | None:
"""把 ``时:分`` 转换为当天分钟数,无效值返回 None。"""
try:

View File

@@ -1,7 +1,5 @@
"""趋势策略持仓止盈与分级补仓。"""
from __future__ import annotations
from dataclasses import dataclass
from libs.calc import calc_buy_volume, calculate_min_profit_rate
@@ -34,7 +32,7 @@ def manage_positions(
# 遍历处理每个持仓
for position in positions:
try:
available = max(0, 0, available)
available = max(0, available)
code = position.stock_code
tick = ticks.get(code)
if code in runtime.account_cfg.excluded_codes:
@@ -130,7 +128,7 @@ def handle_profit(
False,
f"上涨至 {pnl_rate:.2f}%,峰值网格={observation.current_grid}",
)
if observation.state in {GridState.STEADY}:
if observation.state == GridState.STEADY:
return TradeDecision(False)
if runtime.orders.busy(position.stock_code, "SELL"):
return TradeDecision(False, "卖出委托处理中")