‹ 返回3040
🔧 核心通用·带A股选股过滤(核心可用 · 把'去ST/选板块/CODELIKE'那行删掉,美港马加都能跑)
周期:长线用途:进出都有(买卖点都标)🔻 有卖出信号→可反手做空(在加密/期货等可做空市场)
📊 把公式 3040 实时算进主散博弈(纯技术函数;选股/筹码特殊函数会标注不支持)
🧩 这个指标拆开看 = 哪些"积木"组合的
① 定方向(趋势)均线类 MA/EMA — 一段时间的平均价,铺出趋势中枢、看多空排列
MACD — 快慢均线之差,测趋势动能、金叉死叉
DMA — 两条不同周期均线之差,测中线方向
② 验量能(量价)成交量/额 VOL — 量在价先——放量证实突破、缩量过滤假信号
③ 抓买卖点(择时摆动)KDJ 随机 — 收盘在近期高低区间的位置,抓超买超卖+金叉
RSI — 涨跌力量强弱,超买超卖与背离
波动通道BOLL/标准差 — 均线±标准差通道,测波动与超买超卖
④ 触发(信号扳机)CROSS 交叉 — 两线金叉/死叉当买卖扳机
突破/计数/过滤 — 突破前高、信号计时与去重
搭条件的零件HHV/LLV/REF 等 — 取区间最高最低、引用前N根——搭条件的零件
图上标注买卖点画线/标注 — 在图上画柱、标买卖点、上色提示(只是显示,不是判断逻辑)
⚠️ A股专属(港股/美股/马股/加密都没有)代码/板块/题材 — 按代码段、行业、概念、龙头筛选(A股特有)
去ST/风险股 — 剔除A股ST风险股
组合思路:用均线/MACD 定方向,再用通道测波动边界,再用量能验证真假,再用摆动指标抓超买超卖,再用金叉/突破当买卖扳机。把几件事叠在一起同时成立,才算一个'信号'——叠得越多看着越细,但也越容易过度拟合。 ⚠️ 这条含 A股专属逻辑(涨停板/龙虎榜/代码板块)——只有大陆A股有这制度,港股、美股、马股、加密统统没有,这部分搬不过去。
指标公式
FZʵʱ����
DRAWGBK(CLOSE,COLORRGB(50,200,50),COLORRGB(100,50,50),1);
"FZKD���.��֧#day" ,COLORRED;
"FZKD���.����#day" ,COLORgreen;
MC:=REF(CLOSE,1);
����λ:=IF(CLOSE>200,CLOSE*1.01,CLOSE*1.07);
����λ��:=IF(CLOSE<10,CLOSE*1.05,����λ);
ֹ��λ:=IF(CLOSE>200,CLOSE*0.99,CLOSE*0.93);
ֹ��λ��:=IF(CLOSE<10,CLOSE*0.95,ֹ��λ);
����λA:=IF(MC>200,MC*1.01,MC*1.07);
����λ2:=IF(MC<10,MC*1.05,����λA);
ֹ��λB:=IF(MC>200,MC*0.99,MC*0.93);
ֹ��λ2:=IF(MC<10,MC*0.95,ֹ��λB);
DRAWTEXTEX(BARSTATUS=1,0,0,0,STKLABEL+' '+STKNAME+' '),ColorFFFF80;
DRAWTEXTEX(BARSTATUS=2 and v>ref(v,1) and ma(v,5)>ref(ma(v,5),1),0,0,15,'���ճɽ�����������,���м�����������'+' '),Color8285FF,;
DRAWTEXTEX(BARSTATUS=2 and v<ref(v,1) and ma(v,5)>ref(ma(v,5),1),0,0,15,'���ճɽ���С�����գ����зŴ���'+' '),Color8285FF;
DRAWTEXTEX(BARSTATUS=2 and v>ref(v,1)and ma(v,5)<ref(ma(v,5),1),0,0,15,'���ճɽ�����������, ������С����'+' '),Color8285FF;
DRAWTEXTEX(BARSTATUS=2 and v<ref(v,1)and ma(v,5)<ref(ma(v,5),1),0,0,15,'���ճɽ���С�����գ�������С����'+' '),Color8285FF;
DRAWTEXTEX(CLOSE,0,0,30,'[��/���� ֹ��λ :'+NUMTOSTR(ֹ��λB,2)+'/'+NUMTOSTR(ֹ��λ��,2)+'**]'),LINETHICK1,colorFF00;
DRAWTEXTEX(CLOSE,0,0,45,'[��/���� ����λ :'+NUMTOSTR(����λ2,2)+'/'+NUMTOSTR(����λ��,2)+']'),LINETHICK1,colorFEBAF5;
zq:=DATATYPE;
r1:=OPENMINUTES(time);
zs:=ref(close,r1);
zsr:=DYNAINFO( 3);
j:=SUM(close*vol,SUMBARS(vol,FINANCE( 7)))/SUM(vol,SUMBARS(vol,FINANCE( 7)));
jj:=SUM(close*vol,0)/SUM(vol,0);
jj1:=SUM(close*vol,r1)/SUM(vol,r1);
jja:=if(zq=6,jj,if(zq=1,jj1,jj));
zsa:=if(zq=6,zsr,if(zq=1,zs,zsr));
cr:=if(zq=6,close>0,if(zq=1,r1>1,close>0));
POLYLINE(cr,zsa),COLORGRAY,POINTDOT;
dk:=(sma(close,2,1)-sma(close,6,1))*2.1;
s2:=sma(c,2,1);
s6:=sma(c,6,1);
dk:=2*(s2-s6);
STICKLINE(dk>0,DYNAINFO( 3),DYNAINFO( 3)+dk,0,1),COLORRED;
STICKLINE(dk<0,DYNAINFO( 3),DYNAINFO( 3)+dk,0,1),COLORCYAN;
if DATATYPE>=0 then exit;
rc:=DYNAINFO(3);
q:=DATACOUNT;
hh:=DYNAINFO(5);
LL:=DYNAINFO(6);
f:=max(hh-rc,rc-LL);
ff:=f/rc*100;
q1h:=if(ff<1,0.9898*rc,rc-f*1.02);
q1l:=if(ff<1,0.9798*rc,rc-2*f*1.016);
//FILLRGN(1,q1h,q1l),colorblack;
R:=INDEXC;
Rh:=hhv(r,0);
RL:=llv(r,0);
Rb:=(q1h-q1l)/(RH[q]-RL[q]);
Ry:=(q1h+q1l-rb*(RH[q]+RL[q]))/2;
//r*rb+ry,COLORFF00FF;
//(���(r*INDEXV,r)/���(INDEXV,r))*rb+ry,COLOR00FF00;
��ͨ:=finance(7)/10000;
qj1:=FINANCE( 7)/800;
qj2:=FINANCE( 7)/1000;
qj3:=FINANCE( 7)/1500;
qj4:=FINANCE( 7)/2000;
qj5:=FINANCE( 7)/4000;
qj6:=FINANCE( 7)/6000;
qj7:=FINANCE( 7)/8000;
qj8:=FINANCE( 7)/10000;
qj9:=ESTDATA(8)/13000;
XS:=if(finance(7)<1,qj9,if(��ͨ<1,qj1,if(��ͨ>=1 AND ��ͨ<5,qj2,if(��ͨ>=5 AND ��ͨ<10,qj3,if(��ͨ>=10 AND ��ͨ<20,qj4,if(��ͨ>=20 AND ��ͨ<40,qj5,if(��ͨ>=40 AND ��ͨ<60,qj6,if(��ͨ>=60 AND ��ͨ<=100,qj7,if(��ͨ>=100,qj8,0)))))))));
XS1:=XS*1.618;
��������:=���(BUYVOL,0);
��������:=���(SELLVOL,0);
�ص���:=if(BUYVOL>XS1,BUYVOL,0);
�ص���:=if(SELLVOL>XS1,SELLVOL,0);
����:=if(BUYVOL>XS and BUYVOL<=XS1,BUYVOL,0);
����:=if(SELLVOL>XS and SELLVOL<=XS1,SELLVOL,0);
����:=if(BUYVOL<=XS,BUYVOL,0);
����:=if(SELLVOL<=XS,SELLVOL,0);
�ص�����:=SUM(�ص���,0);
�ص�����:=SUM(�ص���,0);
������:=SUM(����,0);
������:=SUM(����,0);
������:=SUM(����,0);
������:=SUM(����,0);
��:=(�ص�����+������)-(�ص�����+������);
VARA:=if(BUYVOL<=ref(ASKVOL(1),1)+ref(ASKVOL(2),1)+ref(ASKVOL(3),1) AND close>=ref(ASKPRICE(3),1),BUYVOL,0);
��ɨ��:=���(INTPART(if(VARA>XS AND VARA<XS1,BUYVOL,0)),0);
VARB:=if(SELLVOL<=ref(BIDVOL(1),1)+ref(BIDVOL(2),1)+ref(BIDVOL(3),1) AND close<=ref(BIDPRICE(3),1),SELLVOL,0);
��ɨ��:=���(INTPART(if(VARB>XS AND VARA<XS1,SELLVOL,0)),0);
��:=(�ص�����+�ص�����+������+������+С������+С������+��ɨ��+��ɨ��);
DRAWTEXTEX(DYNAINFO(7),1,20,830,'�� ����: '+NUMTOSTR(�ص�����,0)),LINETHICK2,colorFF;
DRAWTEXTEX(DYNAINFO(7),1,260,830,'ռ:'+NUMTOSTR(floor(�ص�����/��*100),0)+' %'),LINETHICK2,colorFF;
DRAWTEXTEX(DYNAINFO(7),1,20,860,'�� ����: '+NUMTOSTR(�ص�����,0)),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,260,860,'ռ:'+NUMTOSTR(floor(�ص�����/��*100),0)+' %'),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,20,890,'�� ���: '+NUMTOSTR(������,0)),LINETHICK2,colorFF;
DRAWTEXTEX(DYNAINFO(7),1,260,890,'ռ:'+NUMTOSTR(floor(������/��*100),0)+' %'),LINETHICK2,colorFF;
DRAWTEXTEX(DYNAINFO(7),1,20,920,'�� ���: '+NUMTOSTR(������,0)),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,260,920,'ռ:'+NUMTOSTR(floor(������/��*100),0)+' %'),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,20,950,'�� ����: '+NUMTOSTR(������,0)),LINETHICK2,colorFF00FF;
DRAWTEXTEX(DYNAINFO(7),1,260,950,'ռ:'+NUMTOSTR(floor(С������/��*100),0)+' %'),LINETHICK2,colorFF00FF;
DRAWTEXTEX(DYNAINFO(7),1,20,980,'�� ����: '+NUMTOSTR(������,0)),LINETHICK2,colorFFFF00;
DRAWTEXTEX(DYNAINFO(7),1,260,980,'ռ:'+NUMTOSTR(floor(С������/��*100),0)+' %'),LINETHICK2,colorFFFF00;
DRAWTEXTEX(DYNAINFO(7),1,400,830,'�� ��ɨ��: '+NUMTOSTR(��ɨ��,0)),LINETHICK2,colorFF;
DRAWTEXTEX(DYNAINFO(7),1,640,830,'ռ:'+NUMTOSTR(floor(��ɨ��/��*100),0)+' %'),LINETHICK2,colorFFFF00;
DRAWTEXTEX(DYNAINFO(7),1,400,860,'�� ��ɨ��: '+NUMTOSTR(��ɨ��,0)),LINETHICK2,colorFFFF00;
DRAWTEXTEX(DYNAINFO(7),1,640,860,'ռ:'+NUMTOSTR(floor(��ɨ��/��*100),0)+' %'),LINETHICK2,colorFFFF00;
DRAWTEXTEX(DYNAINFO(7),1,400,890,'�� ��: '+NUMTOSTR(��,0)),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,640,890,'ռ:'+NUMTOSTR(��/(������+������)*100,0)+' %'),LINETHICK2,colorFF00;
DRAWTEXTEX(DYNAINFO(7),1,400,920,'�� ��ղ�: '+NUMTOSTR((��������-��������),0)),LINETHICK2,colorFFFF;
DRAWTEXTEX(DYNAINFO(7),1,640,920,'ռ:'+NUMTOSTR((��������-��������)/��*100,0)+' %'),LINETHICK2,colorFFFF;
A:=REF(HHV(high,240),1);
AA:=A[DATACOUNT];
B:=REF(LLV(low,240),1);
BB:=B[DATACOUNT];
ZJ1:=(((HIGH + LOW) + (2 * CLOSE)) / 4);
ZJ2:=(((ZJ1 - EMA(ZJ1,21)) / STD(ZJ1,21)) * 100);
ZJ3:=EMA(ZJ2,5);
ZJ4:=EMA(ZJ3,2);
ZJ5:=EMA(ZJ4,2);
ZJ6:=(((3 * ZJ4) - (2 * ZJ5)) / 2);
IF((ZJ6 > 90),(AA * 0.998),AA),LINETHICK2,colorDD66AA;
IF((ZJ6 < (0 - 95)),(BB * 1.002),BB),LINETHICK2,colorDD66AA;
if datatype>0 then exit; //���ֱ����ڼ�ʵʱͼ���б���ʽ
k:="kdj.k#min60";
d:="kdj.d#min60";
a1:=ref(cross(k,d),2) and k>d;//ǰ2������60����k.d��棬��k����d��
b1:ref(cross(d,k),2) and d>k;
if(a1 ,l*0.998,0),colorred,linethick4,CROSSDOT;
if(b1 ,l*1.002,0),colorgreen,linethick4,CROSSDOT;
BU:=BARSLAST((CLOSE = HHV(CLOSE,150)));
SE:=BARSLAST((CLOSE = LLV(CLOSE,150)));
KK1:=SE;
KK2:=BU;
LM1:=SE;
LM2:=BU;
OK:=((KK1 > KK2) AND (LM1 > LM2));
OK1:=((KK1 > KK2) AND (LM1 < LM2));
NOK:=((KK2 > KK1) AND (LM2 > LM1));
NOK1:=((KK2 > KK1) AND (LM2 < LM1));
DRAWICON(CROSS(KK1,KK2),low,5);
DRAWICON(CROSS(KK2,KK1),low,6);
k1:=hhv(high,0);
k2:=llv(low,0);
k3:=BARSLAST(OPENMINUTES(time)<=240);
t1:=BARSLAST(OPENMINUTES(time)<=60);
DRAWICON(OPENMINUTES(time)>60 and cross(close,ref(k1,t1)+0.001),ref(k1,t1),8);//ָʾͼ��
BU:=BARSLAST(CLOSE=HHV(CLOSE,2000));
SE:=BARSLAST(CLOSE=LLV(CLOSE,2000));
KK1:=SE;
KK2:=BU;
LM1:=SE;
LM2:=BU;
OK:=KK1>KK2
AND LM1>LM2;
OK1:=KK1>KK2 AND LM1<LM2;
NOK:=KK2>KK1 AND
LM2>LM1;
NOK1:=KK2>KK1 AND
LM2<LM1;
DRAWICON(CROSS(KK1,KK2),OPEN,4);
DRAWTEXT(CROSS(KK1,KK2),OPEN,' ץ'),colorred;
T:=OPENMINUTES(TIME);
CLOSE=DYNAINFO(7);
����:=SUM(VOL,T);
�ܶ�:=SUM(AMOUNT,T);
����:=�ܶ�/(����*100);
����:=COUNT(CLOSE>����,T);
ռ��:=����/T*100;
��ʱǿ��:DRAWICON(CROSS(CLOSE,����)
AND CLOSE>���� AND ռ��>80 AND
T>5,CLOSE,4);
DRAWTEXT(CROSS(CLOSE,����) AND CLOSE>���� AND ռ��>80
AND
T>5,CLOSE,' �Ǽ�'),colorFFFF;
ZF:=(EMA(SUM(((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)),3),49) * 10)+EMA(C,20);
plpl1:=(EMA(MA(((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)),3),13) * 10000),LINETHICK0,colorFFFFFF;
ZFF:=(EMA(SUM(((CLOSE - REF(CLOSE,1)) / REF(CLOSE,1)),3),49) * 10000);
plpl:=EMA(ZFF,34),LINETHICK0,color00FFFF;
cd��:=MA(ZFF,3);
ce��:=MA(cd��,3);
cf��:=MA(ce��,3);
cd:MA(ZF,3),color66DDFF;
ce:MA(cd,3),color666666;
cf:MA(ce,3),color888888;
cg:MA(cf,3),color9900FF;
ch:MA(cg,3),color7700FF;
ci:MA(ch,3),color0000FF;
cj��: IF(cd < REF(cd,1),cd,cd),color555555;
cj��: IF(ce < REF(ce,1),ce,cd),color555555;
cj��: IF(cf < REF(cf,1),cf,cd),color555555;
cj��: IF(cg < REF(cg,1),cg,cd),color555555;
cj��: IF(ch < REF(ch,1),ch,cd),color555555;
cj��: IF(ci < REF(ci,1),ci,cd),color555555;
close,LINETHICK2,COLORblack;
HS:=VOL/SUM(VOL,BARSCOUNT(C));
FBMAX:dma(c,hs),LINEDASHDOT,LINETHICK2,COLORMAGENTA;
����:=DYNAINFO(3);
HH:=DYNAINFO(5);
LL:=DYNAINFO(6);
FK:=MAX(HH-����,����-LL);
ZS:=����-FK*1.01;
Q1:=����-FK*1.012;
Q2:=����-2*FK*1.012;
Q3:=����-3*FK*1.01;
FILLRGN(1,����-2*FK*1.015,����-3*FK*1.01),color1B4756;
r:="rsi.rsi1";
rh:=hhv(r,0);
rL:=LLv(r,0);
rb:=1.015*max(DYNAINFO(5)-DYNAINFO(3),DYNAINFO(3)-DYNAINFO(6))/(rh-rL);
ry:=(2*DYNAINFO(3)-3.035*max(DYNAINFO(5)-DYNAINFO(3),DYNAINFO(3)-DYNAINFO(6))-rb*(rh+rL))/2;
r*rb[datacount]+ry[datacount],color320058;
RSV:=((CLOSE-LLV(LOW,240))/(HHV(HIGH,240)-LLV(LOW,240))*200-100)/2;
K:=SMA(SMA(RSV,18,1),3,1);
D:=MA(EMA(K,18),3);
J:=3*K-2*D;
��ͷ:=-3*K-2*D;
DIFF:=EMA(CLOSE,240)-EMA(CLOSE,240)*100;
DEA:=EMA(DI