开仓条件B1 B2 T S1 S2 平仓条件PB1 PS1
//多开
IF TIME>094500&&TIME<140000&&(B1||B2)&&T THEN
BEGIN BUY(HOLDING=0,1,MARKET);
fuying:=OPENPROFIT;
END
//空开
IF TIME>094500&&TIME<140000&&(S1||S2)&&T THEN
BEGIN BUYSHORT(HOLDING=0,1,MARKET);
fuying:=OPENPROFIT;
END
//移动式止盈
IF OPENPROFIT>fuying then fuying:=OPENPROFIT;
BS1:= OPENPROFIT<=0.6*fuying && fuying>=OPENPROFIT+30*300;//浮盈从30个点以上回撤40%
BS2:= OPENPROFIT<=fuying-18 && fuying>=OPENPROFIT+50*300;//浮盈从50个点以上回撤18个点
//多平
IF TIME>150500||PB1||BS||BS2 THEN
BEGIN SELL(HOLDING>0,1 ,THISCLOSE);
Z:=1;
END
//平空
IF TIME>150500||PS1||BS||BS2 THEN
BEGIN SELLSHORT(HOLDING<0,1,THISCLOSE);
Z:=1;
END
为什么不能做反手单?(同一根k柱同时有平多开空信号(或平空开多)它只能默认平仓不会开仓)
如果我用以下这种写法就可以实现同时平仓和开仓,但就用不了移动式止盈止损
平空:SELLSHORT((TIME>1505||PS1||BS)&&HOLDING<0,1,MARKET);
开多:BUY(TIME<1400&&(B1||B2)&&T&&HOLDING=0,1,MARKET);
平多:SELL((TIME>1505||PB1||BS)&&HOLDING>0,1,MARKET);
开空:BUYSHORT(TIME<1400&&(S1||S2)&&T&&HOLDING=0,1,MARKET);
我是新手,请客服帮我解一下,谢谢!!
variable: fuying=0;
variable: Z=0;
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;
//引用MACD
DIFF : =EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
//引用15分钟周的MACD
DIFF15:="BB.DIFF#MIN15";
DEA15:="BB.DEA#MIN15";
T:=TOTALDAYTRADE<=2;//限制开仓次数
BS:=OPENPROFIT<-300*20;//浮亏止损点数
//开仓条件
B1:=(CROSS(C,H30)||CROSS(C,L30))&&DIFF15>DEA15&&DIFF>DEA;//开多条件1
S1:=(CROSS(L30,C)||CROSS(H30,C))&&DIFF15<DEA15&&DIFF<DEA;//开空条件1
B2:=CROSS(DIFF15,DEA15)&&C>H30&&DIFF>DEA&&TIME>100000&&TIME<140000;//开多条件2
S2:=CROSS(DEA15,DIFF15)&&C<L30&&DIFF<DEA&&TIME>100000&&TIME<140000;//开空条件2
//平仓条件
PB1:=CROSS(DEA15,DIFF15)&&DEA<0;//平多条件1
PS1:=CROSS(DIFF15,DEA15)&&DEA>0;//平空条件1
//多开
IF TIME>094500&&TIME<140000&&(B1||B2)&&T THEN
BEGIN BUY(HOLDING=0,1,MARKET);
fuying:=OPENPROFIT;
END
//空开
IF TIME>094500&&TIME<140000&&(S1||S2)&&T THEN
BEGIN BUYSHORT(HOLDING=0,1,MARKET);
fuying:=OPENPROFIT;
END
//浮动止盈
IF OPENPROFIT>fuying then fuying:=OPENPROFIT;
BS1:= OPENPROFIT<=0.6*fuying && fuying>=OPENPROFIT+30*300;//浮盈从30个点以上回撤40%
BS2:= OPENPROFIT<=fuying-18 && fuying>=OPENPROFIT+50*300;//浮盈从50个点以上回撤18个点
//多平
IF TIME>150500||PB1||BS||BS2 THEN
BEGIN SELL(HOLDING>0,1 ,THISCLOSE);
Z:=1;
END
//平空
IF TIME>150500||PS1||BS||BS2 THEN
BEGIN SELLSHORT(HOLDING<0,1,THISCLOSE);
Z:=1;
END
第二种
variable: fuying=0;
variable: Z=0;
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;
//引用MACD
DIFF : =EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
//引用15分钟周的MACD
DIFF15:="BB.DIFF#MIN15";
DEA15:="BB.DEA#MIN15";
T:=TOTALDAYTRADE<=2;//限制开仓次数
BS:=OPENPROFIT<-300*20;//浮亏止损点数
//开仓条件
B1:=(CROSS(C,H30)||CROSS(C,L30))&&DIFF15>DEA15&&DIFF>DEA;//开多条件1
S1:=(CROSS(L30,C)||CROSS(H30,C))&&DIFF15<DEA15&&DIFF<DEA;//开空条件1
B2:=CROSS(DIFF15,DEA15)&&C>H30&&DIFF>DEA&&TIME>100000&&TIME<140000;//开多条件2
S2:=CROSS(DEA15,DIFF15)&&C<L30&&DIFF<DEA&&TIME>100000&&TIME<140000;//开空条件2
//平仓条件
PB1:=CROSS(DEA15,DIFF15)&&DEA<0;//平多条件1
PS1:=CROSS(DIFF15,DEA15)&&DEA>0;//平空条件1
平空:SELLSHORT((TIME>1505||PS1||BS)&&HOLDING<0,1,MARKET);
开多:BUY(TIME<1400&&(B1||B2)&&T&&HOLDING=0,1,MARKET);
平多:SELL((TIME>1505||PB1||BS)&&HOLDING>0,1,MARKET);
开空:BUYSHORT(TIME<1400&&(S1||S2)&&T&&HOLDING=0,1,MARKET);