老师,暂不要过滤信号,麻烦您编写止盈平仓条件,谢谢老师
//多单止盈平仓条件:成交量的MA3大于100000 平多仓
//空单止盈平仓条件:成交量的MA3大于100000 平空仓
//加仓条件,
平多仓的价格,如果在红色k线区间,回落百分之0.005,实时加多仓
平空仓的价格,如果在绿色k线区间,反弹百分之0.005,实时加空仓
HH:=HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,5)/120+HHV (HIGH,60)/5;
LL:=LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,5)/5+LLV(LOW,30)/5;
H1:= IF(H<REF(H,10)&&REF(H,20)<REF(H,2),REF(H,2),0);
L1:= IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);
H2:=VALUEWHEN(H1>0,H1);
L2:=VALUEWHEN(L1>0,L1);
K1:=IF(CLOSE>H2,-3,IF(CLOSE<L2,1,0));
K2:=VALUEWHEN(K1<>0,K1);
GG:=IF(K2=1,H2,L2);
GG1:=VALUEWHEN(ISLASTBAR,GG);
TMP1:=K2;
W1:=K2;
W2:=OPEN-CLOSE;
HT:=IF(OPEN>CLOSE,OPEN,CLOSE);
LT:=IF(OPEN<CLOSE,OPEN,CLOSE);
KK:=BARSLAST(CROSS(TMP1,0));
DD:=BARSLAST(CROSS(0,TMP1));
STICKLINE(DD<KK,C,O,8,0),COLORRED;
STICKLINE(DD<KK,H,L,0,0),COLORRED;
STICKLINE(DD>KK,C,O,8,0),COLORGREEN;
STICKLINE(DD>KK,H,L,0,0),COLORGREEN;
VARIABLE:p1:=0,p2:=0;//这2个全局变量,记录最近一次的平多和平空的价格
ss:=2;//手数
jc:CROSS(0,TMP1);
sc:CROSS(TMP1,0);
if ref(jc,0) then
begin
sellshort(holding<0,holding,MARKETR);//平空
p2:=EXITPRICE;
buy(holding=0,ss,MARKETR); // 过滤信号 盘整、震荡行情 不开仓
end
if ref(sc,0) then
begin
sell(holding>0,holding,MARKETR);//平多
p1:=EXITPRICE;
buyshort(holding=0,ss,MARKETR);// 过滤信号 盘整、震荡行情 不开仓
end
INPUT:M1(5,5,10,1),M2(10,10,30,1),M3(20,1,50,1);
VOLUME:VOL,;
MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);
//多单止盈条件:成交量的MA3大于100000 平多仓
多头止盈:sell(vol>ma3,holding,market);
//空单止盈条件:MA3大于100000 平空仓
空头止盈:sellshort(ma3>vol,holding,market);
//加仓条件,
//平多仓的价格,如果在红色k线区间,回落百分之0.005,实时加多仓
//平空仓的价格,如果在绿色k线区间,反弹百分之0.005,实时加空仓
pcd1:(p1-c)/p1<=0.005/100;//最新价比上次平多价格回落0.005% 加仓
pcd2:(c-p2)/p2>=0.005/100;//最新价比上次平多价格上涨0.005% 平仓
多头加仓:buy(DD<KK and pcd1,1,market);
空头加仓:buyshort(DD>KK and pcd2,1,market);
代码如上。但是这个加仓条件太宽松了,基本上会一直加仓的。