MA5:=MA(C,5);
MA21:=MA(C,21);
//指标线
多12:=VALUEWHEN(CROSS(DEA,0),C);
空12:=VALUEWHEN(CROSS(0,DEA),C);
多11:=VALUEWHEN(CROSS(MA5,MA21),L);
空11:=VALUEWHEN(CROSS(MA21,MA5),H);
IF DEA>0 THEN D: 多12,COLORRED;
IF DEA<0 THEN K: 空12,COLORGREEN;
//开仓条件
B1:= CROSS(C,D)&&DEA>0&&C>H15&&C>AA&&DIFF>DEA&&CCI>100&&TIME>=100000;
S1:= CROSS(K,C)&&DEA<0&&C<L15&&C<AA&&DIFF<DEA&&CCI<-100&&TIME>=100000 ;
B2:= CROSS(C,D)&&DEA>0&&C>AA&&DIFF>DEA&&DIFF15>DEA15&&CCI>100&&TIME<=100000;
S2:= CROSS(K,C)&&DEA<0&&C<AA&&DIFF<DEA&&DIFF15<DEA15&&CCI<-100&&TIME<=100000;
//平仓条件
PB1:=CROSS(AA,C)&&K>AA&&DEA<0;
PS1:=CROSS(C,AA)&&D<AA&&DEA>0;
//资金风险控制
BBS1:=ASSET-REF(ASSET,N),noaxis ,linethick0 ;//当天盈亏合计
BBS2:=TNUMLOSSTRADE-REF(TNUMLOSSTRADE,N);//当天亏损次数
BBS3:=BBS2<2;//限制开仓次数
BB1:=BBS1>=-5000&&BBS1<=12000 ;//限制开仓
//平空或同时开多
IF TIME>=091600&&TIME<143500&&(B1||B2)&&THOLDING<=0&&BB1&&H-L<20 THEN
BEGIN TSELLSHORT(THOLDING<0,1,LMT,C);
TBUY(THOLDING=0,1,LMT,C);
Z:=TENTERPRICE;
ZD:=H-Z;END
IF TIME>=091600&&TIME<143500&&(B1||B2)&& THOLDING<0&&BB1 THEN TSELLSHORT(THOLDING<0,1,LMT,C);
//平多或同时开空
IF TIME>=091600&&TIME<143500&&(S1||S2)&&THOLDING>=0&&BB1&&H-L<20 THEN
BEGIN TSELL(THOLDING>0,1,LMT,C);
TBUYSHORT(THOLDING=0,1,LMT,C);
Z:=TENTERPRICE;
ZK:=Z-L;
END
IF TIME>=091600&&TIME<143500&&(S1||S2)&& THOLDING>0&&BB1 THEN TSELL(THOLDING>0,1,LMT,C);
//持仓浮动盈亏风险控制
IF H-Z>ZD then ZD:=H-Z;//当前持仓最大浮盈计算(多单)
IF Z-L>ZK THEN ZK:=Z-L;//当前持仓最大浮盈计算(空单)
IF THOLDING=0|| THOLDING>0 THEN ZK:=0;
IF THOLDING=0|| THOLDING<0 THEN ZD:=0;
BSD:=C-Z<=ZD-15&&THOLDING>0;//多头持仓从最高浮动盈亏回撤15个点以上
BSK:=Z-C<=ZK-15&&THOLDING<0;//空头持仓从最高浮动盈亏回撤15个点以上
BSD3:=C-Z>=70&&THOLDING>0;//多头持仓浮盈70个点以上
BSK3:=Z-C>=70&&THOLDING<0;//多头持仓浮盈70个点以上
BSD1:= C-Z<=0.6*ZD && ZD>=25&&THOLDING>0;//多头浮盈从25个点以上回撤40%
BSD2:= C-Z<=ZD-15 && ZD>=45&&THOLDING>0;//多头浮盈从45个点以上回撤15个点
BSK1:= Z-C<=0.6*ZK && ZK>=25&&THOLDING<0;//多头浮盈从25个点以上回撤40%
BSK2:= Z-C<=ZK-15 && ZK>=45&&THOLDING<0;//多头浮盈从45个点以上回撤15个点
//风险控制平多
IF (TIME>150500||BSD||BSD1||BSD2||BSD3||BBS1<=-6000||PB1)&&THOLDING>0 THEN
BEGIN TSELL(THOLDING>0,1,LMT,C);
END
//风险控制平空
IF (TIME>150500||BSK||BSK1||BSK2||BSK3||BBS1<=-6000||PS1)&&THOLDING<0 THEN
BEGIN TSELLSHORT(THOLDING<0,1,LMT,C);
END
//监控(开多)未成交单
KD:=TREMAINQTY(1,\'\',\'\');
IF KD<>0 THEN BEGIN
开多:=KD;
END
//对(开多)未成交单撤单,并追单
IF KD>0 THEN BEGIN
TCANCEL(1,1);
TBUY(KD=0,开多,MKT);
END
//监控(平多)未成交单
PD:=TREMAINQTY( 2,\'\',\'\');
IF PD<>0 THEN BEGIN
平多:=PD;
END
//对(平多)未成交单撤单,并追单
IF PD>0 THEN BEGIN
TCANCEL(1,2);
TSELL(PD=0,平多,MKT);
END
//监控(开空)未成交单
KK:=TREMAINQTY( 3,\'\',\'\');
IF KK<>0 THEN BEGIN
开空:=KK;
END
//对(空开)未成交单撤单,并追单
IF KK>0 THEN BEGIN
TCANCEL(1,3);
TBUYSHORT(KK=0,开空,MKT);
END
//监控(平空)未成交单
PK:=TREMAINQTY( 4,\'\',\'\');
IF PK<>0 THEN BEGIN
平空:=PK;
END
//对(平空)未成交单撤单,并追单
IF PK>0 THEN BEGIN
TCANCEL(1,4);
TSELLSHORT(PK=0,平空,MKT);
END
//在图表显示数据
多:=IF(THOLDING>0,C-Z,0);
空:=IF(THOLDING<0,Z-C,0);
最高:=MAX(ZK,ZD);
盈亏:=asset-REF(ASSET,N);
持仓:=TODAYHOLDING;
DEBUGOUT(\'当前持仓量%.2f\',持仓);
DEBUGOUT(\'当前盈亏%.2f\',盈亏 );
DEBUGOUT(\'持仓最高浮盈%.2f\',最高 );
DEBUGOUT(\'多单浮盈%.2f\',多 );
DEBUGOUT(\'空单浮盈%.2f\',空 );