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线,出现买或卖信号成立,那么后面的开仓信号不执行

答非所问