背景

重构代码之后,这个测试用例失败了,需要修复这个测试用例,分析定位 bug 在什么地方,然后修复

现在这个失败的测试用例就只剩下这一个了大概率可能是指标计算的问题,考虑参考 macd.py 这个指标的实现方式,修复 AdaptiveSuperTrendIndicator(bt.Indicator)这个指标,目前看缺少一些必要的函数,只允许修改这个类,不允许修改其他的。

============================================================ Failed Tests:

FAILED tests/strategies/test_89_adaptive_supertrend_strategy.py::test_adaptive_supertrend_strategy - AssertionError: Expected final_value near 99936.86, got 99947.58428991005

修复方法建议

  1. backtrader/run_test_with_log.py 这个运行这个策略,然后对比 master 分支上的结果,看看 origin 分支上的结果究竟差在哪里,然后去定位。

  2. 如果必要,可以为测试用例增加日志输出,然后方便在两个分支上进行对比。

  3. 现在有多个测试用例失败,每次修改之后,pip install -U . 重新安装一下,然后可以考虑运行

bash run_tests_clean.sh 分析现在测试用例有哪些成功,哪些失败。

限制

  1. 不允许修改测试用例,尤其是测试用例的期望值。尤其是这一点需要注意,这个是 master 分支的版本是可以通过的,所以很大可能是现在分支的代码存在问题,如果你认真对比分析之后,发现是 master 版本的代码出错了,你也可以提出来,放到最后面,后面我确认之后,去修复 master 的问题。

  2. 修改过源代码重新测试的时候,最好 pip install -U . 重新安装一下。

  3. 现在版本的代码和原始的底层实现的逻辑已经有很大不一样了,每个函数的逻辑可能会存在不一样,不能按照 master 版本的相应函数来实现现在版本的函数。即不允许:restore the master branch’s simpler, declarative implementation