ARTICLE · 1244548
多空趋势线指标:牛熊分界看买卖(源码)
一条线,浓缩了三个窗口
判断一只股票在什么位置,最直接的办法是问:现在的价格,在最近一段区间里排第几。
这套指标把这个问法用了三遍。
13 日区间算一次,9 日区间算一次,100 日区间再算一次。三个窗口长短差着十倍,得到的读数含义完全不同。
短窗口告诉你最近几天强不强,长窗口告诉你半年来站在哪。
把摆动放大,是为了看清拐点
位置读数本身只在 0 到 100 之间爬,看着太平。
所以指标把它减去 18 再乘 1.55,得到一条围绕零轴上下摆动的曲线;再做 3 日平滑,得到它的信号线。
同一手法用在大周期的位置读数上:100 日的位置先做 10 日平滑,再过一遍指数平滑,然后乘 2.6 放大。
放大之后,拐点比原来清楚得多。
用平方拉开波动
还有一路更绕的算法。
先取 5 日均线,把它平方,再加上均线本身。这个动作会把大的波动放大得更多——均线数值越高,平方后拉开的差距越夸张。
再用它算出 64 日区间里的位置,减掉常数、乘 1.5,得到一条摆动线。快、中、慢三条线都由它派生。
最后把这些读数按权重拼一次,七个周期的回落读数也拼一次。合起来就是主线的骨架。
趋势走廊与牛熊分界
主线之外,图上还画了两组参考线。
一组是 13 日均线,加一根自适应的上下沿。上沿是均线加上当天的均线变化量,下沿是均线加上最近两天的均线差。价格在这两条沿之间跑,说明走得稳;突破上下沿,说明节奏变了。
另一组是 120 日半年线,以及由它派生的空头线——半年线下面再撑开一条,用 3 日均线当尺子。
最后一条是 60 日均线,用圆点画,当牛熊分界。
交叉才动手
多空两条线是同一套数据的两种状态。
股价走高的时候,多头线在上;走低的时候,空头线压下来。两条线交叉的位置,图上标一个小图标。
那就是动手的位置。
一句话
位置判断不怕慢,怕的是一直用同一个窗口看。
温馨提示
1、指标:www.logic88.cn
2、本指标仅作为知识分享,不构成任何建议。


