optimize params
This commit is contained in:
parent
47b8313037
commit
762df7db01
@ -86,30 +86,30 @@ class FreqaiPrimer(IStrategy):
|
||||
|
||||
# 第一步 buy 空间优化参数 7个:
|
||||
# --- 趋势与信号生成 ---
|
||||
bb_length = IntParameter(10, 30, default=14, optimize=True, load=True, space='buy')
|
||||
bb_std = DecimalParameter(1.5, 3.0, decimals=1, default=3.0, optimize=True, load=True, space='buy')
|
||||
rsi_length = IntParameter(7, 21, default=16, optimize=True, load=True, space='buy')
|
||||
bb_length = IntParameter(10, 30, default=14, optimize=False, load=True, space='buy')
|
||||
bb_std = DecimalParameter(1.5, 3.0, decimals=1, default=3.0, optimize=False, load=True, space='buy')
|
||||
rsi_length = IntParameter(7, 21, default=16, optimize=False, load=True, space='buy')
|
||||
|
||||
# 入场条件阈值
|
||||
bb_lower_deviation = DecimalParameter(1.01, 1.05, decimals=2, default=1.05, optimize=True, load=True, space='buy')
|
||||
rsi_oversold = IntParameter(30, 50, default=42, optimize=True, load=True, space='buy')
|
||||
volume_multiplier = DecimalParameter(1.2, 2.0, decimals=1, default=1.6, optimize=True, load=True, space='buy')
|
||||
bb_width_threshold = DecimalParameter(0.01, 0.03, decimals=3, default=0.012, optimize=True, load=True, space='buy')
|
||||
bb_lower_deviation = DecimalParameter(1.01, 1.05, decimals=2, default=1.05, optimize=False, load=True, space='buy')
|
||||
rsi_oversold = IntParameter(30, 50, default=42, optimize=False, load=True, space='buy')
|
||||
volume_multiplier = DecimalParameter(1.2, 2.0, decimals=1, default=1.6, optimize=False, load=True, space='buy')
|
||||
bb_width_threshold = IntParameter(10, 30, default=12, optimize=False, load=True, space='buy')
|
||||
|
||||
# 剧烈拉升检测参数 - 使用Hyperopt可优化参数
|
||||
h1_rapid_rise_threshold = DecimalParameter(0.05, 0.15, decimals=3, default=0.065, optimize=True, load=True, space='buy')
|
||||
h1_rapid_rise_threshold = DecimalParameter(0.05, 0.15, decimals=3, default=0.065, optimize=False, load=True, space='buy')
|
||||
# 第二步 buy 空间优化参数 7个:
|
||||
# --- 资金管理与加仓 ---
|
||||
add_position_callback = DecimalParameter(0.03, 0.06, decimals=3, default=0.028, optimize=False, load=True, space='buy')
|
||||
add_position_callback = IntParameter(30, 60, default=28, optimize=True, load=True, space='buy')
|
||||
# 合并step_coefficient和stake_divisor为multiplier参数
|
||||
adjust_multiplier = DecimalParameter(0.15, 0.6, decimals=2, default=0.52, optimize=False, load=True, space='buy')
|
||||
max_entry_adjustments = IntParameter(2, 5, default=2, optimize=False, load=True, space='buy') # 可暂时关闭
|
||||
adjust_multiplier = DecimalParameter(0.15, 0.6, decimals=2, default=0.52, optimize=True, load=True, space='buy')
|
||||
max_entry_adjustments = IntParameter(2, 5, default=2, optimize=True, load=True, space='buy') # 可暂时关闭
|
||||
|
||||
# 市场状态相关(辅助决策)
|
||||
min_condition_count = IntParameter(2, 4, default=2, optimize=False, load=True, space='buy')
|
||||
stochrsi_neutral_threshold = IntParameter(20, 30, default=29, optimize=False, load=True, space='buy') # 固定为20
|
||||
stochrsi_bull_threshold = IntParameter(30, 40, default=36, optimize=False, load=True, space='buy')
|
||||
rsi_bull_threshold = IntParameter(45, 55, default=54, optimize=False, load=True, space='buy') # 固定为50
|
||||
stochrsi_neutral_threshold = IntParameter(20, 30, default=29, optimize=True, load=True, space='buy') # 固定为20
|
||||
stochrsi_bull_threshold = IntParameter(30, 40, default=36, optimize=True, load=True, space='buy')
|
||||
rsi_bull_threshold = IntParameter(45, 55, default=54, optimize=True, load=True, space='buy') # 固定为50
|
||||
|
||||
# 第三步, 优化sell空间
|
||||
exit_bb_upper_deviation = DecimalParameter(0.98, 1.02, decimals=2, default=0.99, optimize=True, load=True, space='sell')
|
||||
@ -395,7 +395,7 @@ class FreqaiPrimer(IStrategy):
|
||||
|
||||
# 条件6: 布林带宽度过滤(避免窄幅震荡)
|
||||
bb_width = (dataframe['bb_upper_1h'] - dataframe['bb_lower_1h']) / dataframe['close']
|
||||
bb_width_condition = bb_width > self.bb_width_threshold.value # 可优化的布林带宽度阈值
|
||||
bb_width_condition = bb_width > self.bb_width_threshold.value / 1000 # 可优化的布林带宽度阈值
|
||||
|
||||
# 辅助条件: 3m 和 15m 趋势确认(允许部分时间框架不一致)
|
||||
trend_confirmation = (dataframe['trend_3m'] == 1) | (dataframe['trend_15m'] == 1)
|
||||
@ -618,12 +618,12 @@ class FreqaiPrimer(IStrategy):
|
||||
initial_price = trade.open_rate
|
||||
if initial_price == 0:
|
||||
return 0.0
|
||||
if current_profit > -self.add_position_callback.value:
|
||||
if current_profit > - self.add_position_callback.value / 100 :
|
||||
return 0.0
|
||||
|
||||
price_diff_pct = (current_rate - initial_price) / initial_price
|
||||
|
||||
if (price_diff_pct/(entry_count)) <= -self.add_position_callback.value:
|
||||
if (price_diff_pct/(entry_count)) <= - self.add_position_callback.value / 100 :
|
||||
initial_stake = trade.orders[0].cost
|
||||
additional_stake = (self.adjust_multiplier.value * initial_stake) ** (entry_count)
|
||||
additional_stake = max(min_stake, min(additional_stake, max_stake - trade.stake_amount))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user