1. 基础价格计算
- 变动价位和变动价格:计算最小价格变动单位
- 发哥线:核心均线,由结算价、BBL、SSS2和MIDD四个指标的平均值构成
2. 多空信号系统
- BBLY和BHGE:短期和中期均线组合
- BBL:核心平衡线,作为多空分界线
- 布林带系统:26周期布林带,用于识别超买超卖
3. 支撑阻力系统
- 动态支撑阻力线:基于线性回归计算上下轨道
- 高低点识别:自动标记重要的高点和低点
4. 缠论相关功能
- 笔和笔中枢:缠论基础结构识别
- 顶底分型:通过包含关系处理识别趋势转折点
- 力度分析:判断趋势强度


文华财经指标:
变动价位:MINPRICE,NODRAW,PRECIS1;
变动价格:变动价位*UNIT,NODRAW,PRECIS1;
CQ:=C;
HQ:=H;
LQ:=L;
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;
缠论线开关:=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));
红色线:=(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;
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;