加仓语句如下:
JD:COND1 AND OPENINT<SS;
JK:COND2 AND OPENINT<SS;
加多:BUY(JD, SS,NEXTOPEN);
加空:BUYSHORT(JK,SS,NEXTOPEN);
回测时发现会连续多次重复加仓。而不是想预想的那样只加仓一次。OPENINT改成DAYHOLDING后,结果一样。这两个函数不是都求的最新持仓量吗?既然持仓量已经限制了,加仓以后,持仓量应该就超过初始下单量了啊。为何还会连续重复加仓?怎么才能限制为满足条件后只加仓一次?只加仓两次呢?
1, openint取的是该期货品种最后时刻的总持仓量。dayholding为图表上的今日开仓数量。两个函数是不一样的。
2,满足条件后,一个开仓语句只能触发一次,要想加2次仓,需要再增加一个开仓语句。信号闪烁造成的重复开仓除外,属于异常现象。
图表程序化中,holding可以取到图表上的虚拟持仓量。无法取到账户的实际持仓。