优化完美代码,优化计算盈亏

This commit is contained in:
27942
2026-02-07 21:03:42 +08:00
parent 6b19439f87
commit 02fe8eb09b

View File

@@ -41,6 +41,8 @@ class BitmartFuturesTransaction:
self.bit_id = bit_id
self.default_order_size = 25 # 开仓/反手张数,统一在此修改
self.last_trade_kline_id = None # 上次开仓/平仓所在K线ID同一根K线只允许开一笔仓位
# 策略相关变量
self.prev_kline = None # 上一根K线
self.current_kline = None # 当前K线
@@ -580,16 +582,24 @@ class BitmartFuturesTransaction:
logger.info(f"移动止损:当前盈利 {pnl_usd:.2f} 从最高 {self.max_unrealized_pnl_seen:.2f} 回撤 >= {self.trailing_distance_usd} 美元,平仓")
self.平仓()
self.max_unrealized_pnl_seen = None
self.last_trade_kline_id = current_kline_time # 平仓后标记当前K线下一根K线才能再开仓
logger.info(f"平仓后标记K线({current_kline_time})等待下一根K线再开仓")
time.sleep(3)
continue
# 4. 检查信号
signal = self.check_signal(current_price, prev_kline, current_kline)
# 5. 有信号则执行交易
# 5. 同一根K线只允许开一笔仓位平仓后等下一根K线再开仓
if signal and self.last_trade_kline_id == current_kline_time:
logger.info(f"同一根K线({current_kline_time})已交易过等待下一根K线")
signal = None
# 6. 有信号则执行交易
if signal:
trade_success = self.execute_trade(signal)
if trade_success:
self.last_trade_kline_id = current_kline_time # 记录开仓所在K线
logger.success(f"交易执行完成: {signal[0]}, 当前持仓状态: {self.start}")
page_start = True
else: