diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index 71818dd9..34b6587a 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -32,6 +32,8 @@ class FreqaiPrimer(IStrategy): super().__init__(config) # 调用父类的初始化方法并传递config # 存储从配置文件加载的默认值 self._trailing_stop_positive_default = 0.004 # 降低默认值以更容易触发跟踪止盈 + # 记录每个交易对最近一次实际允许入场的时间,用于入场间隔控制 + self._last_entry_time_by_pair = {} @property def protections(self): @@ -506,6 +508,23 @@ class FreqaiPrimer(IStrategy): if is_unstable_region: #logger.info(f"[{pair}] 由于检测到剧烈拉升,取消入场交易") allow_trade = False + + # ==================== 入场间隔控制:每个交易对至少间隔 20 分钟 ==================== + if allow_trade: + min_interval = datetime.timedelta(minutes=20) + # 初始化缓存字典(防御性,避免属性不存在) + if not hasattr(self, "_last_entry_time_by_pair"): + self._last_entry_time_by_pair = {} + last_time = self._last_entry_time_by_pair.get(pair) + if last_time is not None and (current_time - last_time) < min_interval: + logger.info( + f"[{pair}] 距离上次入场仅 {(current_time - last_time).total_seconds() / 60:.1f} 分钟," + f"未达到 {min_interval.total_seconds() / 60:.0f} 分钟间隔,拒绝本次入场" + ) + allow_trade = False + else: + # 只有本次允许入场时,才更新最近入场时间 + self._last_entry_time_by_pair[pair] = current_time # 如果没有阻止因素,允许交易 return allow_trade diff --git a/results/backtest_ai6_0.log b/results/backtest_ai6_0.log new file mode 100644 index 00000000..7c1beb39 --- /dev/null +++ b/results/backtest_ai6_0.log @@ -0,0 +1,146 @@ +2025-12-18 05:16:15,141 - freqaiprimer - INFO - [BTC/USDT] 极端出场: 总=3, 暴涨=0, 瀑布=3 +2025-12-18 05:16:15,279 - freqaiprimer - INFO - [TON/USDT] 入场统计: 传统=3963, ML通过=366, 环境允许=2614, 最终=4 +2025-12-18 05:16:15,281 - freqaiprimer - INFO - [TON/USDT] 极端出场: 总=18, 暴涨=0, 瀑布=18 +2025-12-18 05:16:15,407 - freqaiprimer - INFO - [DOT/USDT] 极端出场: 总=16, 暴涨=0, 瀑布=16 +2025-12-18 05:16:15,533 - freqaiprimer - INFO - [XRP/USDT] 极端出场: 总=20, 暴涨=0, 瀑布=20 +2025-12-18 05:16:15,656 - freqaiprimer - INFO - [OKB/USDT] 极端出场: 总=36, 暴涨=0, 瀑布=36 +2025-12-18 05:16:15,780 - freqaiprimer - INFO - [SOL/USDT] 极端出场: 总=20, 暴涨=0, 瀑布=20 +2025-12-18 05:16:15,902 - freqaiprimer - INFO - [DOGE/USDT] 入场统计: 传统=4033, ML通过=275, 环境允许=898, 最终=10 +2025-12-18 05:16:15,903 - freqaiprimer - INFO - [DOGE/USDT] 极端出场: 总=14, 暴涨=0, 瀑布=14 +2025-12-18 05:16:16,028 - freqaiprimer - INFO - [WCT/USDT] 极端出场: 总=28, 暴涨=0, 瀑布=28 +2025-12-18 05:16:16,152 - freqaiprimer - INFO - [TRUMP/USDT] 入场统计: 传统=4516, ML通过=426, 环境允许=5092, 最终=193 +2025-12-18 05:16:16,154 - freqaiprimer - INFO - [TRUMP/USDT] 极端出场: 总=1, 暴涨=0, 瀑布=1 +2025-12-18 05:16:16,281 - freqaiprimer - INFO - [SUI/USDT] 极端出场: 总=20, 暴涨=0, 瀑布=20 +2025-12-18 05:16:16,405 - freqaiprimer - INFO - [PEPE/USDT] 入场统计: 传统=4126, ML通过=253, 环境允许=493, 最终=1 +2025-12-18 05:16:16,407 - freqaiprimer - INFO - [PEPE/USDT] 极端出场: 总=20, 暴涨=0, 瀑布=20 +2025-12-18 05:16:16,532 - freqaiprimer - INFO - [TRB/USDT] 极端出场: 总=13, 暴涨=2, 瀑布=11 +2025-12-18 05:16:16,656 - freqaiprimer - INFO - [MASK/USDT] 入场统计: 传统=4068, ML通过=162, 环境允许=1845, 最终=26 +2025-12-18 05:16:16,657 - freqaiprimer - INFO - [MASK/USDT] 极端出场: 总=22, 暴涨=1, 瀑布=21 +2025-12-18 05:16:16,783 - freqaiprimer - INFO - [UNI/USDT] 极端出场: 总=8, 暴涨=0, 瀑布=8 +2025-12-18 05:16:16,906 - freqaiprimer - INFO - [KAITO/USDT] 极端出场: 总=17, 暴涨=0, 瀑布=17 +2025-12-18 05:16:16,954 - freqaiprimer - INFO - 计算波动系数EMA完成 TRUMP/USDT: 最终系数=1.0000 (历史数据不足,使用当前值) +2025-12-18 05:16:17,077 - freqaiprimer - INFO - 计算波动系数EMA完成 MASK/USDT: 最终系数=1.0000 (历史数据不足,使用当前值) +2025-12-18 05:16:17,332 - freqaiprimer - INFO - 计算波动系数EMA完成 TON/USDT: 最终系数=1.0000 (历史数据不足,使用当前值) +2025-12-18 05:16:17,522 - freqaiprimer - INFO - 计算波动系数EMA完成 DOGE/USDT: 最终系数=1.0000 (历史数据不足,使用当前值) +2025-12-18 05:16:17,529 - freqaiprimer - INFO - 计算波动系数EMA完成 PEPE/USDT: 最终系数=1.0000 (历史数据不足,使用当前值) +2025-12-18 05:16:18,014 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-12-18_05-16-18.meta.json" +Result for strategy FreqaiPrimer + BACKTESTING REPORT +┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ MASK/USDT │ 2 │ 3.35 │ 23.468 │ 1.17 │ 15:10:00 │ 2 0 0 100 │ +│ TRUMP/USDT │ 2 │ 2.12 │ 14.868 │ 0.74 │ 1 day, 1:06:00 │ 2 0 0 100 │ +│ DOGE/USDT │ 1 │ 3.23 │ 11.305 │ 0.57 │ 8:36:00 │ 1 0 0 100 │ +│ BTC/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ DOT/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ XRP/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ OKB/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ SOL/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ WCT/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ SUI/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ TRB/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ UNI/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ KAITO/USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ +│ TON/USDT │ 1 │ -1.77 │ -6.201 │ -0.31 │ 1 day, 21:42:00 │ 0 0 1 0 │ +│ PEPE/USDT │ 1 │ -2.02 │ -7.069 │ -0.35 │ 23:18:00 │ 0 0 1 0 │ +│ TOTAL │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ +└────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ + LEFT OPEN TRADES REPORT +┏━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ TON/USDT │ 1 │ -1.77 │ -6.201 │ -0.31 │ 1 day, 21:42:00 │ 0 0 1 0 │ +│ PEPE/USDT │ 1 │ -2.02 │ -7.069 │ -0.35 │ 23:18:00 │ 0 0 1 0 │ +│ TOTAL │ 2 │ -1.89 │ -13.270 │ -0.66 │ 1 day, 10:30:00 │ 0 0 2 0 │ +└───────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ + ENTER TAG STATS +┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ OTHER │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ +│ TOTAL │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ +└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘ + EXIT REASON STATS +┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ trailing_stop_loss │ 4 │ 3.32 │ 46.529 │ 2.33 │ 10:08:00 │ 4 0 0 100 │ +│ custom_exit │ 1 │ 0.89 │ 3.112 │ 0.16 │ 2 days, 0:36:00 │ 1 0 0 100 │ +│ force_exit │ 2 │ -1.89 │ -13.270 │ -0.66 │ 1 day, 10:30:00 │ 0 0 2 0 │ +│ TOTAL │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ +└────────────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ + MIXED TAG STATS +┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ │ trailing_stop_loss │ 4 │ 3.32 │ 46.529 │ 2.33 │ 10:08:00 │ 4 0 0 100 │ +│ │ custom_exit │ 1 │ 0.89 │ 3.112 │ 0.16 │ 2 days, 0:36:00 │ 1 0 0 100 │ +│ │ force_exit │ 2 │ -1.89 │ -13.270 │ -0.66 │ 1 day, 10:30:00 │ 0 0 2 0 │ +│ TOTAL │ │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ +└───────────┴────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ + DAY BREAKDOWN +┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃ Day ┃ Trades ┃ Tot Profit USDT ┃ Profit Factor ┃ Win Draw Loss Win% ┃ +┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ +│ 09/11/2025 │ 1 │ 11.874 │ 0.0 │ 1 0 0 100 │ +│ 10/11/2025 │ 2 │ 14.868 │ 0.0 │ 2 0 0 100 │ +│ 11/11/2025 │ 4 │ 9.63 │ 1.73 │ 2 0 2 50.0 │ +└────────────┴────────┴─────────────────┴───────────────┴────────────────────────┘ + SUMMARY METRICS +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓ +┃ Metric ┃ Value ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩ +│ Backtesting from │ 2025-11-05 16:00:00 │ +│ Backtesting to │ 2025-11-11 16:00:00 │ +│ Trading Mode │ Spot │ +│ Max open trades │ 5 │ +│ │ │ +│ Total/Daily Avg Trades │ 7 / 1.17 │ +│ Starting balance │ 2000 USDT │ +│ Final balance │ 2036.371 USDT │ +│ Absolute profit │ 36.371 USDT │ +│ Total profit % │ 1.82% │ +│ CAGR % │ 199.32% │ +│ Sortino │ 266.63 │ +│ Sharpe │ 14.44 │ +│ Calmar │ 894.39 │ +│ SQN │ 1.59 │ +│ Profit factor │ 3.74 │ +│ Expectancy (Ratio) │ 5.20 (0.78) │ +│ Avg. daily profit % │ 0.30% │ +│ Avg. stake amount │ 350 USDT │ +│ Total trade volume │ 4944.273 USDT │ +│ │ │ +│ Best Pair │ MASK/USDT 1.17% │ +│ Worst Pair │ PEPE/USDT -0.35% │ +│ Best trade │ MASK/USDT 3.39% │ +│ Worst trade │ PEPE/USDT -2.02% │ +│ Best day │ 14.868 USDT │ +│ Worst day │ 9.63 USDT │ +│ Days win/draw/lose │ 3 / 0 / 0 │ +│ Avg. Duration Winners │ 17:50:00 │ +│ Avg. Duration Loser │ 1 day, 10:30:00 │ +│ Max Consecutive Wins / Loss │ 5 / 2 │ +│ Rejected Entry signals │ 0 │ +│ Entry/Exit Timeouts │ 0 / 0 │ +│ │ │ +│ Min balance │ 2011.874 USDT │ +│ Max balance │ 2049.641 USDT │ +│ Max % of account underwater │ 0.65% │ +│ Absolute Drawdown (Account) │ 0.65% │ +│ Absolute Drawdown │ 13.27 USDT │ +│ Drawdown high │ 49.641 USDT │ +│ Drawdown low │ 36.371 USDT │ +│ Drawdown Start │ 2025-11-11 01:27:00 │ +│ Drawdown End │ 2025-11-11 16:00:00 │ +│ Market change │ 10.64% │ +└─────────────────────────────┴─────────────────────┘ + +Backtested 2025-11-05 16:00:00 -> 2025-11-11 16:00:00 | Max open trades : 5 + STRATEGY SUMMARY +┏━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓ +┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃ +┡━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩ +│ FreqaiPrimer │ 7 │ 1.48 │ 36.371 │ 1.82 │ 22:36:00 │ 5 0 2 71.4 │ 13.27 USDT 0.65% │ +└──────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────────┘ \ No newline at end of file