diff --git a/freqtrade/templates/freqaiprimer.json b/freqtrade/templates/freqaiprimer.json index ffbc62d4..7a0c6e81 100644 --- a/freqtrade/templates/freqaiprimer.json +++ b/freqtrade/templates/freqaiprimer.json @@ -5,57 +5,57 @@ "max_open_trades": 5 }, "buy": { - "add_bb_lower_proximity": 1.161, - "add_position_callback": 0.082, - "add_position_decrease_ratio": 0.68, - "add_rsi_oversold_threshold": 40, - "add_stochrsi_oversold": 6, - "adjust_multiplier": 1.9, - "bb_length": 50, - "bb_lower_deviation": 1.0, - "bb_std": 2.9, - "bb_width_threshold": 0.024, - "h1_max_candles": 238, - "h1_max_consecutive_candles": 3, - "h1_rapid_rise_threshold": 0.068, - "max_entry_adjustments": 11, - "min_condition_count": 1, - "rsi_bull_threshold": 36, - "rsi_length": 19, + "add_bb_lower_proximity": 1.08, + "add_position_callback": 0.101, + "add_position_decrease_ratio": 0.83, + "add_rsi_oversold_threshold": 41, + "add_stochrsi_oversold": 8, + "adjust_multiplier": 0.19, + "bb_length": 38, + "bb_lower_deviation": 1.19, + "bb_std": 3.1, + "bb_width_threshold": 0.048, + "h1_max_candles": 21, + "h1_max_consecutive_candles": 4, + "h1_rapid_rise_threshold": 0.136, + "max_entry_adjustments": 6, + "min_condition_count": 2, + "rsi_bull_threshold": 65, + "rsi_length": 33, "rsi_oversold": 16, - "stochrsi_bull_threshold": 46, - "stochrsi_neutral_threshold": 8, - "volume_multiplier": 0.8 + "stochrsi_bull_threshold": 38, + "stochrsi_neutral_threshold": 35, + "volume_multiplier": 0.7 }, "sell": { - "exit_bb_upper_deviation": 0.92, - "exit_profit_tier1": 0.047, - "exit_profit_tier2": 0.076, - "exit_reduce_tier1": 0.84, - "exit_reduce_tier2": 0.14, - "exit_rsi_threshold": 59, - "exit_volume_multiplier": 4.3, - "max_reduce_adjustments": 1, - "reduce_coefficient": 0.143, - "reduce_profit_base": 0.203 + "exit_bb_upper_deviation": 0.88, + "exit_profit_tier1": 0.169, + "exit_profit_tier2": 0.247, + "exit_reduce_tier1": 0.82, + "exit_reduce_tier2": 0.24, + "exit_rsi_threshold": 44, + "exit_volume_multiplier": 4.7, + "max_reduce_adjustments": 11, + "reduce_coefficient": 0.496, + "reduce_profit_base": 0.037 }, "protection": {}, "roi": { - "0": 0.103, - "17": 0.072, - "44": 0.027, - "63": 0 + "0": 0.194, + "13": 0.054, + "32": 0.013, + "55": 0 }, "stoploss": { - "stoploss": -0.336 + "stoploss": -0.274 }, "trailing": { "trailing_stop": true, - "trailing_stop_positive": 0.09, - "trailing_stop_positive_offset": 0.124, - "trailing_only_offset_is_reached": true + "trailing_stop_positive": 0.226, + "trailing_stop_positive_offset": 0.256, + "trailing_only_offset_is_reached": false } }, "ft_stratparam_v": 1, - "export_time": "2025-11-23 06:59:43.783164+00:00" + "export_time": "2025-11-23 08:37:40.129856+00:00" } \ No newline at end of file diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index bb8ef548..35a220ee 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -78,53 +78,55 @@ class FreqaiPrimer(IStrategy): can_short = False # 禁用做空 # [propertiesGrp_List]-------------------------------------------------------------------------------------------------------------------------------------- - # [propertiesGrp step="1" name="第一轮优化" epochs="120" space="buy roi stoploss" description="入场基础条件优化,入场确认条件优化"] - bb_std = DecimalParameter(1.0, 5.0, decimals=1, default=4.6, optimize=True, load=True, space='buy') # 极致放宽:1.0-5.0 - rsi_length = IntParameter(5, 35, default=13, optimize=True, load=True, space='buy') # 极致放宽:5-35 - bb_lower_deviation = DecimalParameter(0.90, 1.20, decimals=2, default=0.9, optimize=True, load=True, space='buy') # 极致放宽:0.90-1.20 - stochrsi_bull_threshold = IntParameter(15, 55, default=47, optimize=True, load=True, space='buy') # 极致放宽:15-55 - volume_multiplier = DecimalParameter(0.5, 5.0, decimals=1, default=4.7, optimize=True, load=True, space='buy') # 极致放宽:0.5-5.0 - min_condition_count = IntParameter(1, 3, default=1, optimize=True, load=True, space='buy') # 开启优化:1-3(降低入场门槛) - bb_length = IntParameter(5, 50, default=40, optimize=True, load=True, space='buy') # 极致放宽:5-50 - rsi_oversold = IntParameter(15, 65, default=16, optimize=True, load=True, space='buy') # 极致放宽:15-65 + # [propertiesGrp step="1" name="第一轮优化" epochs="160" space="buy roi stoploss" description="入场基础条件优化,入场确认条件优化"] + bb_std = DecimalParameter(2.0, 5.0, decimals=1, default=3.5, optimize=True, load=True, space='buy') # 安全:2.0-5.0 + rsi_length = IntParameter(10, 30, default=14, optimize=True, load=True, space='buy') # 安全:10-30 + bb_lower_deviation = DecimalParameter(0.92, 1.15, decimals=3, default=1.00, optimize=True, load=True, space='buy') # 安全:0.92-1.15 + stochrsi_bull_threshold = IntParameter(20, 50, default=40, optimize=True, load=True, space='buy') # 安全:20-50 + volume_multiplier = DecimalParameter(1.5, 6.0, decimals=1, default=3.5, optimize=True, load=True, space='buy') # 安全:1.5-6.0 + min_condition_count = IntParameter(1, 2, default=1, optimize=True, load=True, space='buy') # 最多只允许2个条件! + bb_length = IntParameter(20, 60, default=40, optimize=True, load=True, space='buy') # 安全:20-60 # [/propertiesGrp] - # [propertiesGrp step="2" name="第三轮优化" epochs="120" space="buy roi stoploss" description="剧烈拉升检测与加仓策略优化,加仓精准度与金额管理"] - rsi_bull_threshold = IntParameter(30, 70, default=51, optimize=True, load=True, space='buy') # 极致放宽:30-70 - stochrsi_neutral_threshold = IntParameter(5, 45, default=36, optimize=True, load=True, space='buy') # 极致放宽:5-45 - bb_width_threshold = DecimalParameter(0.001, 0.060, decimals=3, default=0.01, optimize=True, load=True, space='buy') # 极致放宽:0.001-0.060 - h1_max_candles = IntParameter(16, 50, default=35, optimize=True, load=True, space='buy') - h1_rapid_rise_threshold = DecimalParameter(0.05, 0.15, decimals=3, default=0.147, optimize=True, load=True, space='buy') - h1_max_consecutive_candles = IntParameter(1, 4, default=2, optimize=True, load=True, space='buy') + # [propertiesGrp step="2" name="第二轮优化 - 剧烈拉升检测" epochs="160" space="buy" description="防追高核心参数,绝对不能放宽!"] + rsi_oversold = IntParameter(20, 50, default=30, optimize=True, load=True, space='buy') # 安全:20-50 + rsi_bull_threshold = IntParameter(40, 68, default=58, optimize=True, load=True, space='buy') # 安全:40-68 + stochrsi_neutral_threshold = IntParameter(15, 40, default=30, optimize=True, load=True, space='buy') # 安全:15-40 + bb_width_threshold = DecimalParameter(0.003, 0.030, decimals=3, default=0.012, optimize=True, load=True, space='buy') # 安全:0.003-0.030 + h1_max_candles = IntParameter(16, 50, default=35, optimize=True, load=True, space='buy') # 黄金区间!绝不能超过50 + h1_rapid_rise_threshold = DecimalParameter(0.08, 0.22, decimals=3, default=0.15, optimize=True, load=True, space='buy') # 0.08-0.22 实盘最稳 + h1_max_consecutive_candles = IntParameter(1, 2, default=1, optimize=False, load=True, space='buy') # 固定为1最稳,2也行 # [/propertiesGrp] - # [propertiesGrp id="3" name="第三轮优化" epochs="120" space="buy roi stoploss" description="剧烈拉升检测与加仓策略优化,加仓精准度与金额管理"] - add_position_callback = DecimalParameter(0.055, 0.125, decimals=3, default=0.083, optimize=True, load=True, space='buy') # 加仓回调百分比 - add_rsi_oversold_threshold = IntParameter(5, 65, default=16, optimize=True, load=True, space='buy') # 极致放宽:5-65 - add_stochrsi_oversold = IntParameter(1, 55, default=16, optimize=True, load=True, space='buy') # 极致放宽:1-55 - add_bb_lower_proximity = DecimalParameter(0.70, 1.35, decimals=3, default=1.065, optimize=True, load=True, space='buy') # 极致放宽:0.70-1.35 - add_position_decrease_ratio = DecimalParameter(0.2, 1.0, decimals=2, default=0.48, optimize=True, load=True, space='buy') # 极致放宽:0.2-1.0 - max_entry_adjustments = IntParameter(1, 12, default=5, optimize=True, load=True, space='buy') # 极致放宽:1-12 - adjust_multiplier = DecimalParameter(0.01, 2.0, decimals=2, default=1.06, optimize=True, load=True, space='buy') # 极致放宽:0.01-2.0 + # [propertiesGrp step="3" name="第三轮优化 - 加仓策略" epochs="160" space="buy" description="加仓精准度与金额管理,严防爆仓"] + add_position_callback = DecimalParameter(0.025, 0.070, decimals=3, default=0.045, optimize=True, load=True, space='buy') # 2.5%-7.0% 回调才加 + add_rsi_oversold_threshold = IntParameter(15, 40, default=25, optimize=True, load=True, space='buy') # 不能太低 + add_stochrsi_oversold = IntParameter(10, 35, default=20, optimize=True, load=True, space='buy') + add_bb_lower_proximity = DecimalParameter(0.85, 1.20, decimals=3, default=1.05, optimize=True, load=True, space='buy') # 不能离下轨太远 + add_position_decrease_ratio= DecimalParameter(0.30, 0.80, decimals=2, default=0.55, optimize=True, load=True, space='buy') # 递减比例别太激进 + max_entry_adjustments = IntParameter(2, 7, default=5, optimize=True, load=True, space='buy') # 最多7次加仓,防爆仓 + adjust_multiplier = DecimalParameter(0.6, 1.6, decimals=2, default=1.0, optimize=True, load=True, space='buy') # 别让加仓金额指数爆炸 # [/propertiesGrp] - # [propertiesGrp step="4" name="第五轮优化" epochs="200" space="sell roi stoploss" description="出场条件与分级止盈,减仓与风险管理"] - exit_bb_upper_deviation = DecimalParameter(0.80, 1.25, decimals=2, default=0.99, optimize=True, load=True, space='sell') # 极致放宽:0.80-1.25 - exit_volume_multiplier = DecimalParameter(0.8, 6.0, decimals=1, default=4.7, optimize=True, load=True, space='sell') # 极致放宽:0.8-6.0 - exit_rsi_threshold = IntParameter(40, 85, default=58, optimize=True, load=True, space='sell') # 极致放宽:40-85 - exit_profit_tier1 = DecimalParameter(0.005, 0.20, decimals=3, default=0.05, optimize=True, load=True, space='sell') # 极致放宽:0.005-0.20 - exit_reduce_tier1 = DecimalParameter(0.05, 0.9, decimals=2, default=0.5, optimize=True, load=True, space='sell') # 极致放宽:0.05-0.9 - exit_profit_tier2 = DecimalParameter(0.01, 0.35, decimals=3, default=0.10, optimize=True, load=True, space='sell') # 极致放宽:0.01-0.35 - exit_reduce_tier2 = DecimalParameter(0.03, 0.75, decimals=2, default=0.3, optimize=True, load=True, space='sell') # 极致放宽:0.03-0.75 - reduce_profit_base = DecimalParameter(0.005, 0.30, default=0.05, space='sell', optimize=True) # 极致放宽:0.005-0.30 - reduce_coefficient = DecimalParameter(0.01, 1.5, default=0.289, space='sell', optimize=True) # 极致放宽:0.01-1.5 - max_reduce_adjustments = IntParameter(1, 12, default=3, space='sell', optimize=True) # 极致放宽:1-12 + # [propertiesGrp step="4" name="第四轮优化 - 出场与分级止盈" epochs="200" space="sell roi stoploss" description="出场条件与分级止盈,减仓与风险管理"] + exit_bb_upper_deviation = DecimalParameter(0.90, 1.15, decimals=3, default=1.00, optimize=True, load=True, space='sell') + exit_volume_multiplier = DecimalParameter(2.0, 7.0, decimals=1, default=4.5, optimize=True, load=True, space='sell') + exit_rsi_threshold = IntParameter(55, 72, default=65, optimize=True, load=True, space='sell') # 牛市也能出得了场 + exit_profit_tier1 = DecimalParameter(0.03, 0.12, decimals=3, default=0.06, optimize=True, load=True, space='sell') + exit_reduce_tier1 = DecimalParameter(0.20, 0.70, decimals=2, default=0.50, optimize=True, load=True, space='sell') + exit_profit_tier2 = DecimalParameter(0.08, 0.20, decimals=3, default=0.12, optimize=True, load=True, space='sell') + exit_reduce_tier2 = DecimalParameter(0.15, 0.60, decimals=2, default=0.30, optimize=True, load=True, space='sell') + reduce_profit_base = DecimalParameter(0.02, 0.12, decimals=3, default=0.05, optimize=True, load=True, space='sell') + reduce_coefficient = DecimalParameter(0.15, 0.55, decimals=3, default=0.35, optimize=True, load=True, space='sell') + max_reduce_adjustments = IntParameter(1, 4, default=3, optimize=True, load=True, space='sell') # 最多4次减仓就够了 + # [/propertiesGrp] + + # [propertiesGrp step="5" name="第五轮优化" epochs="80" space="roi stoploss" description="最终ROI与止损微调"] + # (这里可以放你后续要优化的ROI表、动态止损系数等) # [/propertiesGrp] - # [propertiesGrp step="5" name="第六轮优化" epochs="80" space="roi stoploss" description="roi和stoploss优化" /] # [/propertiesGrp_List]----------------------------------------------------------------------------------------------------------------------------- - def informative_pairs(self): pairs = self.dp.current_whitelist() return [(pair, '15m') for pair in pairs] + [(pair, '1h') for pair in pairs] diff --git a/tools/hyper.sh b/tools/hyper.sh index 1d641250..7e3a05a8 100755 --- a/tools/hyper.sh +++ b/tools/hyper.sh @@ -1 +1 @@ -./hyperopt_org.sh 20250610 20250625 --spaces buy --spaces sell --spaces roi --spaces trailing --spaces stoploss --jobs 8 --epochs 500 +./hyperopt_org.sh 20251110 20251125 --spaces buy --spaces sell --spaces roi --spaces trailing --spaces stoploss --jobs 8 --epochs 500