今天遇到了难以理解的问题,发现调整代码顺序会影响回测结果。。。。今天新加了一组开仓条件,发现必须放在某组止损条件之前,结果更好。逻辑上说不过去啊!循环读取开平仓和止损条件,按理说,代码的排列顺序不应该影响到结果啊。过去确实没有影响。
版主大神,这是为什么???
代码整体逻辑虽然是顺序结构,但是在整个循环执行中。你开平仓代码顺序调换,自然可能造成开平语句执行发生变化。
止盈止损一般都是需要在开平语句之后。例如:如果放在前面(并且存在仓位控制时),当第一次发生同一根k线的盈止损条件并且开平条件同时成立时,因为止盈止损在前,没有仓位可平,止盈止损无效,再进行开平,就会造成后面的代码执行结果与止盈止损在后面的结果不同
谢谢版主,请问逻辑指针是指什么?能否举例呢?
变量名称没有重复,没有用全局变量,但是用了enterbars,exitbars这些会随信号变化的函数。
代码整体逻辑虽然是顺序结构,但是在整个循环执行中。你开平仓代码顺序调换,自然可能造成开平语句执行发生变化。
止盈止损一般都是需要在开平语句之后。例如:如果放在前面(并且存在仓位控制时),当第一次发生同一根k线的盈止损条件并且开平条件同时成立时,因为止盈止损在前,没有仓位可平,止盈止损无效,再进行开平,就会造成后面的代码执行结果与止盈止损在后面的结果不同
谢谢版主,我没太懂您说的意思。。。我的系统是全进全出,平仓都是全平SELLSHORT(HOLDING<0,0,market),开仓都在空仓条件下buy(HOLDING=0,60,market)。
所以我理解“止盈止损在前,没有仓位可平”这个情况应该不存在?按照HOLDING<0 或 HOLDING>0条件,没有仓位时,止盈止损平仓条件都不会触发。