每两个入场信号之间必须间隔至少20分钟

This commit is contained in:
zhangkun9038@dingtalk.com 2025-12-21 00:15:21 +08:00
parent c97ee5a087
commit d27d76811e
2 changed files with 165 additions and 0 deletions

View File

@ -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

146
results/backtest_ai6_0.log Normal file
View File

@ -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% │
└──────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────────┘