这个是在《金字塔程序化交易指南(高级篇)》里看到的,本人只是加了些注释,希望对新人有所帮助。
//如果最新值比满足条件的“高值”高,说明在上涨,红色K线
//如果最新值比满足条件的“低值”低,说明在下跌,绿色K线
//若最新值界于“高值”和“低值”之间,则与前一周期的颜色相同
HH1:=IF(H<REF(H,2) AND REF(H,1)<REF(H,2),REF(H,2),0);
LL1:=IF(L>REF(L,2) AND REF(L,1)>REF(L,2),REF(L,2),0);
HH2:=VALUEWHEN(HH1>0,HH1); //寻找“高值”---比+1周期和+2周期都高
LL2:=VALUEWHEN(LL1>0,LL1); //寻找“低值”---比+1周期和+2周期都低
K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0));
{最新值 与“高值”比:
若最新值比“高值”高,返回-3;
否则
最新值 与“低值”比:
若最新值比“低值”低,返回1;
若最新值界于“高值”和“低值”之间---即中间值,返回0;}
K2:=VALUEWHEN(K1<>0,K1);//寻找第一个比“高值”高 或者 比“低值”低的
G:=IF(K2=1,HH2,LL2); //若找到的第一个 比“低值”低,返回当时的“高值”
//若找到的第一个 比“高值”高,返回当时的“低值”
G1:=VALUEWHEN(ISLASTBAR,G); //是否是最后一个周期
W1:=K2;
//上升红色,下降绿色
STICKLINE(W1>0,OPEN,CLOSE,8,1),COLORCYAN;
STICKLINE(W1<=0,OPEN,CLOSE,8,1),COLORRED;