-- 请教如何对这个模型进行修改?
以下是一个区间突破的日内模型:每日开盘后只要有效突破区间上限即开多单(有效突破区间下限即开空单),并持仓到收盘平仓,每日只开仓一次。
我现在想对其进行修改,思路如下:
1、一天只做一个方向,不允许既开多又开空;
2、开仓条件不变,平仓条件改为“开多仓后,价格反向触及区间上限则平多仓”,“开空仓后,价格反向触及区间下限则平空仓”,“如果开仓后,价格没有反向触及区间上限或下限则一直持有到收盘平仓”;
3、放弃每日只开仓一次的限制,允许多次开仓,只要符合开仓条件就开仓。
//中间变量
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
开多条件:=C>上轨 AND HOLDING=0;
开空条件:=C<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKETr);
收盘平空:SELLSHORT(T2,手数,MARKETr);