要用stkindi函数调用日线周期的最高最低价,要再建一个公式1,公式1的内容:
input:n(1,1,100,1);
HH:=HHV(h,N);//N日HIGH的最高价
HC:=HHV(c,N);//N日CLOSE的最高价
LC:=LLV(c,N);//N日CLOSE的最低价
LL:=LLV(l,N);//N日LOW的最低价
公式Dual Thrust:
//下面红色部分是Dual Thrust里改变的部分
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:=stkindi('','公式1.hh',0,6,-1);//N日HIGH的最高价
hc:=stkindi('','公式1.hc',0,6,-1);//N日CLOSE的最高价
lc:=stkindi('','公式1.lc',0,6,-1);//N日CLOSE的最低价
ll:=stkindi('','公式1.ll',0,6,-1);//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,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
改成下面这样的:
公式1:
hh:hhv(ref(h,1),7);
hc:hhv(ref(c,1),7);
lc:llv(ref(c,1),7);
ll:llv(ref(l,1),7);
公式2:
hh:stkindi('','公式1.hh',0,6);
hc:stkindi('','公式1.hc',0,6);
lc:stkindi('','公式1.lc',0,6);
ll:stkindi('','公式1.ll',0,6);
公式1用来引用,不做实际操作,公式2是实际操作的公式