指标源码
{多空趋势线:把几路位置与波动读数合成一条主线}
{13 日区间里收盘价的位置,这是最基础的一段}
POS13:=(CLOSE-LLV(LOW,13))/(HHV(HIGH,13)-LLV(LOW,13))*100;
{同样算法换成 9 日区间,参数更短、更灵敏}
POS9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
{把它减 18 再乘 1.55,拉出第一条摆动读数}
POS9_OSC:=(SMA(POS9,3,1)-18)*1.55;
{再做 3 日平滑,得到它的信号线}
POS9_SIG:=SMA(POS9_OSC,3,1);
{100 日区间里的位置,看的是大级别}
POS100:=(CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100))*100;
POS100_MA:=SMA(POS100,10,1);
POS100_EMA:=(EMA(SMA(POS100_MA,8,1),34)-25)*2.6;
MA5_SQ_C:=POW(MA(CLOSE,5),2)+MA(CLOSE,5);
MA5_SQ_L:=POW(MA(LOW,5),2)+MA(LOW,5);
MA5_SQ_H:=POW(MA(HIGH,5),2)+MA(HIGH,5);
{用 5 日均线的平方把波动放大,再取 64 日区间的位置}
RANGE64_POS:=((MA5_SQ_C-LLV(MA5_SQ_L,64))/(HHV(MA5_SQ_H,64)-LLV(MA5_SQ_L,64))*150+65-10)/2;
RANGE_OSC:=SMA(RANGE64_POS,3,1)*1.5-46;
RANGE_SIG:=SMA(RANGE_OSC,3,1);
RANGE_J:=3*RANGE_OSC-2*RANGE_SIG;
POS_AVG3:=(POS13+POS9+POS100)/3;
OSC_MIX_A:=((POS9_OSC+POS9_OSC+POS100_MA+RANGE_OSC)/4-15)*1.67;
OSC_MIX_B:=((POS9_SIG+POS9_SIG+POS100_EMA+RANGE_SIG)/4-15)*1.67;
OSC_MIX_ALL:=((POS13+POS100*2+POS_AVG3+OSC_MIX_A+OSC_MIX_B+RANGE64_POS+RANGE_OSC+RANGE_SIG+RANGE_J)/10-15)*1.67;
{下面七个都是离区间高点还有多远的回落读数,周期逐级放大}
PULL5:=(HHV(HIGH,5)-CLOSE)/(HHV(HIGH,5)-LLV(LOW,5))*(-1 )+0.9;
PULL10:=(HHV(HIGH,10)-CLOSE)/(HHV(HIGH,10)-LLV(LOW,10))*(-1)+0.92;
PULL15:=(HHV(HIGH,15)-CLOSE)/(HHV(HIGH,15)-LLV(LOW,15))*(-1)+0.93;
PULL55:=(HHV(HIGH,55)-CLOSE)/(HHV(HIGH,55)-LLV(LOW,55))*(-1)+0.94;
PULL89:=(HHV(HIGH,89)-CLOSE)/(HHV(HIGH,89)-LLV(LOW,89))*(-1)+0.95;
PULL120:=(HHV(HIGH,120)-CLOSE)/(HHV(HIGH,120)-LLV(LOW,120))*(-1)+0.91;
PULL180:=(HHV(HIGH,180)-CLOSE)/(HHV(HIGH,180)-LLV(LOW,180))*(-1)+0.96;
PULL_MIX:=((PULL5*8+PULL10*8+PULL15*8+PULL55+PULL89+PULL120+PULL180)/28-0.1)*185;
PULL_MIX_MA:=SMA(PULL_MIX,3,1);
PULL_OSC:=(SMA(PULL_MIX_MA,8,1)-8)*1.18;
POS60:=(CLOSE-LLV(LOW,60.13547854))/(HHV(HIGH,60.13547854)-LLV(LOW,60))*80;
POS60_MA7:=SMA(POS60,7,1);
POS60_MA5:=SMA(POS60_MA7,5,1);
LOW3_LE_LOW60:=LLV(LOW,3)<=LLV(LOW,60);
YANG_BIG:=C>O AND (C/O>1.03 OR C>1.03*REF(C,1));
{13 日均线加一根自适应的上下沿,构成趋势走廊}
MA13_UP:=MA(CLOSE,13)+ABS(MA(CLOSE,13)-REF(MA(CLOSE,13),1));
MA13_DN:=MA(CLOSE,13)+MA(CLOSE,13)-REF(MA(CLOSE,13),1),COLOR00FF00,LINETHICK1;
MA13_LOW:=IF(MA(CLOSE,13)<MA13_DN,MA13_DN,MA(CLOSE,13)),COLOR00FF00,LINETHICK1;
TREND_RAW:=MA13_LOW-(MA(CLOSE,3)-MA13_LOW);
HALF_YEAR:=MA(CLOSE,120),COLORFFFFFF;
BEAR_LINE:HALF_YEAR-(MA(CLOSE,3)-HALF_YEAR),COLORFFFFFF,LINETHICK2;
BULL_LINE:IF(MA13_LOW=MA13_DN,MA13_LOW,MA13_LOW),COLORRED,LINETHICK2;
TREND_UP:=(TREND_RAW>=REF(TREND_RAW,1),TREND_RAW),COLORMAGENTA,POINTDOT,LINETHICK1;
TREND_DN:=(TREND_RAW<REF(TREND_RAW,1),TREND_RAW),COLORBLUE{这一行原本标黄,最终改用蓝色},POINTDOT,LINETHICK1;
{60 日均线当牛熊分界,穿过去就是另一段行情}
BULL_BEAR:MA(C,60),CIRCLEDOT,COLORFFF000;
DRAWICON(CROSS(BULL_LINE,BEAR_LINE),LOW,9);
源码,原文一键复制















































































