fix issue

This commit is contained in:
zhangkun9038@dingtalk.com 2025-11-25 21:39:27 +08:00
parent 7a83bcd647
commit b9634bc94a

View File

@ -25,20 +25,43 @@ class SmartBBGrid(IStrategy):
return dataframe
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# 放宽入场条件:只要价格接近下轨就买入(形成网格)
# 移除 ADX 的严格限制
dataframe['enter_long'] = (
((dataframe['adx'] < 24) | (dataframe['adx'] > 30)) &
(dataframe['close'] <= dataframe['bb_lower'] * 1.006) &
(dataframe['close'] <= dataframe['bb_lower'] * 1.010) & # 放宽到 1% 范围
(dataframe['volume'] > 0)
)
return dataframe
def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# 简化出场:只要有任何利润就卖出(不要贪心)
# 或者接近中轨上方就卖出
dataframe['exit_long'] = (
(dataframe['adx'] < 24) &
((dataframe['close'] >= dataframe['bb_upper'] * 0.994) |
(dataframe['close'] >= dataframe['bb_mid'] * 1.13))
(dataframe['close'] >= dataframe['bb_mid']) | # 价格回到中轨或以上就卖
(dataframe['close'] >= dataframe['bb_lower'] * 1.05) # 或者反弹5%就卖
)
return dataframe
def custom_stake_amount(self, **kwargs) -> float:
return self.wallets.get_total_stake_amount() * 0.30
def custom_stake_amount(self, pair: str, current_time, current_rate,
proposed_stake, min_stake, max_stake,
entry_tag, **kwargs) -> float:
"""每个币对保持 25-30 个订单的资金管理"""
# 每个币对的目标资金上限
weights = {
'BTC/USDT': 900, # 固定 $900 给 BTC
'ETH/USDT': 900, # 固定 $900 给 ETH
'SOL/USDT': 1200, # 固定 $1200 给 SOL
}
# 每个币对的目标资金
target_for_pair = weights.get(pair, 1000)
# 每笔固定投入 = 目标资金 / 27 (目标订单数)
per_order_stake = target_for_pair / 27
# 不超过 proposed_stake也不超过 max_stake
stake = min(per_order_stake, proposed_stake, max_stake)
stake = max(stake, min_stake * 2)
return stake