-- 作者:muxia5568
-- 发布时间:2015/5/8 10:17:07
--
谢谢老师指点,请老师帮助我编写一个用于图表程序化交易模型的指标引用部分;
AA;RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1);//RSV的移动平均值 D:=SMA(K,3,1);//K的移动平均值 J:=3*K-2*D;
ZD:BARSLAST(CROSS(K,D))+1<=4; ZK:BARSLAST(CROSSDOWN(K,D))+1<=4;
#IMPORT[MIN,30,AA]AS VAR//引用30分钟跨周期KD金叉,死叉数据 ZD30:=VAR.ZD,NODRAW; ZK30:=VAR.ZK,NODRAW;
#IMPORT[MIN,60,AA]AS VAR2//引用60分钟跨周期KD金叉,死叉数据 ZD60:=VAR.ZD; ZK60:=VAR.ZK;
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1);//RSV的移动平均值 D:=SMA(K,3,1);//K的移动平均值
MID:=MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨 TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差 TOP:MID+2*TMP2;//布林通道上轨 BOTTOM:MID-2*TMP2;//布林通道下轨
MA2:MA(CLOSE,2); MA60:MA(CLOSE,60),LINETHICK2,COLORRED;
谢谢老师。
|
-- 作者:jinzhe
-- 发布时间:2015/5/8 10:24:18
--
被引用公式:
公式1:
AA;RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1);//RSV的移动平均值 D:=SMA(K,3,1);//K的移动平均值 J:=3*K-2*D;
ZD:BARSLAST(CROSS(K,D))+1<=4; ZK:BARSLAST(CROSS(d,k))+1<=4;
|
-- 作者:jinzhe
-- 发布时间:2015/5/8 10:24:33
--
实际操作公式:
ZD30:=stkindi(\'\',\'公式1.zd\',0,4); ZK30:=stkindi(\'\',\'公式1.zk\',0,4);
ZD60:=stkindi(\'\',\'公式1.zd\',0,5); ZK60:=stkindi(\'\',\'公式1.zk\',0,5);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1);//RSV的移动平均值 D:=SMA(K,3,1);//K的移动平均值
MID:=MA(CLOSE,26);//求N个周期的收盘价均线,称为布林通道中轨 TMP2:=STD(CLOSE,26);//求M个周期内的收盘价的标准差 TOP:MID+2*TMP2;//布林通道上轨 BOTTOM:MID-2*TMP2;//布林通道下轨
MA2:MA(CLOSE,2); MA60:MA(CLOSE,60),LINETHICK2,COLORRED;
|
-- 作者:jinzhe
-- 发布时间:2015/5/8 13:17:44
--
公式1:
AA;RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1);//RSV的移动平均值 D:=SMA(K,3,1);//K的移动平均值 J:=3*K-2*D;
c1:cross(k,d);
c2:cross(d,k);
公式1作用同上
|
-- 作者:jinzhe
-- 发布时间:2015/5/8 13:28:52
--
c1:=stkindi(\'\',\'公式1.c2\',0,4);
c2:=stkindi(\'\'.\'公式1.c1\',0,4);
{开空仓条件1;当价格大于zzz并且上穿TOP,从上穿TOP的当根K线算起(包括当根K线)的n根K线内出现30分钟K下穿D,SPK。 开空仓条件2;当价格大于zzz并且上穿TOP,并且之后连续两根以上的K线的收盘价均大于sss,从最低价小于TOP的当根K线算起n跟K线内出现K下穿D,SPK。 }
if c1 and barslast(c>zzz and cross(c,top))<n then begin
sell(1,0,market);
buyshort(holding=0,1,market);
end
if cross(d,k) and barslast(all(close,2)>sss and ref(c>zzz and cross(c,top),2))<n then begin
sell(1,0,market);
buyshort(holding=0,1,market);
end
{开多仓条件1;当价格小于xxx并且下穿BOTTOM,从下穿BOTTOM的当根K线算起(包括当根K线)n根K线内出现30分钟K上D,BPK。 开多仓条件2;当价格小于xxx并且下穿BOTTOM,并且之后连续两根以上的K线的收盘价均小于sss,从最高价大于BOTTOM的当根K线算起n跟K线内出现K上穿D,BPK。}
if c1 and barslast(c<xxx and cross(bottom,c) )<n then begin
sellshort(1,0,market);
buy(holding=0,1,market);
end
if cross(k,d) and barslast(ref(c<xxx and crss(bottom,c),2) and all(c<sss,2))<n then begin
sellshort(1,0,market);
buy(holding=0,1,market);
end
(开多仓后;亏50点止损,当价格大于开仓价80点后设开仓价+30点保本。 开空仓后;亏50点止损,当价格小于开仓价80点后设开仓价-30点保本。)
if holding>0 and enterprice-l>50 then sell(1,0,market);
if holding<0 and h-enterprice>50 then sellshort(1,0,market);
if holding>0 and hhv(h,enterbars+1)-enterprice>80 and l<=enterprice+30 then sell(1,0,market);
if holding<0 and enterprice-llv(l,enterbars+1)>80 and h>enterprice-30 then sellshort(1,0,market);
|