尝试对已经优化好的结果进行二次优化

This commit is contained in:
zhangkun 2025-09-30 21:09:57 +08:00
parent ade68cdc96
commit 64f749eb20
3 changed files with 30 additions and 29 deletions

View File

@ -15,7 +15,6 @@
"max_open_trades": 5 "max_open_trades": 5
}, },
"buy": { "buy": {
"stake_divisor": 2,
"add_position_callback": 0.053, "add_position_callback": 0.053,
"bb_length": 13, "bb_length": 13,
"bb_lower_deviation": 1.04, "bb_lower_deviation": 1.04,
@ -31,7 +30,8 @@
"rsi_oversold": 47, "rsi_oversold": 47,
"stochrsi_bull_threshold": 36, "stochrsi_bull_threshold": 36,
"stochrsi_neutral_threshold": 30, "stochrsi_neutral_threshold": 30,
"volume_multiplier": 1.6 "volume_multiplier": 1.6,
"stake_divisor": 2.867
}, },
"sell": { "sell": {
"exit_bb_upper_deviation": 0.99, "exit_bb_upper_deviation": 0.99,
@ -44,5 +44,5 @@
"protection": {} "protection": {}
}, },
"ft_stratparam_v": 1, "ft_stratparam_v": 1,
"export_time": "2025-09-12 15:49:20.688983+00:00" "export_time": "2025-09-30 11:24:57.117719+00:00"
} }

View File

