{后台要求:
1. 品种为 RM,M,RB,AG,P,TA 且主力合约自动换月,
2. 收盘前2分钟自动全部平仓,
3. 收盘前15分钟不开新仓,
4. 交易模式为TICK 固定间隔,连续交易,多空双向交易
5. 报单后3分钟没有成交撤单
}
//*************** 1. 基础条件 ********************
K开仓基价X:=LOW; D开仓基价X:=HIGH;
DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26); DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); MACD卖出条件:=REF(MACD,2)<=REF(MACD,1); MACD买入条件:=REF(MACD,2)>REF(MACD,1);
MA3:=EMA(C,3); MA20:=EMA(C,20); MA5:=EMA(C,5); MA30:=EMA(C,30); MA10:=EMA(C,10); MA40:=EMA(C,40);
短线买点1:=CROSS(MA3,MA5); 短线卖点1:=CROSS(MA5,MA3); 短线买点2:=CROSS(MA3,MA10); 短线卖点2:=CROSS(MA10,MA3); 短线买点3:=CROSS(MA3,MA20); 短线卖点3:=CROSS(MA20,MA3); 短线买点4:=CROSS(MA3,MA30); 短线卖点4:=CROSS(MA30,MA3); 短线买点5:=CROSS(MA3,MA40); 短线卖点5:=CROSS(MA40,MA3);
短线卖点:= REF(短线卖点1,1) or ref(短线卖点2,1) or ref(短线卖点3,1) or ref(短线卖点4,1) or ref(短线卖点5,1) ; 短线买点:= REF(短线买点1,1) or ref(短线买点2,1) or ref(短线买点3,1) or ref(短线买点4,1) or ref(短线买点5,1);
//*************** 2. 多头策略 ********************
{BS基本买开执行A} 短线买开仓价A:=D开仓基价X+1*mindiff; 短线买止损价A:=REF(L,2); 短线买止盈价A:=D开仓基价X+4*mindiff;
BS买开执行A:=短线买点 and MACD买入条件; BS多止损执行A:=REF(c,1)<短线买止损价A;
{BS基本买开执行B} 短线买开仓价B:=D开仓基价X; 短线买止损价B:=REF(L,2)-1*mindiff; 短线买止盈价B:=D开仓基价X+7*mindiff;
BS买开执行B:=短线买点 and MACD买入条件; BS多止损执行B:=REF(c,1)<短线买止损价B;
//*************** 3. 空头策略 ******************** {BS基本卖开执行A} 短线卖开仓价A:=K开仓基价X-1*mindiff; 短线卖止损价A:=REF(H,1)+4*mindiff; 短线卖止盈价A:=K开仓基价X-7*mindiff;
BS卖开执行A:=短线卖点 and MACD卖出条件 ; BS空止损执行A:=REF(c,1)>短线卖止损价A;
{BS基本卖开执行B} 短线卖开仓价B:=K开仓基价X-0*mindiff; 短线卖止损价B:=REF(H,1)+2*mindiff; 短线卖止盈价B:=K开仓基价X-9*mindiff;
BS卖开执行B:=短线卖点 and MACD卖出条件; BS空止损执行B:=REF(c,1)>短线卖止损价B;
//*************** 4. 交易执行 ********************
//****持仓管理*****
VARIABLE:B_01:=0,B_OPN_01:=0,B_TKP_01:=0,B_STP_01:=0,B_STP_BRK_01:=0,B_IDX_01:=0, B_02:=0,B_OPN_02:=0,B_TKP_02:=0,B_STP_02:=0,B_STP_BRK_02:=0,B_IDX_02:=0, S_01:=0,S_OPN_01:=0,S_TKP_01:=0,S_STP_01:=0,S_STP_BRK_01:=0,S_IDX_01:=0, S_02:=0,S_OPN_02:=0,S_TKP_02:=0,S_STP_02:=0,S_STP_BRK_02:=0,S_IDX_02:=0; //*************** 多头 ******************** //****平仓*****
//------------------多单: //@多单:止盈
IF B_01=1 AND CLOSE>=B_TKP_01 THEN BEGIN DA盈:SELL(1,1,LIMITR,CLOSE); B_01:=0; END
IF B_02=1 AND CLOSE>=B_TKP_02 THEN BEGIN DB盈:SELL(1,1,LIMITR,CLOSE); B_02:=0; END
//@多单:价格LIMITR止损 IF B_01=1 and BS多止损执行A THEN BEGIN DA损:SELL(1,1,LIMITR,close); B_01:=0; END
IF B_02=1 and BS多止损执行B THEN BEGIN DB损:SELL(1,1,LIMITR,close); B_02:=0; END
//****开仓*****
//@多单:开仓
IF BS买开执行A AND B_01=0 THEN BEGIN DA:BUY(1,1,LIMITR,短线买开仓价A); //执行买开 B_01:=1; //状态 表示1手多单已经是持仓状态了 B_OPN_01:=短线买开仓价A; //开仓 B_TKP_01:=短线买止盈价A; //止盈 B_STP_01:=短线买止损价A; //价格止损 B_IDX_01:=BARPOS; //开仓K线 记录哪一个开仓K线 END
IF BS买开执行B AND B_02=0 THEN BEGIN DB:BUY(1,1,LIMITR,短线买开仓价B); B_02:=1; B_OPN_02:=短线买开仓价B; B_TKP_02:=短线买止盈价B; B_STP_02:=短线买止损价B; B_IDX_02:=BARPOS; END
//*************** 空头 ********************
//****平仓*****
//------------------空单: //@空单:止盈
IF S_01=1 AND CLOSE<=S_TKP_01 THEN BEGIN KA盈:SELLSHORT(1,1,LIMITR,CLOSE); S_01:=0; END
IF S_02=1 AND CLOSE<=S_TKP_02 THEN BEGIN KB盈:SELLSHORT(1,1,LIMITR,CLOSE); S_02:=0; END
//@空单:LIMITR价格止损 R_C1:=REF(C,1);
IF S_01=1 AND R_C1>S_STP_01 and BS空止损执行A THEN BEGIN KA损:SELLSHORT(1,1,LIMITR,OPEN); S_01:=0; END
IF S_02=1 AND R_C1>S_STP_02 and BS空止损执行B THEN BEGIN KB损:SELLSHORT(1,1,LIMITR,OPEN); S_02:=0; END
//****开仓*****
//@空单:开仓 IF BS卖开执行A AND S_01=0 THEN BEGIN KA:BUYSHORT(BS卖开执行A,1,LIMITR,短线卖开仓价A); S_01:=1; S_OPN_01:=短线卖开仓价A; S_TKP_01:=短线卖止盈价A; S_STP_01:=短线卖止损价A; S_IDX_01:=BARPOS; END
IF BS卖开执行B AND S_02=0 THEN BEGIN KB:BUYSHORT(BS卖开执行B,1,LIMITR,短线卖开仓价B); S_02:=1; S_OPN_02:=短线卖开仓价B; S_TKP_02:=短线卖止盈价B; S_STP_02:=短线卖止损价B; S_IDX_02:=BARPOS; END
|