为什么会优先执行买信号

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;

           }

     }

老师,请问为什么先出现卖信号后,价格再突破满足买开仓条件,回测的时候会优先执行买开仓信号,这是因为买开仓写在前面吗(特别是在期货晚上时间经常发现这种情况)

回测的时候为什么OnInit会执行2遍
这段代码为什么会信号闪烁?
老师看看信号为什么已经有了买信号会消失,最后又出现卖信号?
设置双向交易平仓后,开仓、平仓为什么会间隔一个K线才执行
为什么出场信号不执行
盘中信号还是会闪
为什么委托会和图标信号不一致
为什么会闪烁
信号执行问题
为什么信号平仓是以收盘执行程序,账户持仓是实时触发执行程序

代码从上往下执行

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

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

不是代码问题,是判断逻辑问题。

你的多空判断条件区别,开多是最高价大于上一根收盘价,开空是最低价小于上一根开盘价。

那我问一个问题,你现在打开随便一个什么品种的k线图,找到一根最高价大于上一根收盘价的,最低价小于上一根开盘价的bar。

请你告诉我你如何能判断出来是最高价先大于上一根收盘价的,还是最低价先小于上一根开盘价的。

只要你能说出如何判断,就能写成代码

说不出来,就写不了

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

答非所问