fix issue
This commit is contained in:
parent
7a83bcd647
commit
b9634bc94a
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user