关于错误信号的问题,暂且这样说啊。
在进行简单的程序化编程的过程中,发现所设置条件执行,但是有错误
以下是部分代码,在执行的过程中,从图中可以明显看出已经有了持仓即 HOLDING <>0 可是程序继续开空。不知道是什么原因
IF(MMINW1>0 and W1>0 and HOLDING >0) then
//SPK;卖平后卖开新仓
begin
SELL(MMINW1>0 and W1>0,abs(HOLDING),market ); //=平多
BUYSHORT(MMINW1>0 and W1>0,abs(HOLDING),market);//=开空
end
IF(MMINW1>0 and W1>0 and HOLDING = 0) THEN
//无仓直接 卖开新仓
begin
BUYSHORT(MMINW1>0 and W1<=0,2,market);//=开空
end
对应图片无法上传,2.02
同时,加入止损代码后,出现连续的开空,平空现象,也找不到原因
请严格按函数IF的语法写,如
IF (MMINW1>0 and W1>0 and HOLDING >0) then
//SPK;卖平后卖开新仓
begin
SELL(MMINW1>0 and W1>0,abs(HOLDING),market ); //=平多
BUYSHORT(MMINW1>0 and W1>0,abs(HOLDING),market);//=开空
end
IF (MMINW1>0 and W1>0 and HOLDING = 0) THEN
//无仓直接 卖开新仓
begin
BUYSHORT(MMINW1>0 and W1<=0,2,market);//=开空
end
个人认为楼主的语句,基本等同于以下语句(开仓改成了具体数量)
IF MMINW1>0 and W1>0 then
begin
SELL(HOLDING >0,0,market ); //若有多仓,则平多;没有多仓,自然也就不执行此句
BUYSHORT(HOLDING =0,1,market);//开空
end
按语法,只要在IF后加个空格就行,如2楼那样