为什么会优先执行买信号

Events OnBar(ArrayRef<Integer> indexs) { If(High>Close[1] &&close[1]>open[1]) { Buy(1,Close[1]); Return; } If( Low<OPEN[1]&&close[1]<open[1]) { SellShort(1,OPEN[1]); Return; } }老师,请问为什么先出现卖信号后,价格再突破满足买开仓条件,回测的时候会优先执行买开仓信号,这是因为买开仓写在前面吗(特别是在期货晚上时间经常发现这种情况)

代码从上往下执行

那当然了,代码执行顺序是从上到下啊!这是有先后顺序的啊!

回复:代码如何改可以避免这种情况,先出信号,先开仓,后出信号不执行

回复:不是代码问题,是判断逻辑问题。你的多空判断条件区别,开多是最高价大于上一根收盘价,开空是最低价小于上一根开盘价。那我问一个问题,你现在打开随便一个什么品种的k线图,找到一根最高价大于上一根收盘价的,最低价小于上一根开盘价的bar。请你告诉我你如何能判断出来是最高价先大于上一根收盘价的,还是最低价先小于上一根开盘价的。只要你能说出如何判断,就能写成代码说不出来,就写不了

回复:同一个K线,出现买或卖信号成立,那么后面的开仓信号不执行

回复:答非所问