我思考的模型平仓的条件是:当开仓后一旦出现某一信号(比如开仓后出现一阳加三阴)后以限价平仓。在写的过程中用ref函数只能实现一阳加三阴信号出现时发出委托单。但实际情况存在因为限价的原因无法成交的情况,但后面行情可能不会再出现一阳加三阴的信号,导致无法继续发出委托指令,
问:有没有办法让一阳加三阴的信号在开仓后一旦出现,在平仓之前一直有效,从而可以持续发出委托?
1.你说的连续平仓,指的是每根k上都平仓一次,还是只在一根k上持续委托。
你是做后台程序化还是图表程序化。在图表上是做不到的。后台上可以尝试下,但是如果有加仓或者多个平仓语句的话,处理起来可能比较麻烦。
图表的 ,我觉得如果上述不可行,我可以通过统计信号出现的数量开实现,
具体代码是
n1:=5;//5周期均线
n2:=30;//30周期均线
ma5:ma(c,n1);
ma30:ma(c,n2);
sz:=ref(c,2)<ref(ma5,2) and
all(c>=ma5,2);
al2:=ref(all(c<ma5,2),1);
NN:=COUNT(本次开空单到今天(平仓之前)sz的个数)
if
ma30>ma5 and al2 and holding=0 then begin
开空:buyshort(1,7, limitr,ma5-15);
end
if NN>=1
and holding<0 then begin
平空: sellshort(1,holding, limitr,ma5+15);
End
NN:=COUNT(本次开空单到今天(平仓之前)sz的个数)里面的要怎么写呢
图表上的问题在于,你不知道图表信号触发的下单到底成交了没。 这是图表的机制问题。因为我尽管知道历史上有信号A的出现,但是我却不知道信号A触发的下单成交了没。所以用统计的话也是无法实现的。
后台的思路是在收盘前判断为未成交委托单数量,然后可以用全局变量记录下来。明日开盘后,选择合适的时间重新入场。