用全局变量标记记录。相当于做一个锁,第一次止盈后,将其置为1,启动第二部分仓位处理代码开空。下面是多头部分的处理。空头部分请参考后自行完成。
注:全局变量开关,多空必须分开否者容易造成条件紊乱。下面已经定义好了。
VARIABLE:sellflag=0,sellshortflag=0;
CURRENTPROFIT_D:=(CLOSE-AvGENTERPRICE)/AvGENTERPRICE;
CURRENTPROFIT_K:=(AvGENTERPRICE-CLOSE)/AvGENTERPRICE;
CD2:=CURRENTPROFIT_D>=0.01*Z1 AND HOLDING>0;
CD5:=CURRENTPROFIT_K>=0.01*Z1 AND HOLDING<0;
//一致性盈利
IF CD2=1 and sellflag=0 THEN
BEGIN
SELL(1,HOLDING/2,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
DRAWTEXT( 1,LOW ,"平多" );
sellflag:=1;
END
if ref(CD2,1)=1 and sellflag=1 THEN BEGIN
sell(1,HOLDING,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
sellflag:=0;//平仓完成后恢复初始值,供下次使用。
end
外一半仓位在怎么在主动止盈后第二跟k线也止盈.
你这个条件就是在第一个止盈触发后,下跟k上执行另一半的平仓吗?ref(cd2,1)不就是判断上根k是不是满足第一个止盈的条件。
另外,这个条件是你自己决定的,可以替换成任意一个平仓条件。只要保留sellflag开关就行。
当第一次止盈完成后,sellflag=1,停止第一部分指定的代码执行,防止再次触发。开始启用第二部止盈代码。就是红色部分的。
if 第二部分平仓条件 and sellflag=1 then begin
平仓语句;
sellflag:=0;
end
套这个结构就行。
if 你自己要实现的条件 and sellflag=1 then begin
平仓语句;
sellflag:=0;
end