gagha
This commit is contained in:
@@ -10,7 +10,14 @@ from DrissionPage import ChromiumOptions
|
||||
|
||||
from bitmart.api_contract import APIContract
|
||||
|
||||
# 方案B:从 strategy 模块获取实盘信号(需先运行 AI 策略训练保存模型,并保持 models/database.db 有最新 15m/5m/1h K 线,例如运行 抓取多周期K线.py)
|
||||
# ---------------------------------------------------------------------------
|
||||
# 开单逻辑:完全由 方案B(AI 策略)驱动
|
||||
# - 方案B:strategy.ai_strategy 的 get_live_signal(period=15),返回 0=观望 1=做多 2=做空
|
||||
# - 每根新 15 分钟 K 线取一次信号,再根据当前持仓转为 开多/开空/反手多/反手空,由 execute_trade 执行开单
|
||||
# 前置条件:
|
||||
# 1. 先运行方案B训练并保存模型(如 run_scheme_b_train.py 或 strategy.compare 方案B)
|
||||
# 2. models/database.db 中有最新 15m/5m/1h K 线(如运行 抓取多周期K线.py)
|
||||
# ---------------------------------------------------------------------------
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
||||
from strategy.ai_strategy import get_live_signal
|
||||
|
||||
@@ -698,13 +705,13 @@ class BitmartFuturesTransaction:
|
||||
time.sleep(3)
|
||||
continue
|
||||
|
||||
# 4. 方案B:仅在新的 15 分钟 K 线时取一次信号(0=观望, 1=做多, 2=做空)
|
||||
# 4. 方案B 开单:新 15m K 线取一次 AI 信号 -> 转为开仓/反手 -> 下方执行开单
|
||||
current_15m_id = int(time.time() // 900) * 900 # 15 分钟 bar 起始时间戳
|
||||
signal = None
|
||||
if current_15m_id != self.last_kline_time:
|
||||
self.last_kline_time = current_15m_id
|
||||
logger.info(f"进入新 15m K 线: {current_15m_id}")
|
||||
raw = get_live_signal(period=15)
|
||||
raw = get_live_signal(period=15) # 方案B:0=观望 1=做多 2=做空
|
||||
logger.info(f"方案B 信号: {raw} (0=观望 1=做多 2=做空), 当前持仓: {self.start}")
|
||||
if raw == 1:
|
||||
if self.start == 0:
|
||||
@@ -729,7 +736,7 @@ class BitmartFuturesTransaction:
|
||||
else:
|
||||
self._current_kline_id_for_open = current_15m_id # 供 execute_trade 成功后记录
|
||||
|
||||
# 6. 有信号则执行交易
|
||||
# 6. 方案B 开单:有信号则执行(开多/开空/反手多/反手空)
|
||||
if signal:
|
||||
trade_success = self.execute_trade(signal)
|
||||
if trade_success:
|
||||
|
||||
Reference in New Issue
Block a user