{===== 九转拐点模块 =====}
周期排序:=CURRBARSCOUNT;
下跌条件:=C<REF(C,4);
下跌连数:=BARSLASTCOUNT(下跌条件);
九转低1:=(下跌连数>9) AND MOD(下跌连数,9)=1;
九转低2:=(下跌连数>9) AND MOD(下跌连数,9)=2;
九转低8:=(下跌连数>9) AND MOD(下跌连数,9)=8;
九转低9:=(下跌连数>9) AND MOD(下跌连数,9)=0;
低位1:=(周期排序=6 AND REFXV(COUNT(下跌条件,6),5)=6) OR (周期排序=7 AND REFXV(COUNT(下跌条件,7),6)=7) OR (周期排序=8 AND REFXV(COUNT(下跌条件,8),7)=8) OR (周期排序>=9 AND REFXV(COUNT(下跌条件,9),8)=9);
DRAWNUMBER(低位1 AND (REF(下跌条件,1)=0 OR 九转低1),L,1),COLORMAGENTA;
低位2:=(周期排序=5 AND REFXV(COUNT(下跌条件,6),4)=6) OR (周期排序=6 AND REFXV(COUNT(下跌条件,7),5)=7) OR (周期排序=7 AND REFXV(COUNT(下跌条件,8),6)=8) OR (周期排序>=8 AND REFXV(COUNT(下跌条件,9),7)=9);
DRAWNUMBER(低位2 AND(REF(下跌条件,2)=0 OR 九转低2),L,2),COLORMAGENTA;
低位8:=(周期排序=1 AND COUNT(下跌条件,8)=8) OR (周期排序>=2 AND REFXV(COUNT(下跌条件,9),1)=9);
DRAWNUMBER(低位8 AND (REF(下跌条件,8)=0 OR 九转低8),L,8),COLORMAGENTA;
低位9:=(周期排序>=1 AND COUNT(下跌条件,9)=9);
DRAWNUMBER(低位9 AND (REF(下跌条件,9)=0 OR 九转低9),L,9),COLORBROWN;
上涨条件:=C>REF(C,4);
上涨连数:=BARSLASTCOUNT(上涨条件);
九转高1:=(上涨连数>9) AND MOD(上涨连数,9)=1;
九转高2:=(上涨连数>9) AND MOD(上涨连数,9)=2;
九转高8:=(上涨连数>9) AND MOD(上涨连数,9)=8;
九转高9:=(上涨连数>9) AND MOD(上涨连数,9)=0;
高位1:=(周期排序=6 AND REFXV(COUNT(上涨条件,6),5)=6) OR (周期排序=7 AND REFXV(COUNT(上涨条件,7),6)=7) OR (周期排序=8 AND REFXV(COUNT(上涨条件,8),7)=8) OR (周期排序>=9 AND REFXV(COUNT(上涨条件,9),8)=9);
DRAWNUMBER(高位1 AND (REF(上涨条件,1)=0 OR 九转高1),H,1),COLORMAGENTA,DRAWABOVE;
高位2:=(周期排序=5 AND REFXV(COUNT(上涨条件,6),4)=6) OR (周期排序=6 AND REFXV(COUNT(上涨条件,7),5)=7) OR (周期排序=7 AND REFXV(COUNT(上涨条件,8),6)=8) OR (周期排序>=8 AND REFXV(COUNT(上涨条件,9),7)=9);
DRAWNUMBER(高位2 AND (REF(上涨条件,2)=0 OR 九转高2),H,2),COLORMAGENTA,DRAWABOVE;
高位8:=(周期排序=1 AND COUNT(上涨条件,8)=8) OR (周期排序>=2 AND REFXV(COUNT(上涨条件,9),1)=9);
DRAWNUMBER(高位8 AND (REF(上涨条件,8)=0 OR 九转高8),H,8),COLORMAGENTA,DRAWABOVE;
高位9:=(周期排序>=1 AND COUNT(上涨条件,9)=9);
DRAWNUMBER(高位9 AND (REF(上涨条件,9)=0 OR 九转高9),H,9),COLORGREEN,DRAWABOVE;
{===== 趋势中枢模块 彻底修复周期判断 =====}
参数A:=10;
参数B:=10;
展示档位:=2;
{直接用二目判断,无额外变量、无重复定义}
周期适配:=IF(PERIOD=11,2,1)/10;
峰值1:=PEAK(1,周期适配*参数A,1);
峰值2:=PEAK(1,周期适配*参数A,2);
峰值位置1:=PEAKBARS(1,周期适配*参数A,1);
峰值位置2:=PEAKBARS(1,周期适配*参数A,2);
谷值1:=TROUGH(2,周期适配*参数B,1);
谷值2:=TROUGH(2,周期适配*参数B,2);
谷值位置1:=TROUGHBARS(2,周期适配*参数B,1);
谷值位置2:=TROUGHBARS(2,周期适配*参数B,2);
中枢基础:=峰值1>谷值1 AND 峰值2>谷值2;
中枢下沿:=MAX(谷值1,谷值2);
中枢上沿:=MIN(峰值1,峰值2);
区间最低:=MIN(谷值1,谷值2);
区间最高:=MAX(峰值1,峰值2);
中枢成型:=FILTER(中枢上沿>中枢下沿,2);
中枢延续:=中枢上沿=REF(中枢上沿,BARSLAST(中枢成型)) OR 中枢下沿=REF(中枢下沿,BARSLAST(中枢成型));
中枢有效:=中枢基础 AND 中枢成型 AND NOT(中枢延续);
区间震荡1:=BETWEEN(中枢下沿,REF(中枢下沿,REF(BARSLAST(中枢成型),1)),REF(中枢上沿,REF(BARSLAST(中枢成型),1)));
区间震荡2:=BETWEEN(中枢上沿,REF(中枢下沿,REF(BARSLAST(中枢成型),1)),REF(中枢上沿,REF(BARSLAST(中枢成型),1)));
趋势转换:=中枢上沿>REF(中枢上沿,REF(BARSLAST(中枢成型),1)) AND 中枢下沿<REF(中枢下沿,REF(BARSLAST(中枢成型),1));
最终中枢:=中枢有效 AND NOT(区间震荡1 OR 区间震荡2 OR 趋势转换);
中枢底线:=IF(最终中枢,中枢下沿,DRAWNULL);
中枢顶线:=IF(最终中枢,中枢上沿,DRAWNULL);
区间高点:=IF(最终中枢,区间最高,DRAWNULL);
区间低点:=IF(最终中枢,区间最低,DRAWNULL);
STICKLINE(最终中枢,区间高点,区间低点,0,-1),COLORMAGENTA;
STICKLINE(最终中枢,中枢底线,中枢顶线,IF(展示档位=1,3,0),1),COLORMAGENTA;
DRAWTEXT(展示档位=2,区间高点,'中枢'),COLORWHITE;
中枢上轨:PLOYLINE(展示档位=2,REF(中枢底线,BARSLAST(最终中枢))),CIRCLEDOT,COLORLIRED;
中枢下轨:PLOYLINE(展示档位=2,REF(中枢顶线,BARSLAST(最终中枢))),CIRCLEDOT,COLORLIGREEN;
趋势上轨:PLOYLINE(展示档位=3,ZIG(1,周期适配*参数A)),COLORLIBLUE;
趋势下轨:PLOYLINE(展示档位=3,ZIG(2,周期适配*参数B)),COLORLIBLUE;
{局部高低点}
低点预选A:=BACKSET(LLV(L,5)<REF(LLV(L,4),1),4);
低点预选B:=BACKSET(低点预选A=0 AND REF(低点预选A,1)=1,2);
低点标记:=IF(低点预选B=1 AND REF(低点预选B,1)=0,-1,0);
高点预选A:=BACKSET(HHV(H,5)>REF(HHV(H,4),1),4);
高点预选B:=BACKSET(高点预选A=0 AND REF(高点预选A,1)=1,2);
高点标记:=IF(高点预选B=1 AND REF(高点预选B,1)=0,1,0);
缺口状态:=IF(L>REF(H,1),1,IF(H<REF(L,1),-1,0));
前高距离:=BARSLAST(高点标记=1);
前低距离:=BARSLAST(低点标记=-1);
低位排序:=LOwrANGE(L);
高位排序:=TOPRANGE(H);
低点保留1:=IF(低点标记=-1 AND REF(前高距离,1)>REF(前低距离,1) AND LLV(L,前高距离+1)<REF(LLV(L,前高距离+1),1),-1,0);
低点保留2:=IF(低点标记=-1 AND REF(前高距离,1)<=REF(前低距离,1) AND (前高距离>=4 OR LLV(缺口状态,前高距离)=-1 OR LLV(L,前低距离+2)<REF(LLV(L,前低距离+1),1)),-1,0);
有效低点:=IF((低点保留1=-1 OR 低点保留2=-1) AND L<REF(H,前高距离+1),-1,0);
预判条件:=IF((前低距离<4 AND HHV(缺口状态,前低距离)!=1) OR REF(有效低点,前低距离)=0,1,0);
高点判断:=IF(高点标记=1 AND REF(前低距离,1)<=REF(前高距离,1) AND 预判条件=1 AND 高位排序>REF(低位排序,前低距离+1) AND 高位排序>REF(低位排序,前低距离) AND 高位排序>REF(高位排序,前高距离),1,0);
高点保留1:=IF(高点标记=1 AND REF(前低距离,1)>REF(前高距离,1) AND HHV(H,前低距离+1)>REF(HHV(H,前低距离+1),1),1,0);
高点保留2:=IF(高点标记=1 AND REF(前低距离,1)<=REF(前高距离,1) AND REF(有效低点,前低距离)=-1 AND (前低距离>=4 OR HHV(缺口状态,前低距离)=1),1,0);
有效高点:=IF((高点保留1=1 OR 高点保留2=1 OR 高点判断=1) AND H>REF(L,前低距离+1),1,0);
循环前高:=BARSLAST(有效高点=1);
循环前低:=BARSLAST(有效低点=-1);
极点综合:=IF(有效高点=1 AND 有效低点=-1 AND H>REF(H,循环前高+2),1,IF(有效高点=1 AND 有效低点=-1 AND L<REF(L,循环前低+2),-1,0));
行情极点:IF(极点综合=-1,L,IF(极点综合=1,H,DRAWNULL)) CIRCLEDOT COLORYELLOW;
DRAWLINE(极点综合=-1,行情极点,极点综合=1,行情极点,0)COLORRED;
DRAWLINE(极点综合=1,行情极点,极点综合=1,行情极点,0)COLORGREEN;
极点间隔:=BARSLAST(Abs(极点综合)!=1);
DRAWTEXT(极点综合=1,行情极点,'卖'),COLORGREEN;
DRAWTEXT(极点综合=-1,行情极点,'买'),COLORRED;
{===== 黄金分割神尺 =====}
统计周期:=120;
尺区间:=BARSLAST(CURRBARSCOUNT=统计周期);
尺高点:=CONST(IF(ISLASTBAR=1,HHV(H,尺区间),0));
尺低点:=CONST(IF(ISLASTBAR=1,LLV(L,尺区间),0));
尺振幅:=尺高点-尺低点;
全高区:IF(CURRBARSCOUNT<=统计周期,尺高点,DRAWNULL),COLORRED,LINETHICK1;
全低区:IF(CURRBARSCOUNT<=统计周期,尺低点,DRAWNULL),COLOR00FF00,LINETHICK1;
中线价位:=IF(CURRBARSCOUNT<=统计周期,尺低点+尺振幅/2,DRAWNULL),COLOR00FFFF,NODRAW;
支撑线:IF(CURRBARSCOUNT<=统计周期/2,尺低点+尺振幅*0.191,DRAWNULL),COLOR00FFFF;
强势线:IF(CURRBARSCOUNT<=统计周期/2,尺低点+尺振幅*0.382,DRAWNULL),COLORFF00FF;
突破线:IF(CURRBARSCOUNT<=统计周期/2,尺低点+尺振幅/2,DRAWNULL),COLOR0000FF;
警示线:IF(CURRBARSCOUNT<=统计周期/2,尺低点+尺振幅*0.618,DRAWNULL),COLOR00FFFF;
压力线:IF(CURRBARSCOUNT<=统计周期/2,尺低点+尺振幅*0.809,DRAWNULL),COLOR00FF00;
{区间文字提示}
DRAWTEXT(CURRBARSCOUNT=50,压力线,'压力'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=10,警示线,'警示'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=10,突破线,'突破'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=10,强势线,'强势'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=10,支撑线,'支撑'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺高点-尺振幅*0.09,'【风险】--高抛避险'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺高点-尺振幅*0.3,'【警示】--逢高减仓'),COLOR0000FF;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺高点-尺振幅*0.45,'【突破】--主力拉升'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺高点-尺振幅*0.6,'【拉升】--强势蓄势'),COLORFFFF80;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺低点+尺振幅/4.8,'【主力】--逢低买入'),COLOR00FFFF;
DRAWTEXT(CURRBARSCOUNT=统计周期/4+5,尺低点+尺振幅/32,'【低吸】--大胆买入'),COLOR00FF00;
{cci变色k线}
DRAWKLINE(H,O,L,C);
STICKLINE(CCI>=200 AND H>=尺高点,O,C,2,0),COLORBLUE;
STICKLINE(CCI<=100 AND L<=尺低点,O,C,2,0),COLORYELLOW;
STICKLINE(CURRBARSCOUNT=统计周期,尺高点,尺低点,0,0),COLORGREEN;
STICKLINE(CURRBARSCOUNT=统计周期/2,尺高点,尺低点,0,0),COLOR408080;
STICKLINE(CURRBARSCOUNT=1,尺高点,尺低点,0,0),COLORGREEN;
STICKLINE(CURRBARSCOUNT<=统计周期/2,支撑线,支撑线,2,0),COLORFF00FF;
STICKLINE(CURRBARSCOUNT<=统计周期/2,强势线,强势线,2,0),COLORFF00FF;
STICKLINE(CURRBARSCOUNT<=统计周期/2,突破线,突破线,2,0),COLORABABAB;
STICKLINE(CURRBARSCOUNT<=统计周期/2,警示线,警示线,2,0),COLOR00FFFF;
STICKLINE(CURRBARSCOUNT<=统计周期/2,压力线,压力线,2,0),COLOR00FFFF;
