‹ 返回42319
🔧 核心通用·带A股选股过滤(核心可用 · 把'去ST/选板块/CODELIKE'那行删掉,美港马加都能跑)
周期:中线用途:只管进单(找买点/选股)(纯多·只做多)
📊 把公式 42319 实时算进主散博弈(纯技术函数;选股/筹码特殊函数会标注不支持)
🧩 这个指标拆开看 = 哪些"积木"组合的
① 定方向(趋势)均线类 MA/EMA — 一段时间的平均价,铺出趋势中枢、看多空排列
MACD — 快慢均线之差,测趋势动能、金叉死叉
② 验量能(量价)成交量/额 VOL — 量在价先——放量证实突破、缩量过滤假信号
④ 触发(信号扳机)CROSS 交叉 — 两线金叉/死叉当买卖扳机
突破/计数/过滤 — 突破前高、信号计时与去重
搭条件的零件HHV/LLV/REF 等 — 取区间最高最低、引用前N根——搭条件的零件
图上标注买卖点画线/标注 — 在图上画柱、标买卖点、上色提示(只是显示,不是判断逻辑)
⚠️ A股专属(港股/美股/马股/加密都没有)去ST/风险股 — 剔除A股ST风险股
组合思路:用均线/MACD 定方向,再用量能验证真假,再用金叉/突破当买卖扳机。把几件事叠在一起同时成立,才算一个'信号'——叠得越多看着越细,但也越容易过度拟合。 ⚠️ 这条含 A股专属逻辑(涨停板/龙虎榜/代码板块)——只有大陆A股有这制度,港股、美股、马股、加密统统没有,这部分搬不过去。
指标公式
N9:=120;
KP:=BARSLAST(CURRBARSCOUNT=N9);
GDY:=CONST(IF(ISLASTBAR=1,HHV(H,KP),0));
DDS:=CONST(IF(ISLASTBAR=1,LLV(L,KP),0));
KJ:=GDY-DDS;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,GDY-KJ/12,' ����������--���ױ���'),COLOR555555;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,GDY-KJ/3.5,' ����ʾ����--�����'),COLOR555555;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,GDY-KJ/2.23,' ��ͻ������--��������'),COLOR555555;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,GDY-KJ/1.82,' ����������--ǿ������'),COLOR555555;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,DDS+KJ/3.5,' �������й졿--�������'),COLOR555555;
DRAWTEXT(CURRBARSCOUNT=N9/2-58,DDS+KJ/10,' ����������--������'),COLOR555555;
AQ1:=REF(V,1);AQ2:=DVOL;AQ3:=AQ2/AQ1;
LNX:=AQ3-REF(AQ3,1);
E1:=REF(C,1);E2:=DCLOSE;E3:=(E2-E1)/E1*100;
QMX:=E3-REF(E3,1);
XGG:=CROSS(LNX,500) AND CROSS(QMX,10);
DRAWTEXT(XGG=1,L*0.97,'��'),COLORCBCBC0;
VAR113:=HHV(HIGH,60);
VAR114:=LLV(LOW,30);
VAR115:=(CLOSE-MA(CLOSE,32))/MA(CLOSE,32)*100;
VAR116:=(VAR113+VAR114+VAR115)/3;
VAR117:=EMA(VAR116,5);
K01:=EMA(VAR117,5)*2, COLORFF00FF;
D01:=EMA(K01,5), COLORWHITE;
J01:=K01*3-D01*2, COLORYELLOW;
ENTERLONG:=CROSS(K01,D01);
EXITLONG:=CROSS(D01,K01);
B01:=(DRAWICON((ZIG(3,5)>REF(ZIG(3,5),1)) AND (REF(ZIG(3,5),1)<=REF(ZIG(3,5),2))
AND (REF(ZIG(3,5),2)<=REF(ZIG(3,5),3)),L*0.98,1))*D01*2/3;
B02:=IF(TROUGHBARS(3,15,1)=1 AND HIGH>LOW+0.01,20,0);
����:=(B01 AND B02);
DRAWICON(����,L*0.98,38);
����:=ABS((CROSS("MACD.DIF","MACD.DEA")
&&"MACD.DEA"<=-0.07)*"MACD.DIF")*1.09,COLORLIMAGENTA,LINETHICK2;
DRAWTEXT(ABS(����)>0,L*0.996,'��'),COLOR000099;
VAR2X:=TROUGHBARS(3,15,1)<10;
VAR3X:=PEAKBARS(3,15,1)<10;
VAR4X:=IF(VAR2X=1,50,0);
�ײ�:=IF(VAR4X=50,10,0);
��ͷ����:=0;
����:=IF(�ײ�=10 AND REF(�ײ�,1)=10 AND REF(�ײ�,2)=0,50,0);
DRAWTEXT(����=50,L*0.996,'��'),COLORCBCBC0;
PL5:=IF(PERIOD>=7,ZIG(3,1),IF(PERIOD=3,ZIG(1,2),ZIG(1,2)));
PL10:=IF(PERIOD>=7,ZIG(3,30),IF(PERIOD=3,ZIG(1,10),ZIG(1,10)));
EN1:=PL5>REF(PL5,1) AND REF(PL5,1)<=REF(PL5,2) AND REF(PL5,2)<=REF(PL5,3);
EN2:=PL10>REF(PL10,1) AND REF(PL10,1)<=REF(PL10,2) AND REF(PL10,2)<=REF(PL10,3);
��ǿ2:=BARSLAST(PL10<REF(PL10,1));
ZTJZ5:=IF(PL10>REF(PL10,1),COUNT(EN1,��ǿ2),0);
DRAWTEXT(EN2 AND ZTJZ5=1,L*0.99,'��'),COLORYELLOW;
TC1S:=IF(H=HHV(H,48),H,DRAWNULL);
TC2S:=CONST(BARSLAST(TC1S=H))+1;
UPPERS:=CONST(IF(TC2S=1,H,REF(H,TC2S-1)));
BC1S:=IF(L=LLV(L,48),L,DRAWNULL);
BC2S:=CONST(BARSLAST(BC1S=L))+1;
LOWERS:=CONST(IF(BC2S=1,L,REF(L,BC2S-1)));
LPS:=CURRBARSCOUNT<=BC2S AND L=LOWERS;
HPS:=CURRBARSCOUNT<=TC2S AND H=UPPERS;
AB1S:=EMA(((2*C+H+L)/4-LLV(LOW,30))/
(HHV(HIGH,30)-LLV(LOW,30))*100,8);
BA1S:=EMA(AB1S,5);
�Ϲ�:=REFDATE(REF(HHV(MAX(C,O),96),5),DATE);
�¹�:=REFDATE(REF(LLV(MIN(C,O),96),5),DATE);
�й�:=((�Ϲ�)+(�¹�))/2;
YXHX:=DATE>=REF(DATE,BARSLAST(IF(BC2S>TC2S,LPS,HPS)));
����:IF(AB1S>0 AND AB1S-BA1S<=0 AND YXHX,�Ϲ�,�Ϲ�),DOTLINE,COLOR666666;
����:IF(AB1S>0 AND AB1S-BA1S<=0 AND YXHX,�й�,�й�),DOTLINE,COLOR666666;
����:IF(AB1S>0 AND AB1S-BA1S<=0 AND YXHX,�¹�,�¹�),DOTLINE,COLOR666666;
���C:=TROUGHBARS(L,֮����,1);
�ͼ�:=REF(L,BARSLAST(���C=0));
�ͼ�_:DRAWLINE(���C=0,L,ISLASTBAR,�ͼ�,0),NODRAW;
FU:=C-�ͼ�_;
����:=FU/�ͼ�_*100,NODRAW;
DRAWTEXT(ISLASTBAR,�ͼ�_,' --------�ͼ�_'),COLOR996600;
_3%:DRAWLINE(���C=0,L*1.03,ISLASTBAR,�ͼ�*1.03,0),COLOR004500,DOTLINE,NODRAW;
_5%:DRAWLINE(���C=0,L*1.05,ISLASTBAR,�ͼ�*1.05,0),COLOR004500,DOTLINE,NODRAW;
_8%:DRAWLINE(���C=0,L*1.08,ISLASTBAR,�ͼ�*1.08,0),COLOR004500,DOTLINE,NODRAW;
_13%:DRAWLINE(���C=0,L*1.13,ISLASTBAR,�ͼ�*1.13,0),COLOR004500,DOTLINE,NODRAW;
_18%:DRAWLINE(���C=0,L*1.18,ISLASTBAR,�ͼ�*1.18,0),COLOR666666,DOTLINE,NODRAW;
_25%:DRAWLINE(���C=0,L*1.25,ISLASTBAR,�ͼ�*1.25,0),COLOR666666,DOTLINE,NODRAW;
_30%:DRAWLINE(���C=0,L*1.30,ISLASTBAR,�ͼ�*1.30,0),COLOR666666,DOTLINE,NODRAW;
_35%:DRAWLINE(���C=0,L*1.35,ISLASTBAR,�ͼ�*1.35,0),COLOR666666,DOTLINE,NODRAW;
_40%:DRAWLINE(���C=0,L*1.40,ISLASTBAR,�ͼ�*1.40,0),COLOR666666,DOTLINE,NODRAW;
_50%:DRAWLINE(���C=0,L*1.50,ISLASTBAR,�ͼ�*1.50,0),COLOR666666,DOTLINE,NODRAW;
_55%:DRAWLINE(���C=0,L*1.55,ISLASTBAR,�ͼ�*1.55,0),COLOR666666,DOTLINE,NODRAW;
DRAWTEXT(ISLASTBAR,_3%,' --------3��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_5%,' --------5��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_8%,' --------8��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_13%,' --------13��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_18%,' --------18��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_25%,' --------25��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_30%,' --------30��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_35%,' --------35��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_40%,' --------40��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_50%,' --------50��'),COLOR996600;
DRAWTEXT(ISLASTBAR,_55%,' --------55��'),COLOR996600;
GD:=CONST(FINDHIGH(H,0,�ߵ�*10,1));
DD:=CONST(FINDLOW(L,0,�͵�*10,1));
GT:=CONST(BARSLAST(GD=H))+1;
DT:=CONST(BARSLAST(DD=L))+1;
SH:=CONST(IF(GT=1,H,REF(H,GT-1)));
SL:=CONST(IF(DT=1,L,REF(L,DT-1)));
CC:=IF(DT>GT,DT,GT);
CD:=INTPART(CC-(DT+GT)/2);
CG:=IF(�ߵ�>CD,CD/2,�ߵ�);
ZG:=IF(CURRBARSCOUNT<=CD,SH,DRAWNULL);
DRAWBAND(ZG,RGB(0,0,0),ZG,RGB(0,0,0)),DOTLINE,COLOR004500;
ZD:=IF(CURRBARSCOUNT<=CD,SL,DRAWNULL);
DRAWBAND(ZD,RGB(0,0,0),ZD,RGB(0,0,0)),DOTLINE,COLOR004500;
X191:=IF(CURRBARSCOUNT<=CD,SH-(SH-SL)*0.191,DRAWNULL);
DRAWBAND(X191,RGB(0,0,0),X191,RGB(0,0,0)),DOTLINE,COLOR004500;
X382:=IF(CURRBARSCOUNT<=CD,SH-(SH-SL)*0.382,DRAWNULL);
DRAWBAND(X382,RGB(0,0,0),X382,RGB(0,0,0)),DOTLINE,COLOR004500;
X500:=IF(CURRBARSCOUNT<=CD,SH-(SH-SL)*0.500,DRAWNULL);
DRAWBAND(X500,RGB(0,0,0),X500,RGB(0,0,0)),DOTLINE,COLOR004500;
X618:=IF(CURRBARSCOUNT<=CD,SH-(SH-SL)*0.618,DRAWNULL);
DRAWBAND(X618,RGB(0,0,0),X618,RGB(0,0,0)),DOTLINE,COLOR004500;
X809:=IF(CURRBARSCOUNT<=CD,SH-(SH-SL)*0.809,DRAWNULL);
DRAWBAND(X809,RGB(0,0,0),X809,RGB(0,0,0)),DOTLINE,COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(ZD)*1.003,STRCAT('���: ',CON2STR(ZD,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(X191)*0.996,STRCAT('80.9% ',CON2STR(X191,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(X382)*0.996,STRCAT('61.8% ',CON2STR(X382,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(X500)*0.996,STRCAT('50% ',CON2STR(X500,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(X618)*0.996,STRCAT('38.2% ',CON2STR(X618,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(X809)*0.996,STRCAT('19.1% ',CON2STR(X809,2))),COLOR004500;
DRAWTEXT(CURRBARSCOUNT=CG,(ZG)*0.996,STRCAT('100% ',CON2STR(ZG,2))),COLOR004500;
CURR:=CURRBARSCOUNT;
TCH:=CONST(FINDHIGH(H,0,HDAY*10,1));
GTT:=CONST(BARSLAST(TCH=H))+1;
SX��H:=CONST(IF(GTT=1,H,REF(H,GTT-1)));
BCL:=CONST(FINDLOW(L,0,LDAY*10,1));
DTT:=CONST(BARSLAST(BCL=L))+1;
SX��L:=CONST(IF(DTT=1,L,REF(L,DTT-1)));
�ǵ�:=BARSSINCE(BACKSET(ISLASTBAR,BARSLAST(L=SX��L)+1));
����:=BARSSINCE(BACKSET(ISLASTBAR,BARSLAST(H=SX��H)+1));
���:=IF(����=1,����,IF(����=2,�ǵ�,IF(����=3,�ǵ�,����)));
Lб��:=�½Ƕ�/IF(C<300,1000,10);
���:=IF(����=1,����,IF(����=2,�ǵ�,IF(����=3,����,�ǵ�)));
Hб��:=�ϽǶ�/IF(C<300,1000,10);
IM68:=((SX��H-SX��L)/8-(SX��H-SX��L)/8);
GH��X:=SX��H+(SX��H-SX��L)/8; DL��X:=SX��L-(SX��H-SX��L)/8;
GTHT:=IF(DTT>GTT,DTT,GTT); R:=ABS(GTT-DTT);
DRAWBAND(IF(CURR<=GTHT,SX��H,DRAWNULL),RGB(0,120,120),SX��H,RGB(8,168,168));
DRAWBAND(IF(CURR<=GTHT,SX��L,DRAWNULL),RGB(0,120,120),SX��L,RGB(0,160,160));
STICKLINE(CURRBARSCOUNT=GTT,SX��H,SX��L,0,0),COLOR556600;
STICKLINE(CURRBARSCOUNT=DTT,SX��H,SX��L,0,0),COLOR666666;
STICKLINE(CURRBARSCOUNT=1,SX��H,SX��L,0,0),COLOR556600;
DRAWKLINE(H,O,L,C);
����:=SX��H; ����:=SX��L;
K:=(����-����)/(IF(����>=�ǵ�,����,�ǵ�)-IF(����>=�ǵ�,�ǵ�,����));
���:=IF(����+CONST(L�*4.00)*���>=����,����+CONST(L�*4.00)*���,DRAWNULL);
���0:=IF(����+CONST(L�*2.00)*���>=����,����+CONST(L�*2.00)*���,DRAWNULL);
���1:=IF(����+CONST(L�*1.5)*���>=����,����+CONST(L�*1.5)*���,DRAWNULL);
���2:=IF(����+CONST(L�*1.00)*���>=����,����+CONST(L�*1.000)*���,DRAWNULL);
���3:=IF(����+CONST(L�*0.70)*���>=����,����+CONST(L�*0.70)*���,DRAWNULL);
���4:=IF(����+CONST(L�*0.50)*���>=����,����+CONST(L�*0.50)*���,DRAWNULL);
���5:=IF(����+CONST(L�*0.365)*���>=����,����+CONST(L�*0.365)*���,DRAWNULL);
���6:=IF(����+CONST(L�*0.250)*���>=����,����+CONST(L�*0.250)*���,DRAWNULL);
���7:=IF(����+CONST(L�*0.165)*���>=����,����+CONST(L�*0.165)*���,DRAWNULL);
���8:=IF(����+CONST(L�*0.123)*���>=����,����+CONST(L�*0.123)*���,DRAWNULL);
���9:=IF(����+CONST(L�*0.06)*���>=����,����+CONST(L�*0.06)*���,DRAWNULL);
��9:IF(���9<=����*1.05,���9,DRAWNULL),COLORAA00AA,DOTLINE;
��8:IF(���8<=����*1.05,���8,DRAWNULL),COLORAA00AA,DOTLINE;
��7:IF(���7<=����*1.05,���7,DRAWNULL),COLORAA00AA,DOTLINE;
��6:IF(���6<=����*1.05,���6,DRAWNULL),COLORAA00AA,DOTLINE;
��5:IF(���5<=����*1.05,���5,DRAWNULL),COLORAA00AA,DOTLINE;
��4:IF(���4<=����*1.05,���4,DRAWNULL),COLOR00DDDD,DOTLINE;
��3:IF(���3<=����*1.05,���3,DRAWNULL),COLORAA00AA,DOTLINE;
��2:IF(���2<=����*1.05,���2,DRAWNULL),COLORAA00AA,DOTLINE;
��1:IF(���1<=����*1.05,���1,DRAWNULL),COLORAA00AA,DOTLINE;
��0:IF(���0<=����*1.05,���0,DRAWNULL),COLORAA00AA,DOTLINE;
��:IF(���