HH2:=VALUEWHEN(HH1>0,HH1); LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IF(CLOSE>HH2,-3,IF(CLOSE
G1:=VALUEWHEN(ISLASTBAR,G); W1:=K2;
W2:=OPEN-CLOSE;
CROSS(W1,0)||(CROSS(W2,0)&&CROSS(W1,0)),BPK; CROSS(0,W1)||(CROSS(W2,0)&&CROSS(0,W1)),SPK; //从上面看,编写交易模型要比编写指标简单得多。
⑶如何合并两个不同的交易模型?
在两个模型方向相同时才开仓,两个模型指令不同时就平仓 参数N: 最小值 0 最大值 100 缺省值 8 源码: 模型A
X:=BARSLAST(HIGH=HHV(HIGH,N));
LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1))));
Y:=BARSLAST(LOW=LLV(LOW,N));
HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1))));
A:=BARSLAST(CLOSE>=HH); B:=BARSLAST(CLOSE<=LL); AB:=IF(A>B,HH,LL); CROSS(AB,CLOSE),SPK; CROSS(CLOSE,AB),BPK;
46
模型B
HH1:=IF(HREF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH1>0,HH1); LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IF(CLOSE>HH2,-3,IF(CLOSE
利用并且(&&)和或者(||)这些逻辑语句,将A、B模型合并为模型C: X:=BARSLAST(HIGH=HHV(HIGH,N));
LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1))));
Y:=BARSLAST(LOW=LLV(LOW,N));
HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1))));
A:=BARSLAST(CLOSE>=HH); B:=BARSLAST(CLOSE<=LL); AB:=IF(A>B,HH,LL);
HH1:=IF(HREF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH1>0,HH1); LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IF(CLOSE>HH2,-3,IF(CLOSE
47
CROSS(CLOSE,AB)||K2=-3,BP; (二)、基础指标编写示范和注意事项 1、学习编写前需要明确注意的几个概念 公式:
泛指指标、模型。没有具体指向性。 指标:
指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。 交易信号:
指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交易信号也是一个技术分析范畴的概念。 交易模型:
指能够发出BK、SP等交易指令但是不绘出图线的公式,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个程序化交易范畴的概念。 交易指令:
指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。
2、如何进行基础指标的编写 (1)、均线指标 关键函数 MA
48
MA(X,N) 求X在N周期内的简单移动平均。 计算方法:MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均
①五周期均线 MA5:MA(CLOSE,5);
②均线组合
MA5:MA(CLOSE,5),COLORWHITE; MA10:MA(CLOSE,10),COLORYELLOW;
49
MA30:MA(CLOSE,30),COLORGREEN; MA60:MA(CLOSE,60),COLORMAGENTA;
③K线+均线组合
MA5:MA(CLOSE,5),COLORWHITE; MA10:MA(CLOSE,10),COLORYELLOW; MA30:MA(CLOSE,30),COLORGREEN; MA60:MA(CLOSE,60),COLORMAGENTA; TMP:=OPEN-CLOSE;
DRAWLINE(TMP>0.00001,HIGH,TMP>0.00001,OPEN,COLORCYAN); DRAWLINE(TMP>0.00001,LOW,TMP>0.00001,CLOSE,COLORCYAN); DRAWLINE(TMP<-0.00001,HIGH,TMP<-0.00001,CLOSE,COLORRED); DRAWLINE(TMP<-0.00001,LOW,TMP<-0.00001,OPEN,COLORRED);
DRAWLINE(ABS(TMP)<0.00001,LOW,ABS(TMP)<0.00001,OPEN,COLORWHITE);
DRAWLINE(ABS(TMP)<0.00001,HIGH,ABS(TMP)<0.00001,OPEN,COLORWHIT
50