notes_works/new notes/freqtrade 回测和dry-run的疑问.md
2025-04-10 11:13:22 +08:00

4.5 KiB
Raw Blame History

date tags from
2025-04-09 13:57:24
量化
freqtrade
回测
https://x.com/i/grok?conversation=1909844133071798467

freqtrade sqlite容量问题

我: https://www.freqtrade.io/en/stable/strategy-101/请讲解一下这部分内容:

Assessing backtesting and dry run results¶Always dry run your strategy after backtesting it to see if backtesting and dry run results are sufficiently similar.

If there is any significant difference, verify that your entry and exit signals are consistent and appear on the same candles between the two modes. However, there will always be differences between dry runs and backtests:

这段内容是关于如何评估交易策略的回测backtesting和模拟运行dry run结果的来自Freqtrade一个开源的加密货币交易框架的官方文档。以下是对其内容的逐步讲解


核心建议:总是结合回测和模拟运行进行验证

在完成策略的回测后建议运行一次模拟运行dry run以检查回测结果和模拟运行结果是否足够相似。这是因为回测是在理想化的假设下进行的而模拟运行更接近真实市场环境。通过对比两者可以验证策略的可靠性和一致性。


如果结果差异显著,如何排查?

如果回测和模拟运行的结果存在明显差异,你需要检查以下方面:

  1. 买入和卖出信号的一致性:

    • 确保在回测和模拟运行中买入entry和卖出exit信号出现在相同的K线candles上。

    • 如果信号位置不一致,可能是策略逻辑或数据处理的问题。

  2. 理解差异的原因:

    • 回测和模拟运行之间总是会存在一些差异,这是正常现象。接下来会详细说明这些差异的来源。

回测与模拟运行的差异原因

以下是导致回测和模拟运行结果不同的几个主要因素:

  1. 订单填充假设
  • 回测假设所有订单都能被100%成交。例如无论市场深度如何限价单limit orders都会被填满。

  • 模拟运行:如果使用限价单,或者交易所的交易量不足,订单可能无法成交。这会直接影响结果。

  1. 交易执行时机
  • 回测:

    • 当K线收盘后触发买入信号时回测假设交易在下一根K线的开盘价open price执行。

    • 除非你在策略中自定义了价格回调pricing callbacks否则回测不会模拟延迟。

  • 模拟运行:

    • 新K线生成后例如每5分钟生成一根K线Freqtrade需要时间分析所有交易对的数据框架dataframes

    • 这会导致信号生成和交易执行之间存在几秒钟的延迟(理想情况下延迟尽可能小)。

    • 因此实际买入价格可能偏离回测中的下一根K线开盘价。

  1. 收益计算的差异
  • 由于模拟运行中的买入价格可能与回测不同收益计算profit calculations也会受到影响。

  • 这意味着以下机制的结果可能不完全一致:

    • 投资回报率ROI

    • 止损stoploss

    • 追踪止损trailing stoploss

    • 回调退出callback exits

  • 这种差异是正常的,无需过度担心,只要整体趋势一致即可。

  1. 计算延迟的影响
  • 如果你的计算机性能不足新K线生成后Freqtrade处理所有交易对数据的时间会变长。

  • 计算“延迟”lag越大信号生成和交易执行之间的价格波动就越不可预测。

  • 建议:

    • 确保你的电脑性能足够强大能在合理时间内处理你的交易对列表pairlist中的数据。

    • 检查Freqtrade的日志logs如果有显著的数据处理延迟警告说明需要优化硬件或减少交易对数量。


总结与建议

  1. 回测是理想化测试:它假设所有条件完美,但无法完全反映真实市场。

  2. 模拟运行更贴近现实:它考虑了订单未成交、执行延迟等因素,因此结果可能与回测不同。

  3. 验证一致性:重点检查信号是否一致,而不是追求完全相同的收益数字。

  4. 优化硬件:确保计算能力跟得上策略需求,避免因延迟导致结果偏差。

通过结合回测和模拟运行,你可以更全面地评估策略的表现,并在真实交易前发现潜在问题。如果还有具体问题,可以告诉我,我会进一步帮你分析!