风口捉妖(公式源码)




该指标适用于出现风口后低吸,更容易捉妖
主图公式:
{定义5日移动平均线,变量名MA5}
MA5:MA(C,5);
{定义10日移动平均线,变量名MA10}
MA10:MA(C,10);
{定义20日移动平均线,变量名MA20}
MA20:MA(C,20);
{定义变量擒牛1:计算收盘价、最高价、最低价三者的简单平均值}
擒牛1:=(CLOSE+HIGH+LOW)/3;
{定义变量擒牛2:计算擒牛1的10日指数移动平均(EMA)}
擒牛2:=EMA(擒牛1,10);
{定义变量擒牛3:擒牛2的前一日数值}
擒牛3:=REF(擒牛2,1);
{当擒牛2大于擒牛3(即EMA10向上),绘制从收盘价到开盘价的宽柱(2.8),颜色为深蓝}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,2.8,0),COLOR000088;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(2.6),颜色为深蓝渐变1}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,2.6,0),COLOR000099;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(2.4),颜色为深蓝渐变2}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,2.4,0),COLOR0000AA;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(2.2),颜色为深蓝渐变3}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,2.2,0),COLOR0000BB;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(2.0),颜色为深蓝渐变4}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,2.0,0),COLOR0000CC;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(1.8),颜色为深蓝渐变5}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,1.8,0),COLOR0000DD;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(1.5),颜色为深蓝渐变6}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,1.5,0),COLOR0000EE;
{当擒牛2大于擒牛3,绘制从收盘价到开盘价的宽柱(1),颜色为亮蓝色}
STICKLINE((擒牛2>擒牛3),CLOSE,OPEN,1,0),COLOR0000FF;
{当擒牛2大于擒牛3,绘制最高价到最低价的细线(0.0宽),颜色为亮蓝色}
STICKLINE((擒牛2>擒牛3),LOW,HIGH,0.0,0),COLOR0000FF;
{当擒牛3大于擒牛2(即EMA10向下),绘制从收盘价到开盘价的宽柱(2.8),颜色为深黄}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,2.8,0),COLOR888800;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(2.6),颜色为深黄渐变1}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,2.6,0),COLOR999900;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(2.4),颜色为深黄渐变2}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,2.4,0),COLORAAAA00;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(2.0),颜色为深黄渐变3}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,2.0,0),COLORCCCC00;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(1.8),颜色为深黄渐变4}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,1.8,0),COLORDDDD00;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(1.5),颜色为深黄渐变5}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,1.5,0),COLOREEEE00;
{当擒牛3大于擒牛2,绘制从收盘价到开盘价的宽柱(1),颜色为亮黄色}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,1,0),COLORFFFF00;
{当擒牛3大于擒牛2,绘制最高价到最低价的细线(0.0宽),颜色为亮黄色}
STICKLINE((擒牛3>擒牛2),LOW,HIGH,0.0,0),COLORFFFF00;
{当开盘价大于收盘价(即收阴线),绘制从收盘价到开盘价的实体柱(宽度0),颜色为亮黄色}
STICKLINE((OPEN>CLOSE),CLOSE,OPEN,0,0),COLORFFFF00;
{当开盘价小于收盘价(即收阳线),绘制从收盘价到开盘价的实体柱(宽度0),颜色为红色}
STICKLINE((OPEN< CLOSE),CLOSE,OPEN,0,0),COLORRED;
{当擒牛3大于擒牛2(重复条件,可能是为了确保效果),绘制从收盘价到开盘价的宽柱(2.4),颜色为深黄渐变2}
STICKLINE((擒牛3>擒牛2),CLOSE,OPEN,2.4,0),COLORAAAA00;
{定义变量C4:擒牛2上穿擒牛3,即EMA10金叉}
C4:=CROSS(擒牛2,擒牛3);
{定义变量C5:擒牛3上穿擒牛2,即EMA10死叉}
C5:=CROSS(擒牛3,擒牛2);
{定义参数N,值为9(用于KDJ计算)}
N:=9;
{定义参数M1,值为3(用于KDJ计算)}
M1:=3;
{定义参数M2,值为3(用于KDJ计算)}
M2:=3;
{计算风口指标(类似KDJ中的RSV):(收盘价-N日最低价)/(N日最高价-N日最低价)*100}
风口:=(CLOSE- LLV(LOW,N))/(HHV(HIGH,N)- LLV(LOW,N))*100;
{计算风口指标的3日简单移动平均,赋给K}
K:=SMA(风口,M1,1);
{计算K值的3日简单移动平均,赋给D}
D:=SMA(K,M2,1);
{计算J值:3*K-2*D}
J:=3*K-2*D;
{定义条件金叉:K值大于D值,且J值大于D值,且J值大于K值}
金叉:=KDJ.K>KDJ.D AND KDJ.J>KDJ.D AND KDJ.J>KDJ.K;
{计算流通市值(亿):总股本*收盘价/1000000}
流通市值:=CAPITAL*C/1000000;
{计算涨幅:(当日收盘价-前一日收盘价)/前一日收盘价*100%}
涨幅:=(C-REF(C,1))/REF(C,1)*100;
{将收盘价赋给变量价格}
价格:=C;
{定义筛选条件AA0:过滤掉ST/*ST/S股票、停牌股票、创业板、科创板股票或K线数据不足的股票}
AA0:=NOT(NAMELIKE(‘ST’) OR NAMELIKE(‘*ST’) OR NAMELIKE(‘S’) OR DYNAINFO(4)=0 OR INBLOCK(‘创业板’)OR INBLOCK(‘科创板’)) OR BARSCOUNT(C)>1;
{定义筛选条件AA1:流通市值大于0且小于80亿}
AA1:=流通市值>0 AND 流通市值< 80;
{定义筛选条件AA2:涨幅大于9.8%且小于10.99%,且收盘价等于最高价(涨停)}
AA2:=涨幅>9.8 AND 涨幅< 10.99 AND C=H;
{定义筛选条件AA3:价格大于2元且小于22元}
AA3:=价格>2 AND 价格< 22;
{定义筛选条件AA4:最近2个交易日内,满足AA2条件(涨停)的天数恰好为1天}
AA4:=COUNT(AA2,2)=1;
{定义最终买入信号BB:满足金叉、AA0、AA1、AA2、AA3、AA4所有条件}
BB:=金叉 AND AA0 AND AA1 AND AA2 AND AA3 AND AA4;
{当信号BB出现时,绘制从最高价到最低价的细线(宽度0),颜色为洋红色}
STICKLINE(BB,H,L,0,0),COLORFF00FF;
{当信号BB出现时,绘制从收盘价到开盘价的粗柱(宽度3),颜色为深紫色}
STICKLINE(BB,C,O,3,0),COLOR990099;
{当信号BB出现时,绘制从收盘价到开盘价的粗柱(宽度2),颜色为中紫色}
STICKLINE(BB,C,O,2,0),COLORBB00BB;
{当信号BB出现时,绘制从收盘价到开盘价的粗柱(宽度1),颜色为亮紫色}
STICKLINE(BB,C,O,1,0),COLORDD00DD;
{当信号BB出现时,绘制从收盘价到开盘价的细柱(宽度0.3),颜色为黄色}
STICKLINE(BB,C,O,0.3,0),COLORYELLOW;
{当信号BB出现时,在最低价下方一点(*0.98)的位置绘制9号图标(买入箭头)}
DRAWICON(BB,L*0.98,9);
{当信号BB出现时,在最低价下方一点(*0.95)的位置显示文字“←风口擒牛”,颜色为黄色}
DRAWTEXT(BB,L*0.95,’←风口擒牛’),COLORYELLOW;
副图公式:
{定义参数N,值为9(用于KDJ指标计算)}
N:=9;
{定义参数M1,值为3(用于KDJ指标计算)}
M1:=3;
{定义参数M2,值为3(用于KDJ指标计算)}
M2:=3;
{计算风口指标(类似KDJ中的RSV):(收盘价-N日最低价)/(N日最高价-N日最低价)*100}
风口:=(CLOSE- LLV(LOW,N))/(HHV(HIGH,N)- LLV(LOW,N))*100;
{计算风口指标的3日简单移动平均,赋给K}
K:=SMA(风口,M1,1);
{计算K值的3日简单移动平均,赋给D}
D:=SMA(K,M2,1);
{计算J值:3*K-2*D}
J:=3*K-2*D;
{定义条件金叉:KDJ指标中K值大于D值,且J值大于D值,且J值大于K值}
金叉:=KDJ.K>KDJ.D AND KDJ.J>KDJ.D AND KDJ.J>KDJ.K;
{计算流通市值(单位:亿元):总股本*收盘价/1000000}
流通市值:=CAPITAL*C/1000000;
{计算涨幅:(当日收盘价-前一日收盘价)/前一日收盘价*100%}
涨幅:=(C-REF(C,1))/REF(C,1)*100;
{将收盘价赋给变量价格}
价格:=C;
{定义筛选条件擒牛0:过滤掉ST/*ST/S股票、停牌股票、创业板、科创板股票或K线数据不足的股票}
擒牛0:=NOT(NAMELIKE(‘ST’) OR NAMELIKE(‘*ST’) OR NAMELIKE(‘S’) OR DYNAINFO(4)=0 OR INBLOCK(‘创业板’)OR INBLOCK(‘科创板’)) OR BARSCOUNT(C)>1;
{定义筛选条件擒牛1:流通市值大于0且小于80亿}
擒牛1:=流通市值>0 AND 流通市值< 80;
{定义筛选条件擒牛2:涨幅大于9.8%且小于10.99%,且收盘价等于最高价(涨停)}
擒牛2:=涨幅>9.8 AND 涨幅< 10.99 AND C=H;
{定义筛选条件擒牛3:价格大于2元且小于22元}
擒牛3:=价格>2 AND 价格< 22;
{定义筛选条件擒牛4:最近2个交易日内,满足擒牛2条件(涨停)的天数恰好为1天}
擒牛4:=COUNT(擒牛2,2)=1;
{定义最终选股信号AA:同时满足金叉、擒牛0、擒牛1、擒牛2、擒牛3、擒牛4所有条件}
AA:=金叉 AND 擒牛0 AND 擒牛1 AND 擒牛2 AND 擒牛3 AND 擒牛4;
{当信号AA出现时,在0到3的位置绘制宽度为2的洋红色柱状线}
STICKLINE(AA,0,3,2,0 ),COLORMAGENTA;
{当信号AA出现时,在0到3的位置绘制宽度为0.1的黄色细柱状线}
STICKLINE(AA,0,3,0.1,0 ),COLORYELLOW;
{当信号AA出现时,在3的上方一点(*1.002)的位置绘制5号图标}
DRAWICON(AA ,3*1.002,5);
{当信号AA出现时,在位置2.6处显示文字“←风口擒牛”,颜色为黄色}
DRAWTEXT(AA,2.6,’←风口擒牛’),COLORYELLOW;
选股公式:
{定义参数N,值为9(用于KDJ指标计算)}
N:=9;
{定义参数M1,值为3(用于KDJ指标计算)}
M1:=3;
{定义参数M2,值为3(用于KDJ指标计算)}
M2:=3;
{计算风口指标(类似KDJ中的RSV):(收盘价-N日最低价)/(N日最高价-N日最低价)*100}
风口:=(CLOSE- LLV(LOW,N))/(HHV(HIGH,N)- LLV(LOW,N))*100;
{计算风口指标的3日简单移动平均,赋给K}
K:=SMA(风口,M1,1);
{计算K值的3日简单移动平均,赋给D}
D:=SMA(K,M2,1);
{计算J值:3*K-2*D}
J:=3*K-2*D;
{定义条件金叉:KDJ指标中K值大于D值,且J值大于D值,且J值大于K值}
金叉:=KDJ.K>KDJ.D AND KDJ.J>KDJ.D AND KDJ.J>KDJ.K;
{计算流通市值(单位:亿元):总股本*收盘价/1000000}
流通市值:=CAPITAL*C/1000000;
{计算涨幅:(当日收盘价-前一日收盘价)/前一日收盘价*100%}
涨幅:=(C-REF(C,1))/REF(C,1)*100;
{将收盘价赋给变量价格}
价格:=C;
{定义筛选条件AA0:过滤掉ST/*ST/S股票、停牌股票、创业板、科创板股票或K线数据不足的股票}
AA0:=NOT(NAMELIKE(‘ST’) OR NAMELIKE(‘*ST’) OR NAMELIKE(‘S’) OR DYNAINFO(4)=0 OR INBLOCK(‘创业板’)OR INBLOCK(‘科创板’)) OR BARSCOUNT(C)>1;
{定义筛选条件AA1:流通市值大于0且小于80亿元}
AA1:=流通市值>0 AND 流通市值< 80;
{定义筛选条件AA2:涨幅大于9.8%且小于10.99%,且收盘价等于最高价(涨停)}
AA2:=涨幅>9.8 AND 涨幅< 10.99 AND C=H;
{定义筛选条件AA3:价格大于2元且小于22元}
AA3:=价格>2 AND 价格< 22;
{定义筛选条件AA4:最近2个交易日内,满足AA2条件(涨停)的天数恰好为1天}
AA4:=COUNT(AA2,2)=1;
{定义条件QXS:过滤掉股票代码以’4’开头的股票(通常为新三板)}
QXS:=NOT(CODELIKE(‘4’));
{定义条件QKC:过滤掉股票代码以’688’开头的股票(科创板)}
QKC:=NOT(CODELIKE(‘688’));
{定义条件QST:如果股票名称包含’S’则赋值为0,否则为1(过滤S股)}
QST:=IF(NAMELIKE(‘S’),0,1);
{定义条件QXX:如果股票名称包含’*’则赋值为0,否则为1(过滤*ST股)}
QXX:=IF(NAMELIKE(‘*’),0,1);
{定义条件QBJ:过滤掉股票代码以’8’开头的股票(北交所或新三板)}
QBJ:=NOT(CODELIKE(‘8’));
{定义筛选条件AA5:同时满足QXS、QST、QKC、QXX、QBJ条件}
AA5:=QXS AND QST AND QKC AND QXX AND QBJ;
{定义最终选股信号擒牛:同时满足金叉、AA0、AA1、AA2、AA3、AA4、AA5所有条件}
擒牛:=金叉 AND AA0 AND AA1 AND AA2 AND AA3 AND AA4 AND AA5;
{输出信号:风口擒牛,即擒牛条件成立时输出选股信号}
风口擒牛:擒牛;
指标都是无私分享的,大家多“点赞”和“在看”支持,您的 支持是我长久无私分享的动力。
夜雨聆风
