优化反手
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user