ARTICLE · 1030355
均线动能主图,首次突破(源码)
主图,五条均线打底。指标逻辑核心三件:线变色、两条买点提示、两个星号。K 线的颜色由四条均线的合力变化率决定,转正涂红、转弱涂蓝;转弱但动能回升的时候,它改涂绿。收盘价上穿 6 日推算的买进价,K 线描白;换成 18 日均线算的加码价,就描黄。黄色粗线是趋势主线,站上去变红、跌破变绿。星号标的是突破和低位两类信号。趋势没走出来时,颜色一天能翻好几次,别盯单根看。

指标源码
{QS 均线动能主图:五条均线打底,叠加变色 K 线、买进与加码提示、两条趋势线以及两组星号信号}
MA3:MA(C,3),COLORWHITE;
MA5:MA(C,5),COLORGREEN;
MA10:MA(C,10),COLORRED;
MA20:MA(C,20),COLORBLUE;
MA30:MA(C,30),COLORYELLOW;
{均线合力:把 5/10/20/30 四条 EMA 取均值,再算它 15 个周期内的变化率}
QS_E3:=EMA(C,3);
QS_E5:=EMA(C,5);
QS_E10:=EMA(C,10);
QS_E20:=EMA(C,20);
QS_E30:=EMA(C,30);
QS_EMABLEND:=(QS_E5+QS_E10+QS_E20+QS_E30)/4;
QS_ROC:=(QS_EMABLEND-REF(QS_EMABLEND,15))/REF(QS_EMABLEND,15)*100;
QS_ROC2:=(QS_EMABLEND-REF(QS_EMABLEND,15))/REF(QS_EMABLEND, 15)*100;
QS_ROCEMA:=EMA(QS_ROC,8);
{变色 K 线:变化率为负画蓝、为正画红;为负但动能线转强时改画绿}
STICKLINE(QS_ROC<1*REF(QS_ROC,1),H,L,0,0),COLORBLUE;
STICKLINE(QS_ROC<1*REF(QS_ROC,1),O,C,3, 0),COLORBLUE;
STICKLINE(QS_ROC>1*REF(QS_ROC,1),H,L,0,0),COLORRED;
STICKLINE(QS_ROC>1*REF(QS_ROC,1),O,C,3, 0),COLORRED;
STICKLINE(QS_ROC<1*REF(QS_ROC,1) AND QS_ROCEMA>1*REF(QS_ROCEMA,1),H,L,0,0),COLORGREEN;
STICKLINE(QS_ROC<1*REF(QS_ROC,1) AND QS_ROCEMA>1*REF(QS_ROCEMA,1),O,C,3, 0),COLORGREEN;
{买进提示:收盘价上穿 6 日均线推算的买进价且买进价抬高,K 线描白}
QS_BUYPX:=((C-REF(MA(C,6),1))/6+MA(C,6))*1.004;
QS_BUYSIG:=CROSS(C,QS_BUYPX) AND QS_BUYPX>REF(QS_BUYPX,1);
STICKLINE(QS_BUYSIG,H,L,0,1),COLORWHITE,LINETHICK2;
STICKLINE(QS_BUYSIG,O,C,3,0),COLORWHITE,LINETHICK2;
{加码提示:换用 18 日均线推算,条件一致,K 线描黄}
QS_ADDPX:=((C-REF(MA(C,18),1))/18+MA(C,18))*1.004;
QS_ADDSIG:=CROSS(C,QS_ADDPX) AND QS_ADDPX>REF(QS_ADDPX,1);
STICKLINE(QS_ADDSIG,H,L,0,1),COLORYELLOW,LINETHICK2;
STICKLINE(QS_ADDSIG,O,C,3,0),COLORYELLOW,LINETHICK2;
{趋势主线:收盘价做三重递进平滑,再配一条 3 日均线与 13 日上轨}
QS_C1:=MA(C,1);
QS_TRIPLE:=SMA(SMA(SMA(QS_C1,2,1),2,1),2,1);
QS_TRIPLEMA:=MA(QS_TRIPLE,3);
停损下限:IF(LLV(MA(QS_TRIPLE,8),3)<QS_TRIPLE,LLV(MA(QS_TRIPLE,8),3),QS_TRIPLE);
IF(QS_TRIPLE>QS_TRIPLEMA,QS_TRIPLE,DRAWNULL),COLORRED,LINETHICK4;
IF(QS_TRIPLE<QS_TRIPLEMA,QS_TRIPLE,DRAWNULL),COLORGREEN,LINETHICK4;
QS_HI13:HHV(MA(QS_TRIPLE,1),13),COLORYELLOW;
{方向计数:加权价站上 7 日均线与其跌破 7 日均线,各自数持续了几个周期}
QS_TP4A:=(2*CLOSE+HIGH+LOW)/4;
QS_TP4AMA:=MA(QS_TP4A,7);
QS_TP4ADN:=QS_TP4AMA-MA(QS_TP4A,7/2)<0;
QS_TP4AUP:=QS_TP4AMA-MA(QS_TP4A,7/2)>0;
QS_DNCNT:=BARSLAST(QS_TP4ADN);
QS_UPCNTN:=0-BARSLAST(QS_TP4AUP);
QS_DIRSEL:=IF(QS_TP4ADN<=0,QS_DNCNT,QS_UPCNTN);
STICKLINE(QS_HI13>QS_TRIPLE AND QS_TRIPLE>QS_TRIPLEMA,QS_HI13,QS_TRIPLE,0,0),COLORBLUE;
STICKLINE(QS_HI13>QS_TRIPLEMA AND QS_TRIPLE<QS_TRIPLEMA,QS_HI13,QS_TRIPLEMA,0,0),COLORBLUE;
{动能线:加权价的 13 日与 34 日 EMA 之差,再取 5 日 EMA 做信号线}
QS_TP4B:=(CLOSE*2+HIGH+LOW)/4;
QS_DIF:=EMA(QS_TP4B,13)-EMA(QS_TP4B,34);
QS_DEA:=EMA(QS_DIF,5);
{长周期参照:55 日 EMA 与 75 日均线,后者再平滑两次}
QS_EMA55:=EMA(CLOSE,55);
QS_MA75:=MA(CLOSE,75);
QS_MA75E:=EMA(QS_MA75,3);
QS_MA75E2:=EMA(QS_MA75E,3);
{转折价:高低均值的中期均线在 0 轴上下穿越,取最近一次转折点做参考}
QS_HL5:=(HIGH + LOW) / 5;
QS_HL5DIF:=(MA(QS_HL5,4)) - (MA(QS_HL5,34));
QS_XUP:=CROSS(QS_HL5DIF,0);
QS_XDN:=CROSS(0,QS_HL5DIF);
QS_NUP:=BARSLAST(QS_XUP);
QS_NDN:=BARSLAST(QS_XDN);
QS_XUP1:=REF(QS_XUP,1);
QS_XDN1:=REF(QS_XDN,1);
QS_NUP1:=BARSLAST(QS_XUP1);
QS_NDN1:=BARSLAST(QS_XDN1);
QS_PIVOT:=IF((QS_NUP1 < QS_NDN1),(REF((HHV(HIGH,2)),QS_NUP1)),(REF((LLV(LOW,2)),QS_NDN1)));
QS_BRKU:=(((REF(CLOSE,1)) <= (REF(QS_PIVOT,1))) AND (CLOSE > QS_PIVOT)) AND (QS_NUP < QS_NDN);
QS_BRKD:=(((REF(CLOSE,1)) >= (REF(QS_PIVOT,1))) AND (CLOSE < QS_PIVOT)) AND (QS_NDN < QS_NUP);
QS_FRSTU:=QS_BRKU AND ((COUNT(QS_BRKU,QS_NUP)) = 1);
QS_FRSTD:=QS_BRKD AND ((COUNT(QS_BRKD,QS_NDN)) = 1);
QS_SIGU:=QS_FRSTU AND ((REF(BARSLAST(QS_FRSTD),1)) < (REF(BARSLAST(QS_FRSTU),1)));
QS_SIGD:=QS_FRSTD AND ((REF(BARSLAST(QS_FRSTD),1)) > (REF(BARSLAST(QS_FRSTU),1)));
{向上信号成立时,在趋势参考线下方标一个星}
DRAWTEXT(QS_SIGU,QS_TRIPLEMA*0.99,'☆'),COLORYELLOW;
{低位信号:价格偏离 13 日均价较多且落在布林通道下沿,标一个星}
QS_AVGAMT:=AMOUNT/(VOL);
QS_AVGAMTMA:=MA(QS_AVGAMT,13);
QS_AMTDEV:=(C-QS_AVGAMTMA)/QS_AVGAMTMA*100;
QS_BOLDMD := MA(CLOSE,22);
QS_BOLUP:= QS_BOLDMD + 2*STD(C,22);
QS_BOLDN:= QS_BOLDMD - 2*STD(C,22);
QS_BOLPOS:=(C-QS_BOLDN)/(QS_BOLUP-QS_BOLDN);
QS_BOLPOSF:=FORCAST(QS_BOLPOS,3);
QS_LOWREB:=(REF(QS_AMTDEV,1)<-15 AND REF(QS_BOLPOS,1)<0 AND QS_AMTDEV>REF(QS_AMTDEV,1));
DRAWTEXT(QS_LOWREB>0,LOW*0.99,'☆'),COLORDD00DD;