add zt_open_hands

This commit is contained in:
2026-09-14 19:11:58 +08:00
parent 9eac1d2e10
commit c8151f4a3f
26 changed files with 126 additions and 550 deletions

View File

@@ -22,6 +22,10 @@ from libs.snapshot import cache_portfolio
def StartZT() -> None:
if config.account_config.zt_open_hands == 0:
log.info("[ZT] zt_open_hands=0不启动策略")
return
client = Client(
config.global_config.qmt_base_url,
config.global_config.qmt_token,

View File

@@ -4,7 +4,6 @@ from datetime import datetime
from functools import lru_cache
import math
from libs import calc_buy_volume
from sdk import OP_BUY
from libs.runtime import Runtime
from libs.order import PlaceOrderRequest
@@ -45,8 +44,8 @@ def open_signal(run: Runtime, ticks, open_signals) -> None:
log.info("[OpenSkip] %s 信号=%s,跳过:价格无效", item.code, item.signal_key)
continue
# 5. 根据单笔买入金额计算整手开仓数量
volume = calc_buy_volume(price, run.account_cfg.buy_value)
# 5. 按配置的固定手数开仓,每手 100 股
volume = run.account_cfg.zt_open_hands * 100
if volume <= 0:
log.info("[OpenSkip] %s 信号=%s,跳过:数量无效", item.code, item.signal_key)
continue

View File

@@ -3,7 +3,7 @@
from dataclasses import dataclass
import math
from libs.calc import calc_buy_volume, calculate_min_profit_rate
from libs.calc import calculate_min_profit_rate
from libs.grid_take_profit import GridState
from sdk import OP_BUY, OP_SELL, PositionItem, Tick
from libs.state import State
@@ -190,7 +190,7 @@ def handle_loss(
if runtime.orders.busy(stock_code, "BUY"):
return TradeDecision(False, "买入委托处理中")
volume = calc_buy_volume(tick.last_price, runtime.account_cfg.buy_value)
volume = runtime.account_cfg.zt_open_hands * 100
amount = tick.last_price * volume
if volume <= 0 or amount > available:
return TradeDecision(False, "本轮可用资金不足")