优化反手

This commit is contained in:
27942
2026-02-04 00:35:42 +08:00
parent 9785c46fec
commit aef0e89631

View File

@@ -356,6 +356,9 @@ class BitmartFuturesTransaction:
logger.info("开始运行三分之一策略交易...")
# 标记是否刚执行过交易(用于跳过从交易所获取持仓状态,避免延迟问题)
just_traded = False
while True:
try:
# 1. 获取K线数据当前K线和上一根K线
@@ -372,11 +375,15 @@ class BitmartFuturesTransaction:
time.sleep(2)
continue
# 3. 获取持仓状态
if not self.get_position_status():
logger.warning("获取持仓状态失败,等待重试...")
time.sleep(2)
continue
# 3. 获取持仓状态如果刚交易过信任本地状态跳过API查询避免延迟
if not just_traded:
if not self.get_position_status():
logger.warning("获取持仓状态失败,等待重试...")
time.sleep(2)
continue
else:
logger.info(f"刚执行交易,信任本地持仓状态: {self.start}")
just_traded = False # 重置标记
# 4. 检查信号
signal = self.check_signal(current_price, prev_kline, current_kline)
@@ -384,8 +391,23 @@ class BitmartFuturesTransaction:
# 5. 有信号则执行交易
if signal:
self.execute_trade(signal, size=1)
logger.success(f"交易执行完成: {signal[0]}")
time.sleep(2) # 交易后等待一下
logger.success(f"交易执行完成: {signal[0]}, 当前持仓状态: {self.start}")
just_traded = True # 标记刚执行过交易
# 交易后立即再次检查是否有反手信号同一根K线内可能多次反手
time.sleep(1) # 短暂等待
# 重新获取价格,检查是否需要再次反手
new_price = self.get_current_price()
if new_price:
new_signal = self.check_signal(new_price, prev_kline, current_kline)
if new_signal:
logger.info(f"检测到连续反手信号!当前价格: {new_price:.2f}")
self.execute_trade(new_signal, size=1)
logger.success(f"连续反手执行完成: {new_signal[0]}, 当前持仓状态: {self.start}")
time.sleep(1) # 交易后稍等
continue # 立即进入下一次循环继续监控
# 6. 短暂等待后继续循环同一根K线遇到信号就操作
time.sleep(3)