Skip to content

前瞻性分析

本页面解释了如何检查策略中的前瞻性偏差。

检查前瞻性偏差是任何策略的患处,因为很容易引入回测偏差,但很难检测到。

回测同时初始化所有时间戳并计算所有指标。 这意味着如果您的指标或进出信号可以查看未来的蜡烛图并伪造回测结果。

前瞻性分析需要历史数据可用。 要了解如何获取所感兴趣的交易对和交易所的数据,请转到数据下载文档的相应章节。

此命令是建立在回测之上的,因为它内部链接了回测并诱使策略显示前瞻性偏差。 这是通过不查看策略本身,而是查看其返回的结果来实现的。 结果是指标值的变化和相对于完整回测的移动的进出点。

可以使用回测的命令。 它还支持对freqai策略进行前瞻性分析。

  • --cache 参数被强制为"none"。
  • --max-open-trades 参数被强制为至少等于交易对的数量。
  • --dry-run-wallet 参数被强制为基本上是无限的(10亿)。
  • --stake-amount 参数被强制为固定的10000(10k)。

这些设置是为了避免用户意外生成错误的结果。

前瞻性分析命令参考

用法: freqtrade lookahead-analysis [-h] [-v] [--logfile FILE] [-V] [-c PATH]
                                  [-d PATH] [--userdir PATH] [-s NAME]
                                  [--strategy-path PATH]
                                  [--recursive-strategy-search]
                                  [--freqaimodel NAME]
                                  [--freqaimodel-path PATH] [-i TIMEFRAME]
                                  [--timerange TIMERANGE]
                                  [--data-format-ohlcv {json,jsongz,hdf5,feather,parquet}]
                                  [--max-open-trades INT]
                                  [--stake-amount STAKE_AMOUNT]
                                  [--fee FLOAT] [-p PAIRS [PAIRS ...]]
                                  [--enable-protections]
                                  [--dry-run-wallet DRY_RUN_WALLET]
                                  [--timeframe-detail TIMEFRAME_DETAIL]
                                  [--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
                                  [--export {none,trades,signals}]
                                  [--export-filename PATH]
                                  [--breakdown {day,week,month} [{day,week,month} ...]]
                                  [--cache {none,day,week,month}]
                                  [--freqai-backtest-live-models]
                                  [--minimum-trade-amount INT]
                                  [--targeted-trade-amount INT]
                                  [--lookahead-analysis-exportfilename LOOKAHEAD_ANALYSIS_EXPORTFILENAME]

选项:
  --minimum-trade-amount INT
                        Lookahead分析的最小交易金额
  --targeted-trade-amount INT
                        Lookahead分析的目标交易金额
  --lookahead-analysis-exportfilename LOOKAHEAD_ANALYSIS_EXPORTFILENAME
                        将lookahead分析结果存储在这个csv文件中

上面的输出已被简化为lookahead-analysis选项与常规回测命令。

概要

通过lookahead分析检查给定策略是否存在look ahead偏差(look ahead bias)。 Look ahead偏差指的是回测使用了未来蜡烛的数据,因此在回测之外无法正常运行,并会对回测者产生虚假希望。

介绍

许多策略在程序员不知情的情况下都会陷入look ahead偏差。

任何回测都会在开始时填充完整的数据框,包括所有时间戳。 如果程序员不小心或者对内部工作原理不了解(有时可能很难找到),则策略只会看到未来的数据,使得策略看起来很优秀,但实际上不现实。

该命令旨在尝试通过上述look ahead偏差来验证策略的有效性。

该命令如何工作?

它将从对所有货币对的回测开始,以生成指标和进出场的基准。 回测完成后,它将检查是否满足“minimum-trade-amount”条件, 如果不满足,则取消该策略的前瞻分析。

在设置了基准之后,它将单独进行每个进出场的附加运行。 当进行验证回测时,它将将指标作为信号(无论是进场还是出场)进行比较,并报告其偏差。 在验证或证明为假的所有信号之后,将为用户生成结果表供其查看。

注意事项

  • “前瞻分析”只能验证/证明其计算并验证的交易。 如果策略具有许多不同的信号/信号类型,您需要选择适当的参数以确保所有信号至少触发一次。未触发的信号将不会得到验证。 这可能会导致误判(策略将被报告为无偏)。
  • “前瞻分析”可以访问回测中的所有内容。 请不要激活任何配置项,例如启用持仓叠加。 如果您决定这样做,请确保您不会超出“max_open_trades”设定的最大交易数,也不会有剩余资金在您的钱包里。