【文华财经】缠论风格多空指标源码 + 顶底变色 K 线
↑
点击箭头上方的蓝色名称,关注获取更多优质指标源码!可咨询指标公式编写、修改、源码还源!
声明:指标源码仅供个人学习研究之用,不具备投资指导作用,依此操作风险自担!
指标介绍
一款带缠论风格的趋势看盘主图指标!核心的 “发哥线” 会随多空趋势变色,一眼就能辨方向;指标自动算出关键支撑 / 压力位,直接标上具体数字,不用手动算;顶底位置会画红 / 绿大圆圈提示,K 线也会按顶底趋势变颜色,还有 SAR 抛物转向辅助判断,新手不用懂复杂的缠论知识,看线的颜色、数字和圆圈就能找买卖点,适配股票 / 期货全周期!
指标截图


指标源码
指标仅用于【文华财经】WH6软件,新建主图类型指标源码:
变动价位:MINPRICE,NODRAW,PRECIS1;
变动价格:变动价位*UNIT,NODRAW,PRECIS1;
CQ:=IF(YEAR<=2021 AND MONTH<=9,C,-10000);
HQ:=IF(YEAR<=2021 AND MONTH<=9,H,-10000);
LQ:=IF(YEAR<=2021 AND MONTH<=9,L,-10000);
BBLY:=(EMA(CQ,2)+EMA(CQ,4)+EMA(CQ,8)+EMA(CQ,16))/4,COLORWHITE,LINETHICK1;
BHGE:=(MA(CQ,3)+MA(CQ,6)+MA(CQ,12)+MA(CQ,24))/4,POINTDOT,LINETHICK4,COLORMAGENTA;
BBL:=EMA((BBLY+BHGE)/2,1);
DIFF1:=EMA(CQ,21) – EMA(CQ,34);
DEA1:=EMA(DIFF1,13);
AMOV:=VOL*BBL;
BBLJ:=EMA(BBL,3);
N1B:=IF(BARSCOUNT(SETTLE)>=24,24,BARSCOUNT(SETTLE));
GWSSSC:=SUM(AMOV,N1B)/SUM(VOL,N1B);
N2B:=IF(BARSLAST(MINUTE<>REF(MINUTE,13))+13>0,BARSLAST(MINUTE<>REF(MINUTE,13))+13,BARPOS),NODRAW;
SSS2:=SUM(AVPRICE*V,N2B)/SUM(V,N2B);
EM:=EMA(BBL,20);//21
UP:=EMA(EM,8);//13
DOWN:=EMA(EM,17);
MIDD:=(UP+DOWN)/2;
发哥线:=(SETTLE+BBL+SSS2+MIDD)/4,RGB(143,95,173),COLORYELLOW,DASH;
HR:=HHV(发哥线,3);
LRW:=LLV(发哥线,3);
笔:=1;
笔中枢:=1;
MA26:=MA(发哥线,26);
标准差:=STD(发哥线,26);
上轨26:=MA26+2*标准差;
下轨26:=MA26-2*标准差;
TTW61:=CROSS(BBLJ,下轨26)&&BACKSET(ISLASTBAR,SUMBARS(CROSS(BBLJ,下轨26),1)),NODRAW;
DRAWSL(TTW61,LLV(LQ,3),0,200,0,RGB(233,112,82)),DOT,COLORRED;
TTWS61:=CROSS(上轨26,BBLJ)&&BACKSET(ISLASTBAR,SUMBARS(CROSS(上轨26,BBLJ),1)),NODRAW;
DRAWSL(TTWS61,HHV(HQ,3),0,200,0,RGB(95,141,188)),DOT,RGB(0,240,0);
DRAWNUMBER(TTWS61,HHV(HQ,3),HHV(HQ,3),2,RGB(0,240,0)),ALIGN2,VALIGN1,FONTSIZE20;
DRAWNUMBER(TTW61,LLV(LQ,3),LLV(LQ,3),2,RGB(236,23,130)),ALIGN2,VALIGN1,FONTSIZE20;
NBOLL:=BARSLAST(CROSSDOWN(LRW,下轨26))+1;
M:=BARSLAST(CROSS(HR,上轨26))+1;
LLBOLL:=IF(LRW<下轨26,LRW,100000000);
HHBOLL:=IF(HR>上轨26,HR,0);
LX:=BACKSET(M=1&&REF(EXIST(NBOLL=1,M),1),REF(LLVBARS(LLBOLL,M),1)+2);
HX:=BACKSET(NBOLL=1&&REF(EXIST(M=1,NBOLL),1),REF(HHVBARS(HHBOLL,NBOLL),1)+2);
BBB:=BACKSET(ISLASTBAR,SUMBARS(CROSS(LX=1,0.5)||CROSS(HX=1,0.5),4));
DRAWICON(笔中枢*BBB&&CROSS(HX=1,0.5)&&COUNT(CROSS(HX=1,0.5),BARSLASTCOUNT(BBB))=2,HQ,’ICO142′),ALIGN2,FONTSIZE18,RGB(128,128,255);//倒数第1个高点标注文字;
DRAWICON(笔中枢*BBB&&CROSS(LX=1,0.5)&&COUNT(CROSS(LX=1,0.5),BARSLASTCOUNT(BBB))=2,LQ,’ICO1′),ALIGN2,VALIGN0,FONTSIZE18,RGB(128,128,255);//倒数第1个低点标注文字;
CURRBARSCOUNT:=DATACOUNT-BARPOS+1;
N:=33;
UR:=6;
LR:=6;
TC1:=IF(HR=HHV(HR,8*UR),HQ,NULL);
TC2:=REFX1(BARSLAST(TC1=HQ),10000)+1;
UPPER:=REFX1(IF(TC2=1,HQ,REF(HQ,TC2-1)),10000);
BC1:=IF(LRW=LLV(LRW,8*LR),LQ,NULL);
BC2:=REFX1(BARSLAST(BC1=LQ),10000)+1;
LOWER:=REFX1(IF(BC2=1,LQ,REF(LQ,BC2-1)),10000);
LP:=CURRBARSCOUNT<=BC2 AND LQ=LOWER;
HP:=CURRBARSCOUNT<=TC2 AND HQ=UPPER;
NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));
LR1:=FORCAST(C,NOD+1);
NP:=IF(CURRBARSCOUNT<=MAX(BC2,TC2),REFX1(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1)),10000),NULL),POINTDOT,COLORFFFFFF;//上横线;
LR2:=SLOPE(C,NOD+1);
LR3:=REFX1(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)),10000);
FP:=NP-LR3*(NOD),POINTDOT,COLORFFFFFF;//下横线;
EQU:=(NP+FP)/2,POINTDOT,COLORFFFFFF;//中横线;
AD:=ABS(NP-FP);
DBL:=BARSLAST(NOT(ISNULL(BC1)) )+1;
DBH:=BARSLAST(NOT(ISNULL(TC1)) )+1;
BSP:=IF(BC2>TC2,DBL,DBH)-1;
LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);
AT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND H>LRL,H,LRL);
AT2:=HHV(AT1-LRL,MAX(BC2,TC2));
AT3:=REFX1(BARSLAST(AT1-LRL=AT2),10000);
AT4:=REFX1(IF(AT3=0,HQ,REF(HQ,AT3)),10000);
AT5:=REFX1(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)),10000);
ATL:=LRL+AT5;
UT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND L<LRL,L,LRL);
UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=REFX1(BARSLAST(LRL-UT1=UT2),10000);
UT4:=REFX1(IF(UT3=0,HQ,REF(HQ,UT3)),10000);
UT5:=REFX1(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)),10000);
UTL:=LRL-UT5;
RH:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,ATL,REFX1(REF(ATL,MIN(BC2,TC2)-11),10000));
RL:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,UTL,REFX1(REF(UTL,MIN(BC2,TC2)-11),10000));
IF(NP>FP,IF(ATL<=RH,ATL,NULL),IF(ATL>=RL,ATL,NULL)),DASH,COLORYELLOW;//上压力线;
IF(NP>FP,IF(UTL<=RH,UTL,NULL),IF(UTL>=RL,UTL,NULL)),DASH,COLORFFFFFF;//下支撑线;
HXG:=HHV(HQ,3);
LXG:=LLV(LQ,3);
H1R:=IFELSE(HXG<REF(HXG,1)&&HXG<REF(HXG,2)&&HXG<REF(HXG,4)&&LXG<REF(LXG,1)&&LXG<REF(LXG,3)&&LXG<REF(LXG,5)&&OPEN>CLOSE&&(HHV(OPEN,0)-CLOSE)>0,REF(HXG,4),0);
L1R:=IFELSE(LXG>REF(LXG,1)&&LXG>REF(LXG,3)&&LXG>REF(LXG,5)&&HXG>REF(HXG,1)&&HXG>REF(HXG,2)&&HXG>REF(HXG,4)&&OPEN<CLOSE&&(CLOSE-LLV(OPEN,0))>0,REF(LXG,4),0);
H2R:=VALUEWHEN(H1R>0,H1R);
L2R:=VALUEWHEN(L1R>0,L1R);
K1:=IFELSE(CLOSE>H2R,-3,IFELSE(CLOSE<L2R,1,0));
K2:=VALUEWHEN(K1<>0,K1);
TMP:=K2;
LC := REF(BBL,1);//前一周期收盘价
R:=SMA(MAX(BBL-LC,0),7,1)/SMA(ABS(BBL-LC),7,1)*100;//当根K线收盘价与前一周期收盘价做差,在该差值与0之间取最大值,做N1周期移动平均。收盘价与前一周期收盘价做差值,取该差值的N1周期移动平均值,两平均值之间做比值。
反向转开关:=1;//反向转;
A:=EMA(BBL,60)+ABS(EMA(BBL,60)-REF(EMA(BBL,60),1));
B:=EMA(BBL,60)+EMA(BBL,60)-REF(EMA(BBL,60),1);
分水岭:=(IF(EMA(BBL,60)<B,B,EMA(BBL,60)))*反向转开关*1,COLORFF00FF;
操作线:=(分水岭-(EMA(BBL,3)-分水岭))*反向转开关*1,COLOR00FFFF,LINETHICK1, NOTEXT;
DRAWCOLORLINE(BARSLAST(CROSS(R,60))<BARSLAST(CROSSDOWN(R,60))&&TMP<0,发哥线,RGB(255,0,255),COLORGREEN),LINETHICK6;
DRAWCOLORLINE(发哥线>操作线,发哥线,RGB(255,0,255),COLORGREEN),LINETHICK2;
缠论线开关:=1;//缠中枢;
展F:=12;
MA8:=1;
HH展BDD:=(HR>HV(HR,展F))*缠论线开关*MA8;
NH展BDD:=(BARSLAST(HH展BDD)+1)*缠论线开关*MA8;
LL展BDD:=(LRW<LV(LRW,展F))*缠论线开关*MA8;
NL展BDD:=(BARSLAST(LL展BDD)+1)*缠论线开关*MA8;
AH展BDD:=(BACKSET(COUNT(LL展BDD,NH展BDD)&&LL展BDD,NH展BDD))*缠论线开关*MA8;
AL展BDD:=(BACKSET(COUNT(HH展BDD,NL展BDD)&&HH展BDD,NL展BDD))*缠论线开关*MA8;
DRAWICON(CROSS(AL展BDD=1,0.5),LQ,’ICO79′),VALIGN1;//下面绿点
DRAWICON(CROSS(AH展BDD=1,0.5) ,HQ,’ICO80′),VALIGN1;
DRAWTEXT(CROSS(AL展BDD=1,0.5),LQ,’○’),COLORRED,FONTSIZE55,VALIGN1;//下面绿点
DRAWTEXT(CROSS(AH展BDD=1,0.5) ,HQ,’○’),RGB(19,240,74),FONTSIZE55,VALIGN1;//上面红点
顶周期:=NEWHBARS(HR,1);
底周期:=NEWLBARS(LRW,1);
上内:=LLVBARS(发哥线,顶周期);
上外:=LLVBARS(发哥线,顶周期);
下内:=HHVBARS(发哥线,底周期);
下外:=HHVBARS(发哥线,底周期);
上力度:=HHV(发哥线,上内+1)>LLV(发哥线,上内+1);
下力度:=HHV(发哥线,下内+1)>LLV(发哥线,下内+1);
上包含:=COUNT(发哥线>=REF(发哥线,1),上外)>2 AND COUNT(发哥线>=REF(发哥线,1),上内)>2;
下包含:=COUNT(发哥线<=REF(发哥线,1),下外)>2 AND COUNT(发哥线<=REF(发哥线,1),下内)>2;
顶0:=上力度 AND 上包含 AND 上外>3;
底0:=下力度 AND 下包含 AND 下外>3;
顶:=顶0 AND 发哥线=HHV(发哥线,BARSLAST(底0));
底:=底0 AND 发哥线=LLV(发哥线,BARSLAST(顶0));
DRAWCOLORKLINE(BACKSET(顶,BARSLAST(底)+1)>0.5 &&(ISUP||ISEQUAL),RGB(128,0,64),1);
DRAWCOLORKLINE(BACKSET(顶,BARSLAST(底)+1)>0.5&&ISDOWN,RGB(128,0,64),0);
DRAWCOLORKLINE(BACKSET(底,BARSLAST(顶)+1)>0.5&&(ISUP||ISEQUAL),RGB(0,128,128),1);
DRAWCOLORKLINE(BACKSET(底,BARSLAST(顶)+1)>0.5&&ISDOWN,RGB(0,128,128),0);
红色线:=(REFX1(MA(REFX1(MA(H,70),70/2),70),70/2)-REFX1(MA(REFX1(MA(L,70),70/2),70),70/2))*7+REFX1(MA(REFX1(MA(H,70),70/2),70),70/2),LINETHICK2,COLORGREEN;
CURRBARSCOUNTP:=DATACOUNT – BARPOS;
DRAWTEXT(YEAR<=2021 AND MONTH>8 AND CURRBARSCOUNTP=70,红色线,’指标’),COLORRED,FONTSIZE34;
SARLINE:=SAR(4,1/100,50/100),CIRCLEDOT;//N个周期的抛物转向,步长为STEP1,极限值为MVALUE1.
LLM:=IF(SARLINE>0,VALUEWHEN(SARLINE<0,ABS(SARLINE)),NULL);
MA26W:=MA(BBL,26);
XXM:=SARLINE>0 && CQ>LLM && CROSSDOWN(C,MA26W) &&EXIST(CROSS(C,LLM),BARSLASTCOUNT(SARLINE>0));
区域1:=CQ>MA26W&& NOT(EXIST(XXM,BARSLASTCOUNT(SARLINE>0))) &&C>LLM;
HHM:=IF(SARLINE<0,VALUEWHEN(SARLINE>0,ABS(SARLINE)),NULL);
XX2M:=SARLINE<0 && CQ<HHM && CROSS(C,MA26W) &&EXIST(CROSSDOWN(C,HHM),BARSLASTCOUNT(SARLINE<0));
区域2:=CQ<MA26W&& NOT(EXIST(XX2M,BARSLASTCOUNT(SARLINE<0))) &&C<HHM;
DRAWICON(区域2,HQ,’ICO5′),VALIGN2;
DRAWICON(区域1,LQ,’ICO4′),VALIGN0;
关注福利:想要其他类型指标,留言告诉我,优先安排!
夜雨聆风