@ -81,40 +81,40 @@ class FreqaiPrimer(IStrategy):
can_short = False # 禁用做空 can_short = False # 禁用做空
# 自定义指标参数 - 使用Hyperopt可优化参数 # 自定义指标参数 - 使用Hyperopt可优化参数
bb_length = IntParameter(10, 30, default=20, optimize=True, load=True, space='buy') bb_length = IntParameter(10, 30, default=20, optimize=False, load=True, space='buy')
bb_std = DecimalParameter(1.5, 3.0, decimals=1, default=2.0, optimize=True, load=True, space='buy') bb_std = DecimalParameter(1.5, 3.0, decimals=1, default=2.0, optimize=False, load=True, space='buy')
rsi_length = IntParameter(7, 21, default=14, optimize=True, load=True, space='buy') rsi_length = IntParameter(7, 21, default=14, optimize=False, load=True, space='buy')
rsi_oversold = IntParameter(30, 50, default=42, optimize=True, load=True, space='buy') rsi_oversold = IntParameter(30, 50, default=42, optimize=False, load=True, space='buy')
# 入场条件阈值参数 # 入场条件阈值参数
bb_lower_deviation = DecimalParameter(1.01, 1.05, decimals=2, default=1.03, optimize=True, load=True, space='buy') bb_lower_deviation = DecimalParameter(1.01, 1.05, decimals=2, default=1.03, optimize=False, load=True, space='buy')
rsi_bull_threshold = IntParameter(45, 55, default=50, optimize=True, load=True, space='buy') rsi_bull_threshold = IntParameter(45, 55, default=50, optimize=False, load=True, space='buy')
stochrsi_bull_threshold = IntParameter(30, 40, default=35, optimize=True, load=True, space='buy') stochrsi_bull_threshold = IntParameter(30, 40, default=35, optimize=False, load=True, space='buy')
stochrsi_neutral_threshold = IntParameter(20, 30, default=25, optimize=True, load=True, space='buy') stochrsi_neutral_threshold = IntParameter(20, 30, default=25, optimize=False, load=True, space='buy')
volume_multiplier = DecimalParameter(1.2, 2.0, decimals=1, default=1.5, optimize=True, load=True, space='buy') volume_multiplier = DecimalParameter(1.2, 2.0, decimals=1, default=1.5, optimize=False, load=True, space='buy')
bb_width_threshold = DecimalParameter(0.01, 0.03, decimals=3, default=0.02, optimize=True, load=True, space='buy') bb_width_threshold = DecimalParameter(0.01, 0.03, decimals=3, default=0.02, optimize=False, load=True, space='buy')
min_condition_count = IntParameter(2, 4, default=3, optimize=True, load=True, space='buy') min_condition_count = IntParameter(2, 4, default=3, optimize=False, load=True, space='buy')
# 剧烈拉升检测参数 - 使用Hyperopt可优化参数 # 剧烈拉升检测参数 - 使用Hyperopt可优化参数
h1_max_candles = IntParameter(100, 300, default=200, optimize=True, load=True, space='buy') h1_max_candles = IntParameter(100, 300, default=200, optimize=False, load=True, space='buy')
h1_rapid_rise_threshold = DecimalParameter(0.05, 0.15, decimals=3, default=0.11, optimize=True, load=True, space='buy') h1_rapid_rise_threshold = DecimalParameter(0.05, 0.15, decimals=3, default=0.11, optimize=False, load=True, space='buy')
h1_max_consecutive_candles = IntParameter(1, 4, default=2, optimize=True, load=True, space='buy') h1_max_consecutive_candles = IntParameter(1, 4, default=2, optimize=False, load=True, space='buy')
# 定义可优化参数 # 定义可优化参数
max_entry_adjustments = IntParameter(2, 5, default=3, optimize=True, load=True, space='buy') # 最大加仓次数 max_entry_adjustments = IntParameter(2, 5, default=3, optimize=False, load=True, space='buy') # 最大加仓次数
add_position_callback = DecimalParameter(0.03, 0.06, decimals=3, default=0.047, optimize=True, load=True, space='buy') # 加仓回调百分比 add_position_callback = DecimalParameter(0.03, 0.06, decimals=3, default=0.047, optimize=False, load=True, space='buy') # 加仓回调百分比
stake_divisor = IntParameter(2, 4, default=2, optimize=False, load=True, space='buy') # 加仓金额分母 stake_divisor = DecimalParameter(2, 4, decimals=3, default=2.00, optimize=True, load=True, space='buy') # 加仓金额分母
# 线性ROI参数 - 用于线性函数: y = (a * (x + k)) + t # 线性ROI参数 - 用于线性函数: y = (a * (x + k)) + t
roi_param_a = DecimalParameter(-0.0002, -0.00005, decimals=5, default=-0.0001, optimize=True, load=True, space='sell') # 系数a roi_param_a = DecimalParameter(-0.0002, -0.00005, decimals=5, default=-0.0001, optimize=False, load=True, space='sell') # 系数a
roi_param_k = IntParameter(20, 150, default=50, optimize=True, load=True, space='sell') # 偏移量k roi_param_k = IntParameter(20, 150, default=50, optimize=False, load=True, space='sell') # 偏移量k
roi_param_t = DecimalParameter(0.02, 0.18, decimals=3, default=0.06, optimize=True, load=True, space='sell') # 常数项t roi_param_t = DecimalParameter(0.02, 0.18, decimals=3, default=0.06, optimize=False, load=True, space='sell') # 常数项t
# 出场条件阈值参数 # 出场条件阈值参数
exit_bb_upper_deviation = DecimalParameter(0.98, 1.02, decimals=2, default=1.0, optimize=True, load=True, space='sell') exit_bb_upper_deviation = DecimalParameter(0.98, 1.02, decimals=2, default=1.0, optimize=False, load=True, space='sell')
exit_volume_multiplier = DecimalParameter(1.5, 3.0, decimals=1, default=2.0, optimize=True, load=True, space='sell') exit_volume_multiplier = DecimalParameter(1.5, 3.0, decimals=1, default=2.0, optimize=False, load=True, space='sell')
rsi_overbought = IntParameter(50, 70, default=58, optimize=True, load=True, space='sell') rsi_overbought = IntParameter(57, 59, default=58, optimize=True, load=True, space='sell')
def informative_pairs(self): def informative_pairs(self):

View File

@ -165,8 +165,9 @@ docker-compose run --rm freqtrade hyperopt $PAIRS_FLAG \
--enable-protections \ --enable-protections \
--strategy-path /freqtrade/templates \ --strategy-path /freqtrade/templates \
--timerange ${START_DATE}-${END_DATE} \ --timerange ${START_DATE}-${END_DATE} \
-e 500 \ --random-state 42 \
-j 4 \ -e 1000 \
-j 28 \
--hyperopt-loss SharpeHyperOptLossDaily \ --hyperopt-loss SharpeHyperOptLossDaily \
--spaces buy sell \ --spaces buy sell \
--fee 0.0016 --fee 0.0016