add log
This commit is contained in:
parent
a87dae45cc
commit
1b4a86198d
@ -123,6 +123,7 @@ class StaticGrid(IStrategy):
|
||||
dataframe['enter_tag'] = ''
|
||||
|
||||
if len(dataframe) == 0:
|
||||
print(f"[StaticGrid] {metadata['pair']} dataframe 为空,跳过", file=sys.stderr, flush=True)
|
||||
return dataframe
|
||||
|
||||
pair = metadata['pair']
|
||||
@ -132,20 +133,36 @@ class StaticGrid(IStrategy):
|
||||
grid_manager = self.grid_managers[pair]
|
||||
current_price = dataframe['close'].iloc[-1]
|
||||
|
||||
print(f"[StaticGrid] {pair} populate_entry_trend 执行 - 价格: {current_price:.2f}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
# 询问网格管理器是否应该加仓
|
||||
adjustment = grid_manager.decide_adjustment()
|
||||
|
||||
print(f"[StaticGrid] {pair} decide_adjustment 返回: {adjustment}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
if adjustment:
|
||||
if adjustment.type == AdjustmentType.ENTRY:
|
||||
# 初始建仓
|
||||
dataframe.loc[dataframe.index[-1], 'enter_long'] = True
|
||||
dataframe.loc[dataframe.index[-1], 'enter_tag'] = f"grid_entry_{current_price:.0f}"
|
||||
print(f"[StaticGrid] {pair} 初始建仓信号 @ {current_price:.2f}", file=sys.stderr, flush=True)
|
||||
print(f"[StaticGrid] {pair} 初始建仓信号 @ {current_price:.2f} (ENTRY 设置为 True)",
|
||||
file=sys.stderr, flush=True)
|
||||
elif adjustment.type == AdjustmentType.ADD:
|
||||
# 加仓
|
||||
dataframe.loc[dataframe.index[-1], 'enter_long'] = True
|
||||
dataframe.loc[dataframe.index[-1], 'enter_tag'] = f"grid_add_{current_price:.0f}"
|
||||
print(f"[StaticGrid] {pair} 加仓信号 @ {current_price:.2f}", file=sys.stderr, flush=True)
|
||||
print(f"[StaticGrid] {pair} 加仓信号 @ {current_price:.2f} (ADD 设置为 True)",
|
||||
file=sys.stderr, flush=True)
|
||||
else:
|
||||
print(f"[StaticGrid] {pair} 无操作建议", file=sys.stderr, flush=True)
|
||||
|
||||
# 打印最终的 enter_long 状态
|
||||
enter_long_value = dataframe.loc[dataframe.index[-1], 'enter_long']
|
||||
enter_tag_value = dataframe.loc[dataframe.index[-1], 'enter_tag']
|
||||
print(f"[StaticGrid] {pair} 最终状态 - enter_long: {enter_long_value}, enter_tag: {enter_tag_value}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
return dataframe
|
||||
|
||||
@ -156,21 +173,37 @@ class StaticGrid(IStrategy):
|
||||
dataframe['exit_long'] = False
|
||||
|
||||
if len(dataframe) == 0:
|
||||
print(f"[StaticGrid] {metadata['pair']} dataframe 为空,跳过出场逻辑",
|
||||
file=sys.stderr, flush=True)
|
||||
return dataframe
|
||||
|
||||
pair = metadata['pair']
|
||||
if pair not in self.grid_managers:
|
||||
print(f"[StaticGrid] {pair} GridManager 不存在,跳过出场逻辑",
|
||||
file=sys.stderr, flush=True)
|
||||
return dataframe
|
||||
|
||||
grid_manager = self.grid_managers[pair]
|
||||
|
||||
print(f"[StaticGrid] {pair} populate_exit_trend 执行",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
# 询问网格管理器是否应该平仓
|
||||
adjustment = grid_manager.decide_adjustment()
|
||||
|
||||
print(f"[StaticGrid] {pair} exit 决策结果: {adjustment}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
if adjustment and adjustment.type == AdjustmentType.EXIT:
|
||||
# 平仓
|
||||
dataframe.loc[dataframe.index[-1], 'exit_long'] = True
|
||||
print(f"[StaticGrid] {pair} 平仓信号 @ {grid_manager.current_price:.2f}", file=sys.stderr, flush=True)
|
||||
print(f"[StaticGrid] {pair} 平仓信号 @ {grid_manager.current_price:.2f} (EXIT 设置为 True)",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
# 打印最终的 exit_long 状态
|
||||
exit_long_value = dataframe.loc[dataframe.index[-1], 'exit_long']
|
||||
print(f"[StaticGrid] {pair} 最终 exit_long: {exit_long_value}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
return dataframe
|
||||
|
||||
@ -181,26 +214,47 @@ class StaticGrid(IStrategy):
|
||||
加仓逻辑:根据 GridManager 的决策进行加仓
|
||||
"""
|
||||
pair = trade.pair
|
||||
|
||||
print(f"[StaticGrid] {pair} adjust_trade_position 执行 - 当前价: {current_rate:.2f}, 利润: {current_profit:.4f}",
|
||||
file=sys.stderr, flush=True)
|
||||
print(f"[StaticGrid] {pair} Trade 信息 - 持仓: {trade.amount:.6f}, 平均价: {trade.open_rate:.2f}, stake: {trade.stake_amount:.2f}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
if pair not in self.grid_managers:
|
||||
return None
|
||||
print(f"[StaticGrid] {pair} GridManager 不存在,创建新的",
|
||||
file=sys.stderr, flush=True)
|
||||
self._init_grid_manager(pair)
|
||||
|
||||
grid_manager = self.grid_managers[pair]
|
||||
|
||||
# 同步 Trade 对象的信息到 GridManager(用于加仓决策)
|
||||
grid_manager.sync_from_trade_object(trade, self.dp.current_candle().get('candle_index', 0))
|
||||
|
||||
# 询问网格管理器是否应该加仓
|
||||
adjustment = grid_manager.decide_adjustment()
|
||||
|
||||
print(f"[StaticGrid] {pair} decide_adjustment 返回: {adjustment}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
if adjustment and adjustment.type == AdjustmentType.ADD:
|
||||
# 计算加仓金额
|
||||
stake_amount = adjustment.quantity * self.STAKE
|
||||
print(f"[StaticGrid] {pair} 加仓决策 - 数量: {adjustment.quantity}, 金额: {stake_amount} USDT",
|
||||
file=sys.stderr, flush=True)
|
||||
print(f"[StaticGrid] {pair} 可用金额范围 - min: {min_stake:.2f}, max: {max_stake:.2f}",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
# 检查是否超过最大可用金额
|
||||
if stake_amount <= max_stake:
|
||||
print(f"[StaticGrid] {pair} ✅ 加仓批准 - 返回金额: {stake_amount:.2f}",
|
||||
file=sys.stderr, flush=True)
|
||||
return stake_amount
|
||||
else:
|
||||
print(f"[StaticGrid] {pair} 加仓金额超过最大值,跳过",
|
||||
print(f"[StaticGrid] {pair} ❌ 加仓金额超过最大值 ({stake_amount:.2f} > {max_stake:.2f}),跳过",
|
||||
file=sys.stderr, flush=True)
|
||||
return None
|
||||
else:
|
||||
print(f"[StaticGrid] {pair} 无加仓建议,返回 None",
|
||||
file=sys.stderr, flush=True)
|
||||
|
||||
return None
|
||||
Loading…
x
Reference in New Issue
Block a user