买卖前, if 两个判断条件,顺序改变,回测结果差别比较大,到底什么原因?

If(MarketPosition<>1 And High>=highline And Time>=0.0001*tradBegin And Time<=0.0001*tradEnd //时间限制 And Close[1] > AverageD(1,20) // 日线 ) { Buy(lots,Max(Open,highline + minMovePrice)); } If(MarketPosition<>1 And Close[1] > AverageD(1,20) // 日线 Time>=0.0001*tradBegin And Time<=0.0001*tradEnd //时间限制 And High>=highline ) { Buy(lots,Max(Open,highline + minMovePrice)); }这两个判断条件,顺序改变,回测结果差别比较大,到底什么原因? if条件里,有分钟级别条件,也有日线条件, 顺序如何排,效果好? 条件判断次数少的,放在前面,还是多的放在前面? 或者有什么通用规则

https://www.bilibili.com/video/BV1BV411A7eo/?spm_id_from=333.999.0.0&vd_source=148cb1d807933f47bb50c46ed69d3c82

bool buy_ma_gl; buy_ma_gl = Close[1] > AverageD(1,20) // 日线20日 and Close[1]>ma buy_ma_gl = Close[1]>ma and Close[1] > AverageD(1,20) // 日线20日 写成变量,条件顺序 改变,回测结果也不一样,不知为什么?

你这个应该会提醒警告的吧,averaged是序列对象,是不能这样放在分支结构或者多列bool条件里的