//麻烦帮我看一下这个后台编写的策略有没有问题
//一账户多策略同时运行,这是其中一个
variable:B1_ZZ=0;//追单开关
VARIABLE:B1_Z=0;//定位开仓价
VARIABLE:B1_ZD=0;//多头变量
VARIABLE:B1_ZK=0;//空头变量
VARIABLE:B1_FD=0;//多头浮动盈亏
VARIABLE:B1_FK=0;//空头浮动盈亏
VARIABLE:B1_BS4开=0;//开仓条件4开关
VARIABLE:B1_仓=0,B1_J=0;//策略盈亏计算(以平+浮动)未含手续费
VARIABLE:B1_平=0;//平仓价与平仓价记录
FD:=EXTGBDATA(B1_FD);
FK:=EXTGBDATA(B1_FK);
ZZ:=EXTGBDATA(B1_ZZ);
Z:=EXTGBDATA(B1_Z);
ZK:=EXTGBDATA(B1_ZK);
ZD:=EXTGBDATA(B1_ZD);
BS4开:=EXTGBDATA(B1_BS4开);
Q:=EXTGBDATA(B1_仓);//持仓方向
//MACD引用
variable:ema12=c,ema26=c,dea=0;
if day<>ref(day,1) then begin
EXTGBDATASET( ema12,c);
EXTGBDATASET( ema26,c);
EXTGBDATASET( DEA,0);end
ema12:=EXTGBDATA(ema12)*11/13+c*2/13;
ema26:=EXTGBDATA(ema26)*25/27+c*2/27;
DIFF:=ema12-ema26;
DEA:=DEA*4/5+DIFF/5;
N:=BARSLAST(DATE<>REF(DATE,1))+1;//开盘到当前周期数
H30:=VALUEWHEN(N=16,HHV(H,16));//开盘后16根K柱最高价
L30:=VALUEWHEN(N=16,LLV(L,16));//开盘后16根K柱最低价
HL30:=H30-L30;
//引用15分钟周的MACD
DIFF15:="BB.DIFF1#MIN15";
DEA15:="BB.DEA1#MIN15";
//资金风险控制
BBS1:=EXTGBDATA(B1_J) ;//当天盈亏合计
BB1:=BBS1>=-5000&&BBS1<=12000 ;
T:=COUNT(EXTGBDATA(B1_仓)<>0,N)<2;//限制开仓次数(2次)
IF TIME<091600 THEN BEGIN EXTGBDATASET(B1_J,0);EXTGBDATASET(B1_平,0);END
//开仓条件
B1:=(CROSS(C,H30)||CROSS(C,L30))&&DIFF15>DEA15&&DIFF>DEA&&DEA>0;//开多条件1
S1:=(CROSS(L30,C)||CROSS(H30,C))&&DIFF15<DEA15&&DIFF<DEA&&DEA<0;//开空条件1
B2:=CROSS(DIFF15,DEA15)&&C>H30&&DIFF>DEA&&TIME>100000&&TIME<140000&&DEA>0;//开多条件2
S2:=CROSS(DEA15,DIFF15)&&C<L30&&DIFF<DEA&&TIME>100000&&TIME<140000&&DEA<0;//开空条件2
//平仓条件
PB1:=CROSS(DEA15,DIFF15)&&DEA<0;//平多条件1
PB2:=DEA<0&&DIFF<DEA&&C-Z<ZD-20&&Q>0 ;
PS1:=CROSS(DIFF15,DEA15)&&DEA>0 ;//平空条件1
PS2:=DEA>0&&DIFF>DEA&&Z-C<ZK-20&&Q<0;
//多开
IF TIME>093200&&TIME<143500&&(B1||B2)&&T&&Q=0&&(TBUYHOLDING(1)+TSELLHOLDING(1)<=10)&&BB1 &&H-L<20 THEN
BEGIN TBUY(1,1,LMT,C);
EXTGBDATASET(B1_Z,C);
EXTGBDATASET(B1_ZD,H-Z);
EXTGBDATASET(B1_ZZ,0);
EXTGBDATASET(B1_仓,1);
END
//空开
IF TIME>093200&&TIME<143500&&(S1||S2)&&T&&Q=0&&(TBUYHOLDING(1)+TSELLHOLDING(1)<=10)&&BB1&&H-L<20 THEN
BEGIN TBUYSHORT(1,1,LMT,C);
EXTGBDATASET(B1_Z,C);
EXTGBDATASET(B1_ZK,Z-L);
EXTGBDATASET(B1_ZZ,0);
EXTGBDATASET(B1_仓,-1);
END
//持仓浮点风险控制
IF H-Z>ZD && Q>0 then EXTGBDATASET(B1_ZD,H-Z);
IF Z-L>ZK && Q<0 THEN EXTGBDATASET(B1_ZK,Z-L);
IF Q>=0 THEN EXTGBDATASET(B1_ZK,0);
IF Q<=0 THEN EXTGBDATASET(B1_ZD,0);
IF Q>0 THEN EXTGBDATASET(B1_FD,C-Z);//计算多头浮动盈亏
IF Q<0 THEN EXTGBDATASET(B1_FK,Z-C);//计算空头浮动盈亏
IF Q=0 THEN BEGIN EXTGBDATASET(B1_FD,0); EXTGBDATASET(B1_FK,0);EXTGBDATASET(B1_Z,0); END
BSD:=(FD<=-20|| FD<=ZD-25)&& Q>0;//多头浮亏20个点
BSK:=(Z-C<=-20 || Z-C<=ZK-25)&& Q<0;//空头浮亏20个点
BSD3:=H-Z>=70&& Q>0 ;//多头浮亏20个点
BSK3:=Z-L>=70&& Q<0;//空头浮亏20个点
BSD1:= FD<=0.6*ZD && ZD>=25&& Q>0 ;//浮盈从25个点以上回撤40%
BSD2:= FD<=ZD-15 && ZD>=45&& Q>0 ;//浮盈从45个点以上回撤15个点
BSK1:= Z-C<=0.6*ZK && ZK>=25 ;//浮盈从25个点以上回撤40%
BSK2:= Z-C<=ZK-15 && ZK>=45;//浮盈从45个点以上回撤15个点
//多平
IF (BSD3||BSD1||BSD2)&& Q>0 THEN
BEGIN TSELL(1,1 ,LMT,C);
EXTGBDATASET(B1_ZZ,1);
EXTGBDATASET(B1_J,EXTGBDATA(B1_J)+(C-Z));
EXTGBDATASET(B1_仓,0);
EXTGBDATASET(B1_平,C);END
IF (TIME>150500||PB2||BSD||S1||S2||BBS1<=-6000)& Q>0 THEN BEGIN TSELL(1,1 ,LMT,C);
EXTGBDATASET(B1_J,EXTGBDATA(B1_J)+(C-Z));
EXTGBDATASET(B1_仓,0);
EXTGBDATASET(B1_平,C);END
//平空
IF (BSK3||BSK1||BSK2)&& Q<0 THEN
BEGIN TSELLSHORT(1,1,LMT,C);
EXTGBDATASET(B1_ZZ,1);
EXTGBDATASET(B1_J,EXTGBDATA(B1_J)+(Z-C));
EXTGBDATASET(B1_仓,0);
EXTGBDATASET(B1_平,C);END
IF (PS2||BSK||B1||B2||BBS1<=-6000||TIME>150500)&& Q<0 THEN BEGIN TSELLSHORT(1,1,LMT,C);
EXTGBDATASET(B1_J,EXTGBDATA(B1_J)+(Z-C));
EXTGBDATASET(B1_仓,0);
EXTGBDATASET(B1_平,C);END
//追价条件
if c>EXTGBDATA(B1_平)+15 && ZZ=1 &&TIME>093200&&TIME<141500&&T&& Q=0&&(TBUYHOLDING(1)+TSELLHOLDING(1)<=10)&&BB1&&H-L<20 then
BEGIN TBUY(1,1,LMT,C);
EXTGBDATASET(B1_Z,C);
EXTGBDATASET(B1_ZD,H-Z);
EXTGBDATASET(B1_ZZ,0);
EXTGBDATASET(B1_仓,1);
end
if c<EXTGBDATA(B1_平)-15 && ZZ=1 &&TIME>093200&&TIME<141500&&T&& Q=0&&(TBUYHOLDING(1)+TSELLHOLDING(1)<=10)&&BB1&&H-L<20 then
BEGIN TBUYSHORT(1,1,LMT,C);
EXTGBDATASET(B1_Z,C);
EXTGBDATASET(B1_ZK,Z-L);
EXTGBDATASET(B1_ZZ,0);
EXTGBDATASET(B1_仓,-1);
end
if time>=151000 then EXTGBDATASET(B1_ZZ,0);
最高:=MAX(ZK,ZD) ;
多:=IF( Q>0,C-Z,0);
空:=IF( Q<0,Z-C,0);
持仓:=EXTGBDATA(B1_仓),noaxis ;
盈亏:=BBS1;
DEBUGOUT(\'当前持仓量%.2f\',持仓);
DEBUGOUT(\'当前盈亏%.2f\',盈亏 );
DEBUGOUT(\'持仓最高浮盈%.2f\',最高 );
DEBUGOUT(\'多单浮盈%.2f\',多 );
DEBUGOUT(\'空单浮盈%.2f\',空 );