 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
不需要variable全局变量,就普通变量就可以了,然后tholding是净持仓。图表是不支持锁仓所以只有一个holding,后台没有这种限制所以你用净持仓的话他是多空总的结果了
你要了解下这是自己要的效果吗??一般后台我们直接用tbuyholding(1)和tsellholding(1)来具体的表明多头和空头持仓的
帐户:'1000';
品种:'M09';
//条件判断
Z:=ZIG(3,0.3);
多1:=Z>REF(Z,1) and REF(Z,1)<REF(Z,2) ;
空1:=Z<REF(Z,1) and REF(Z,1)>REF(Z,2) ;
多2:=Z>REF(Z,1) and REF(Z,1)>REF(Z,2) and REF(Z,2)<REF(Z,3);
空2:=Z<REF(Z,1) and REF(Z,1)<REF(Z,2) and REF(Z,2)>REF(Z,3) ;
N11:=BARSLAST(多1);
N12:=BARSLAST(多2);
N21:=BARSLAST(空1);
N22:=BARSLAST(空2);
B11:=REF(C,(N11+1));//多1价
B12:=REF(C,(N12+1));//多2价
B21:=REF(C,(N21+1));//空1价
B22:=REF(C,(N22+1));//空2价
多11:=N11<N21 and (B21-B11)>12*MINDIFF and (DYNAINFO(7)-B11)>0 and (DYNAINFO(7)-B11)<3*MINDIFF;
多12:=N11<N21 and (B22-B12)>12*MINDIFF and (DYNAINFO(7)-B12)>0 and (DYNAINFO(7)-B12)<3*MINDIFF;
空21:=N21<N11 and (B11-B21)>12*MINDIFF and (DYNAINFO(7)-B21)>0 and (DYNAINFO(7)-B21)<3*MINDIFF;
空22:=N21<N11 and (B22-B12)>12*MINDIFF and (DYNAINFO(7)-B22)>0 and (DYNAINFO(7)-B22)<3*MINDIFF;
//多空条件:
多:=多1=1 and 多11=1 or 多2=1 and 多12=1;
空:=空1=1 and 空21=1 or 空2=1 and 空22=1;
VMIN:=090000;//用于隔夜高开或低开时间差
IF (ABS(O-REF(C,1))>=20*MINDIFF AND TIME>090000 AND TIME<090400) THEN VMIN := 093000;
//固定止盈条件判断
固定止盈:DYNAINFO(7)-TAVGENTERPRICEEX2(帐户,品种,0)>=50*MINDIFF;
//固定止损条件判断
固定止损:TAVGENTERPRICEEX2(帐户,品种,0)-DYNAINFO(7)>=20*MINDIFF;
//开多仓条件:
开多:=多 AND THOLDING=0 AND TIME>VMIN AND TIME<145500;
//平多仓条件:
移平多:=IF(THOLDING>0,HHV(HIGH,TTYPEBAR(1,1))-10*MINDIFF,L-10*MINDIFF);
//多单移动止损线
//PARTLINE(THOLDING>0, 移平多, COLORRGB(255,0,0)); 这个在后台不显示
//平多仓
平多仓:=(THOLDING>0 AND 空) OR (THOLDING>0 AND 移平多>C) or (THOLDING>0 AND 固定止盈);
//开空仓条件:
开空:=空 AND THOLDING=0 AND TIME>VMIN AND TIME<145500;
//平空仓条件:
移平空:=IF(THOLDING<0,LLV(LOW,TTYPEBAR(1,3))+10*MINDIFF,H+10*MINDIFF);
//空单移动止损线
//PARTLINE(THOLDING<0,移平空, COLORRGB(0,255,0)); 这个在后台不显示
//平空仓
平空仓:=(THOLDING<0 AND 多) OR (THOLDING<0 AND 移平空<C) or (THOLDING<0 AND 固定止损);
TSELLSHORT(平空仓,THOLDING,LMT,C);//平空仓
TBUY(开多,1,LMT,C);//开多
TSELL(平多仓,THOLDING,LMT,C);//平多仓
TBUYSHORT(开空,1,LMT,C);//开空
//收盘前平仓
TSELL(TIME>145500 AND THOLDING>0,THOLDING,LMT,C-MINDIFF*2);
TSELLSHORT(TIME>145500 AND THOLDING<0,THOLDING,LMT,C+MINDIFF*2); |
|