上面策略导入后,回测会出现图中这个情况,即当根K线收盘后,RSI值满足平仓条件平仓,但显示的平仓点却不是下一根K线的开盘价,而是当根K线的开盘价,麻烦老师帮忙看看代码错在哪里,该怎样修改
折腾了八个小时,终于解决了
平仓怎么可能用下一根k线的开盘价?你看盘的时候能知道下一根k开盘价多少么?
BuyToCover(1, Open)开盘价买入平仓有错吗?
执行的时候当前bar是哪一跟,open就返回哪一根的开盘价
你在收盘bar上执行BuyToCover(1, Open),那这个open取得就是收盘bar上得开盘价。你想取后面一根bar的开盘价,那就必须在后面一根bar上执行BuyToCover(1, Open)才能渠道正确的
回到你的问题,BuyToCover(1, Open)开盘价买入平仓有错吗?这个问题的回答是没有错。错在你前面的问题,你想取下一根的open,但是你这里的if条件限定了你是在收盘bar上满足条件从而执行BuyToCover(1, Open),所以open取到的就是收盘bar上的开盘价。
所以前面我反复跟你说,改思路,改成,在开盘bar上,判断上一根收盘bar是否满足条件,满足就当根bar开盘价平仓。
不知道说了这么多遍你能明白吗
明白了,谢谢老师
非常感谢,这样稍作一点修改就搞定了,昨天还白白折腾了一整天!我刚学这个策略编程,完全是菜鸟,碰到不懂的望老师多多指点,不胜感激!