A是一个限制性多的条件
B是一个限制性少的条件
A和B成立时都开多或开空
但当A成立时B不再执行开仓和加仓,而是只执行A。这样就不重复开仓和加仓了。
乱了。
当A条件成立时开仓20%,当B条件成立时开仓10%。二个条件同时成立时,只执行A条件开仓20%
当A条件下的C成立时加仓10%
当B条件下的C成立时加仓5%
variable:n=0;
variable:m=0;
if a and 持仓判断 and n=0 then begin
buy(holding=0,20%,marketr),pertrader;
n:=1;
end
if b and not(a) and 持仓判断 and m=0 then begin
buy(holding=0,10%,marketr),pertrader;
m:=1;
end
if n=1 and c then buy(1,10%,marketr),pertrader;
if m=1 and c then buy(1,5%,marketr),pertrader;
if 平仓条件 and n=1 and holding>0 then begin
sell.......;
n:=0;
end
if 平仓条件 and m=1 and holding>0 then begin
sellshort......;
m:=0;
end
variable:n=0;
variable:m=0;
if kd and HOLDING=0 and n=0 then begin
buy(holding=0,20%,marketr)pertrader;
n:=1;
end
if kd2 and not(kd1) and HOLDING=0 and m=0 then begin
buy(holding=0,10%,marketr),pertrader;
m:=1;
end
if n=1 and c then buy(1,10%,marketr),pertrader;
if m=1 and c then buy(1,5%,marketr),pertrader;
if pd and n=1 and holding>0 then begin
sell(PD ,100%,THISCLOSE);
n:=0;
end
if pk and m=1 and holding>0 then begin
sellshort(PD ,100%,THISCLOSE);
m:=0;
end
---------------还是信号不对。
开多:BUY(KD AND HOLDING=0,20%,MARKETR); //开多信号
if holding>0 and kd and 条件C then buy(1,10%,market);//加仓
if holding>0 and kd and 条件D then buy(1,1%,market);
开多2:BUY(KD2 AND HOLDING=0,14%,MARKETR); //开多信号2
if holding>0 and kd2 and 条件C then buy(1,5%,market);//加仓
if holding>0 and kd2 and 条件D then buy(1,0.5%,market);
平多:SELL(PD ,100%,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,n%,MARKETR); //开空信号
if holding<0 and 条件C then buyshort(1,10%,market);
if holding<0 and 条件D then buyshort(1,1%,market);
开空2:BUYSHORT(KK2 AND HOLDING=0,14%,MARKETR); //开空信号2
if holding<0 and kk2 and 条件C then buyshort(1,5%,market);
if holding<0 and kk2 and 条件D then buyshort(1,0.5%,market);
=========================
当开多开空条件成立时,不再开多2和开空2
平空:SELLSHORT(PK ,100%,THISCLOSE); //平空信号