指标逻辑概述
1. 基础设置
- 类型过滤:通过
PPP:=STKTYPE
判断股票类型 - 日期控制:
STT
变量控制指标生效日期 - 均线参考:170日简单移动平均线作为长期趋势参考
2. 高低点识别机制
- HH1/LL1:识别连续两日高低点的转折点
- HH2/LL2:记录有效的高低点数值
- 加权高低点计算:采用不同周期(1,2,4,8,13,20,40日)的高低价进行加权计算,增强信号的可靠性
3. 多空状态判断
- K1/K2:通过价格与关键位的关系判断多空状态
K2=1
:多头状态(收盘价低于L2)K2=-3
:空头状态(收盘价高于H2)
- 关键位G:动态跟踪当前的支撑阻力位
4. 图形显示功能
- K线绘制:标准K线显示
- 趋势线:在多空状态连续时绘制相应颜色的趋势线
- 支撑阻力线:在关键位绘制水平线
- 文字图标提示:在趋势转换时显示”多”/”空”文字和图标
5. 交易信号
- 突破信号:价格突破动态计算的阻力位(HH3)或支撑位(LL3)时产生交易信号
- 信号图标:原代码中包含买入卖出图标(已注释)


文华财以指标源码:
PPP:=STKTYPE;//
AD:=IF(PPP=7,1,1),NODRAW;
STT:IF(DATE>250215,1,1),NODRAW;//
MA3:=MA(C,170);
HH1:=IFELSE(H<REF(H,1) AND REF(H,1)<REF(H,2),REF(H,2),0);
LL1:=IFELSE(L>REF(L,1) AND REF(L,1)>REF(L,2),REF(L,2),0);
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
HH:=HHV(HIGH,1)/10+HHV(HIGH,2)/10+HHV(HIGH,2)/10+HHV(HIGH,4)/10+HHV(HIGH,4)/10+HHV(HIGH,8)/10+HHV(HIGH,8)/10+HHV(HIGH,13)/10+HHV(HIGH,40)/10+HHV(HIGH,20)/10;
LL:=LLV(LOW,1)/10+LLV(LOW,2)/10+LLV(LOW,2)/10+LLV(LOW,4)/10+LLV(LOW,4)/10+LLV(LOW,8)/10+LLV(LOW,8)/10+LLV(LOW,13)/10+LLV(LOW,40)/10+LLV(LOW,20)/10;
H1:=IFELSE(HH<REF(HH,1) AND LL<REF(LL,1) AND REF(OPEN,1)>CLOSE AND OPEN>CLOSE AND (HHV(OPEN,0)-CLOSE)>0,REF(HH,2),0);
L1:=IFELSE(LL>REF(LL,1) AND HH>REF(HH,1) AND REF(OPEN,1)<CLOSE AND OPEN<CLOSE AND (CLOSE-LLV(OPEN,0))>0,REF(LL,2),0);
X:=DATE;
X0:=H1*STT*AD,LINETHICK2;
X00:=L1;
XXX0:=O*STT*AD,LINETHICK2;
XXX00:=C;
XXX000:=H;
XXX0000:=L;
H2:=VALUEWHEN(X0>0,X0)*STT*AD,LINETHICK2;
L2:=VALUEWHEN(X00>0,X00)*STT*AD,LINETHICK2;
K1:=IFELSE(CLOSE>H2,-3,IFELSE(CLOSE<L2,1,0));
K2:=VALUEWHEN(K1<>0,K1);
G:=IFELSE(K2=1,H2,L2);
G1:=VALUEWHEN(BARSTATUS=2,G);
DRAWNUMBER(L>0,G1,G1,0,COLORCYAN);
DRAWNUMBER(LL>0,G1,G1,0,COLORWHITE),ALIGN0,FONTSIZE20,VALIGN0;
X000:=K2*STT*AD,LINETHICK2;
TMP:=K2*STT*AD,LINETHICK2;
W1:=X000*STT*AD,LINETHICK2;
X0000:=OPEN-CLOSE*STT*AD,LINETHICK2;
W2:=X0000*STT*AD,LINETHICK2;
HT:=IFELSE(OPEN>CLOSE,OPEN,CLOSE)*STT*AD,LINETHICK2;
LT:=IFELSE(OPEN<CLOSE,OPEN,CLOSE)*STT*AD,LINETHICK2;
DRAWKLINE1(H,O,L,C);
DRAWLINE(TMP=1 AND REF(TMP,1)=1,G,TMP=1 AND REF(TMP,1)=1,REF(G,1),COLORCYAN);
DRAWLINE(TMP=-3 AND REF(TMP,1)=-3,G,TMP=-3 AND REF(TMP,1)=-3,REF(G,1),COLORRED);
DRAWSL(K2=1,G,0,1,0,COLORCYAN);
DRAWSL(K2=-3,G,0,1,0,COLORRED);
DRAWTEXT(CROSS(TMP,0),HH,'空'),COLORGREEN,FONTSIZE20;
DRAWTEXT(CROSS(0,TMP),LL,'多'),FONTSIZE20,VALIGN0;
DRAWICON(CROSS(TMP,0),HH,5),VALIGN0;
DRAWICON(CROSS(0,TMP),LL,4),VALIGN2;
N3:=BARSLAST(CROSS(W1>0,0.5))*STT*AD,LINETHICK2;
N4:=BARSLAST(CROSS(W1<=0,0.5))*STT*AD,LINETHICK2;
HH3:=IF(W1<=0,REF(HV(H,N4),N3),NULL),COLORYELLOW,DOT;
LL3:=IF(W1>0,REF(LV(L,N3),N4),NULL),COLORGREEN,DOT;
B:=CROSSUP(C,HH3) OR REF(ISNULL(HH3),1) AND C>HH3;
S:=CROSSDOWN(C,LL3) OR REF(ISNULL(LL3),1) AND C<LL3;
//DRAWICON(B=1,L, 'ICO145');
//DRAWICON(S=1,H, 'ICO146');