风灵月影量化理论

風靈月影

国九条扫雷宝——通达信自定义指标公式

2025 / 1 / 3

1、副图指标:

{年份、报告期取值}

YYMMDD:=FINVALUE(0);{报告期0331,0630,0930,1231,假设:240331}

YY:=INTPART(YYMMDD/10000); {24}

YYYY:=YY+2000;{2024}

MMDD:=YYMMDD-YY*10000;{0331}

NF:=IF(MMDD=1231,YYYY,YYYY-1);{年份取值,如果=年报,是2024,否2023}

{财务数据变色}

净资产:=FINONE(72,NF,1231)/100000000;

净资产变色:=STRCAT(STRCAT('',VAR2STR(净资产,2)),' 亿');

DRAWTEXT_FIX(1,0.18,0.0,1,' 净资产:'),COLORWHITE;

DRAWTEXT_FIX(净资产>0,0.23,0.0,1,净资产变色),COLORRED;

DRAWTEXT_FIX(净资产<0,0.23,0.0,1,净资产变色),COLORGREEN;

总市值:=FINANCE(41)/100000000;{AB股总市值}

总市值变色:=STRCAT(STRCAT('',VAR2STR(总市值,2)),' 亿');

DRAWTEXT_FIX(1,0.18,0.15,1,' 总市值:'),COLORWHITE;

DRAWTEXT_FIX(FINANCE(3)=1 AND 总市值>5,0.23,0.15,1,总市值变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=1 AND 总市值<5,0.23,0.15,1,总市值变色),COLORGREEN;

DRAWTEXT_FIX(FINANCE(3)=3 AND 总市值>3,0.23,0.15,1,总市值变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND 总市值<3,0.23,0.15,1,总市值变色),COLORGREEN;

营业收入:=FINONE(74,NF,1231)/100000000;{2023营业收入}

YYSN2:=FINONE(74,NF-1,1231)/100000000;{2022营业收入}

YYSN3:=FINONE(74,NF-2,1231)/100000000;{2021营业收入}

YYSNSUM:=(营业收入+YYSN2+YYSN3);{3年营业收入合计}

YYSNKH:=YYSNSUM*0.15;{3年营业收入15%}

营业收入变色:=STRCAT(STRCAT('',VAR2STR(营业收入,2)),' 亿');

DRAWTEXT_FIX(1,0.18,0.30,1,'营业收入:'), COLORWHITE;

DRAWTEXT_FIX(FINANCE(3)=1 AND 营业收入>3,0.23,0.30,1,营业收入变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=1 AND 营业收入<3,0.23,0.30,1,营业收入变色),COLORGREEN;

DRAWTEXT_FIX(FINANCE(3)=3 AND 营业收入>1,0.23,0.30,1,营业收入变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND 营业收入<1,0.23,0.30,1,营业收入变色),COLORGREEN;

利润总额:=FINONE(92,NF,1231)/100000000;

利润总额变色:=STRCAT(STRCAT('',VAR2STR(利润总额,2)),' 亿');

DRAWTEXT_FIX(1,0.35,0.0,1,' 利润总额:'),COLORWHITE;

DRAWTEXT_FIX(利润总额>0,0.4,0.0,1,利润总额变色),COLORRED;

DRAWTEXT_FIX(利润总额<0,0.4,0.0,1,利润总额变色),COLORGREEN;

归母净利润:=FINONE(96,NF,1231)/100000000;{2023归母净利润}

GMJLR2:=FINONE(96,NF-1,1231)/100000000;{2022归母净利润}

GMJLR3:=FINONE(96,NF-2,1231)/100000000;{2021归母净利润}

GMJLRSUM:=归母净利润+GMJLR2+GMJLR3;{3年归母净利润合计}

GMJLRKH:=GMJLRSUM/3*0.3;{年均归母净利润30%}

归母净利润变色:=STRCAT(STRCAT('',VAR2STR(归母净利润,2)),' 亿');

DRAWTEXT_FIX(1,0.35,0.3,1,'归母净利润:'),COLORWHITE;

DRAWTEXT_FIX(归母净利润>0,0.4,0.3,1,归母净利润变色),COLORRED;

DRAWTEXT_FIX(归母净利润<0,0.4,0.3,1,归母净利润变色),COLORGREEN;

扣非净利润:=FINONE(206,NF,1231)/100000000;

扣非净利润变色:=STRCAT(STRCAT('',VAR2STR(扣非净利润,2)),' 亿');

DRAWTEXT_FIX(1,0.35,0.15,1,'扣非净利润:'),COLORWHITE;

DRAWTEXT_FIX(扣非净利润>0,0.4,0.15,1,扣非净利润变色),COLORRED;

DRAWTEXT_FIX(扣非净利润<0,0.4,0.15,1,扣非净利润变色),COLORGREEN;

未分配利润:=FINONE(68,NF,1231)/100000000;

未分配利润变色:=STRCAT(STRCAT('',VAR2STR(未分配利润,2)),' 亿');

DRAWTEXT_FIX(1,0.35,0.45,1,' 未分配利润:'),COLORWHITE;

DRAWTEXT_FIX(未分配利润>0,0.4,0.45,1,未分配利润变色),COLORRED;

DRAWTEXT_FIX(未分配利润<0,0.4,0.45,1,未分配利润变色),COLORGREEN;

研发费用:=FINONE(304,NF,1231)/100000000;{2023研发费用}

YFFY2:=FINONE(304,NF-1,1231)/100000000;{2022研发费用}

YFFY3:=FINONE(304,NF-2,1231)/100000000;{2021研发费用}

YFFYSUM:=研发费用+YFFY2+YFFY3;{3年研发费用合计}

研发费用变色:=STRCAT(STRCAT('',VAR2STR(YFFYSUM,2)),' 亿');

DRAWTEXT_FIX(1,0.18,0.6,1,'累计研发:'), COLORWHITE;

DRAWTEXT_FIX(FINANCE(3)=1 AND YFFYSUM>=0,0.23,0.6,1,研发费用变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND YFFYSUM>3,0.23,0.6,1,研发费用变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND YFFYSUM<3,0.23,0.6,1,研发费用变色),COLORGREEN;

研发占比:=YFFYSUM/YYSNSUM*100;{创业板近三年累计研发占累计营业收入>15%}

研发占比变色:=STRCAT(STRCAT('',VAR2STR(研发占比,0)),' %');

DRAWTEXT_FIX(1,0.27,0.6,1,'');

DRAWTEXT_FIX(FINANCE(3)=1 AND 研发占比>=0,0.27,0.6,1,研发占比变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND 研发占比>15,0.27,0.6,1,研发占比变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND 研发占比<=15,0.27,0.6,1,研发占比变色),COLORGREEN;

{近3年累计分红}

ZJFHTS1:=SPLITBARS(0,1);{最新一次分红到今天的天数}

ZJFHTS2:=SPLITBARS(1,1);{上1次分红到今天的天数}

ZJFHTS3:=SPLITBARS(2,1);

ZJFHTS4:=SPLITBARS(3,1);

ZJFHTS5:=SPLITBARS(4,1);

ZJFHTS6:=SPLITBARS(5,1);

ZJFHTS7:=SPLITBARS(6,1);

ZJFHTS8:=SPLITBARS(7,1);

ZJFHTS9:=SPLITBARS(8,1)NODRAW;

ZJFH1:=CONST(SPLIT(0,1)*REF(FINANCE(1),ZJFHTS1+2))/100000000;

{最新一次分红的总额,后面加2的目的是怕分红同一天也扩股本,所以取分红前两天的股本来计算}

ZJFH2:=CONST(SPLIT(1,1)*REF(FINANCE(1),ZJFHTS2+2))/100000000;{上一次分红总额}

ZJFH3:=CONST(SPLIT(2,1)*REF(FINANCE(1),ZJFHTS3+2))/100000000;

ZJFH4:=CONST(SPLIT(3,1)*REF(FINANCE(1),ZJFHTS4+2))/100000000;

ZJFH5:=CONST(SPLIT(4,1)*REF(FINANCE(1),ZJFHTS5+2))/100000000;

ZJFH6:=CONST(SPLIT(5,1)*REF(FINANCE(1),ZJFHTS6+2))/100000000;

ZJFH7:=CONST(SPLIT(6,1)*REF(FINANCE(1),ZJFHTS7+2))/100000000;

ZJFH8:=CONST(SPLIT(7,1)*REF(FINANCE(1),ZJFHTS8+2))/100000000;

ZJFH9:=CONST(SPLIT(8,1)*REF(FINANCE(1),ZJFHTS9+2))/100000000;

YYYY1:=CONST(INTPART(REF(DATE+19000000,ZJFHTS1)/10000))NODRAW;{最新一次分红的年份}

YYYY2:=CONST(INTPART(REF(DATE+19000000,ZJFHTS2)/10000))NODRAW;{上一次分红的年份}

YYYY3:=CONST(INTPART(REF(DATE+19000000,ZJFHTS3)/10000))NODRAW;

YYYY4:=CONST(INTPART(REF(DATE+19000000,ZJFHTS4)/10000))NODRAW;

YYYY5:=CONST(INTPART(REF(DATE+19000000,ZJFHTS5)/10000))NODRAW;

YYYY6:=CONST(INTPART(REF(DATE+19000000,ZJFHTS6)/10000))NODRAW;

YYYY7:=CONST(INTPART(REF(DATE+19000000,ZJFHTS7)/10000))NODRAW;

YYYY8:=CONST(INTPART(REF(DATE+19000000,ZJFHTS8)/10000))NODRAW;

YYYY9:=CONST(INTPART(REF(DATE+19000000,ZJFHTS9)/10000))NODRAW;

D1NF:=INTPART(FINVALUE(0)/10000)+2000,NODRAW;

D2NF:=D1NF-1,NODRAW;

D3NF:=D1NF-2,NODRAW;

D1NFH:=IF(YYYY1=D1NF,ZJFH1,0)+IF(YYYY2=D1NF,ZJFH2,0)+IF(YYYY3=D1NF,ZJFH3,0)+IF(YYYY4=D1NF,ZJFH4,0),NODRAW;{第1年累计分红}

D2NFH:=IF(YYYY1=D2NF,ZJFH1,0)+IF(YYYY2=D2NF,ZJFH2,0)+IF(YYYY3=D2NF,ZJFH3,0)+IF(YYYY4=D2NF,ZJFH4,0)+IF(YYYY5=D2NF,ZJFH5,0)+IF(YYYY6=D2NF,ZJFH6,0)+IF(YYYY7=D2NF,ZJFH7,0)+IF(YYYY8=D2NF,ZJFH8,0),NODRAW;{第2年累计分红}

D3NFH:=IF(YYYY1=D3NF,ZJFH1,0)+IF(YYYY2=D3NF,ZJFH2,0)+IF(YYYY3=D3NF,ZJFH3,0)+IF(YYYY4=D3NF,ZJFH4,0)+IF(YYYY5=D3NF,ZJFH5,0)+IF(YYYY6=D3NF,ZJFH6,0)+IF(YYYY7=D3NF,ZJFH7,0)+IF(YYYY8=D3NF,ZJFH8,0)+IF(YYYY9=D3NF,ZJFH9,0),NODRAW;{第3年累计分红}

分红总额:=D1NFH+D2NFH+D3NFH,NODRAW;{最新3年累计分红}

分红总额变色:=STRCAT(STRCAT('',VAR2STR(分红总额,2)),' 亿');

DRAWTEXT_FIX(1,0.18,0.45,1,'累计分红:'), COLORWHITE;

DRAWTEXT_FIX(FINANCE(3)=1 AND 分红总额>0.5,0.23,0.45,1,分红总额变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=1 AND 分红总额<0.5,0.23,0.45,1,分红总额变色),COLORGREEN;

DRAWTEXT_FIX(FINANCE(3)=3 AND 分红总额>0.3,0.23,0.45,1,分红总额变色),COLORRED;

DRAWTEXT_FIX(FINANCE(3)=3 AND 分红总额<0.3,0.23,0.45,1,分红总额变色),COLORGREEN;

分红占比:=分红总额/(GMJLRSUM/3)*100;

分红占比变色:=STRCAT(STRCAT('',VAR2STR(分红占比,0)),' %');

DRAWTEXT_FIX(1,0.27,0.45,1,'');

DRAWTEXT_FIX(分红占比>=30,0.27,0.45,1,分红占比变色),COLORRED;{近三年累计分红>年均净利润30%}

DRAWTEXT_FIX(分红占比<30,0.27,0.45,1,分红占比变色),COLORWHITE;{近三年累计分红<年均净利润30%}

{新国九考核标准}

DRAWTEXT_FIX(1,0.42,0.00,0,'利润不合格:利润总额、扣非净利润、归母净利润三者孰低为负值。(仅利润不合格,不会被ST)'),COLORGRAY;

DRAWTEXT_FIX(1,0.42,0.15,0,'市值不合格:主板<5亿,创业板<3亿。注意:<市值不合格>或者<股价<1元>强制退市(连续20个交易日)。'),COLORGRAY;

DRAWTEXT_FIX(1,0.42,0.30,0,'营收不合格:主板<3亿,创业板<1亿(利润总额、扣非净利润、归母净利润三者孰低为负值)。或者 <净资产为负>'),COLORGRAY;

DRAWTEXT_FIX(1,0.42,0.45,0,'分红不合格:主板<5000万,创业板<3000万(近三年累计分红<年均净利润30%)(归母净利润、未分配利润为正)'),COLORGRAY;

DRAWTEXT_FIX(1,0.42,0.60,0,' 豁免条件:回购注销金额纳入现金分红金额计算(创业板近三年累计研发投入金额,>3亿或占累计营业收入>15%)'),COLORGRAY;

DNYYMMDD:=MACHINEDATE;{电脑日期,假设:1240501}

DN1YY:=INTPART(DNYYMMDD/10000);{124}

DNYY:=INTPART(DN1YY-100);{24}

DNYYYY:=INTPART((DNYYMMDD+19000000)/10000);{2024}

元旦:=DNYY*10000+1000101;{1240101}

今年已过天数:=DATETODAY(MACHINEDATE)-DATETODAY(元旦)+1;{24年已过天数}

年份考核:=(FINANCE(42)-今年已过天数)>2*365;{年份考核:3个会计年度}

主板分红考核:=年份考核=1 AND 未分配利润>0 AND 归母净利润>0 AND 分红总额<GMJLRKH AND 分红总额<0.5;{主板分红考核}

创业板分红考核:=年份考核=1 AND 未分配利润>0 AND 归母净利润>0 AND 分红总额<GMJLRKH AND 分红总额<0.3 AND YFFYSUM<3 AND YFFYSUM<YYSNKH;

{创业板分红考核,累计分红<年均净利润30%且低于3千万,累计研发费用<3亿,<累计营业收入15%}

分红考核不合格:=IF(FINANCE(3)=1,主板分红考核,IF(FINANCE(3)=3,创业板分红考核,DRAWNULL));

合格:=STRCAT('','合格');

不合格:=STRCAT('','不合格');

未满3年:=STRCAT('','未满3年');

DRAWTEXT_FIX(C>1,0.08,0.01,1,STRCAT('【利润考核】',':')),COLORWHITE;

DRAWTEXT_FIX((归母净利润>0)AND(利润总额>0)AND(扣非净利润>0),0.1,0.01,1,合格),COLORWHITE;

DRAWTEXT_FIX((归母净利润<0)OR(利润总额<0)OR(扣非净利润<0),0.11,0.01,1,不合格),COLORGREEN;

DRAWTEXT_FIX(C>1,0.08,0.15,1,STRCAT('【市值考核】',':')),COLORWHITE;

DRAWTEXT_FIX((FINANCE(3)=1 AND 总市值>5)OR(FINANCE(3)=3 AND 总市值>3),0.1,0.15,1,合格),COLORRED;

DRAWTEXT_FIX((FINANCE(3)=1 AND 总市值<5)OR(FINANCE(3)=3 AND 总市值<3),0.11,0.15,1,不合格),COLORGREEN;

DRAWTEXT_FIX(C>1,0.08,0.30,1,STRCAT('【营收考核】',':')),COLORWHITE;

DRAWTEXT_FIX((归母净利润>0)AND(利润总额>0)AND(扣非净利润>0)AND(净资产>0),0.1,0.30,1,合格),COLORRED;

DRAWTEXT_FIX(((FINANCE(3)=1 AND 营业收入>3)OR(FINANCE(3)=3 AND 营业收入>1))AND(净资产>0),0.1,0.30,1,合格),COLORRED;

DRAWTEXT_FIX((((归母净利润<0)OR(利润总额<0)OR(扣非净利润<0))AND(FINANCE(3)=1 AND 营业收入<3))OR(净资产<0),0.11,0.30,1,不合格),COLORGREEN;

DRAWTEXT_FIX((((归母净利润<0)OR(利润总额<0)OR(扣非净利润<0))AND(FINANCE(3)=3 AND 营业收入<1))OR(净资产<0),0.11,0.30,1,不合格),COLORGREEN;

DRAWTEXT_FIX(C>1,0.08,0.45,1,STRCAT('【分红考核】:',IF(分红考核不合格=1,'',''))),COLORWHITE;

DRAWTEXT_FIX(C>1,0.11,0.45,1,STRCAT('',IF(分红考核不合格=1,'不合格',''))),COLORGREEN;

DRAWTEXT_FIX(C>1,0.11,0.45,1,STRCAT('',IF(分红考核不合格=0 AND 年份考核=0,'不考核',''))),COLORWHITE;

DRAWTEXT_FIX(C>1,0.11,0.45,1,STRCAT('',IF(分红考核不合格=0 AND 年份考核=1 AND (归母净利润<0 OR 未分配利润<0 OR 分红总额>=GMJLRKH),'不考核',''))),COLORYELLOW;

DRAWTEXT_FIX(C>1,0.10,0.45,1,STRCAT('',IF(分红考核不合格=0 AND 年份考核=1 AND 归母净利润>0 AND 未分配利润>0 AND 分红总额<GMJLRKH,'合格',''))),COLORRED;

DRAWTEXT_FIX(C>1,0.08,0.60,1,STRCAT('【年份考核】',':')),COLORWHITE;

DRAWTEXT_FIX(((FINANCE(42)-今年已过天数)/365>=2),0.1,0.60,1,合格),COLORRED;

DRAWTEXT_FIX(((FINANCE(42)-今年已过天数)/365<2),0.11,0.60,1,未满3年),COLORYELLOW;

{扫雷宝变色}

安全分:=SAFESCORE;

扫雷宝:=STRCAT(STRCAT('【扫雷宝:',VAR2STR(安全分,0)),'分】');

DRAWTEXT_FIX(安全分>=80,0.4,0.60,1,扫雷宝),COLORRED;

DRAWTEXT_FIX(安全分<80 AND 安全分>=60,0.4,0.60,1,扫雷宝),COLORYELLOW;

DRAWTEXT_FIX(安全分<60,0.4,0.60,1,扫雷宝),COLORGREEN;

=====================================

2、通达信右键直达扫雷宝个股评估网页

系统设置——链接,填入:

“扫雷宝”,网址填写:http://page3.tdx.com.cn:7615/site/pcwebcall_static/bxb/bxb.html?code=xxxxxx&color=0

即可一键直达扫雷宝评估网页。

=====================================

PS.上述公式均来自网上,原搬照抄,第一个副图公式仅将显示颜色改了一下,比如源代码将指标合格显示为绿色,不合格显示为红色,不符合国人使用习惯,反相之。国九条中有一个主板连续120个交易日成交量低于500万股,创业板和科创板连续120个交易日成交量低于200万股,以及股东人数低于2000(创业板400)即面临交易类强制退市的要求未写在里面,不知何故,也许是因为基本不可能发生所以免去了,自己编的话增加下列命令行然后用drawtext_fix函数输出一下就行:

成交量大于二百:=VOL*100>2000000;

成交量百日不落:=CONST(COUNT(成交量大于二百,100)>=1);

股东人数要求:=FINVALUE(242)>2000;

成交量和股东满足:=成交量百日不落 AND 股东人数要求;

此指标是非常好的,以前都是盲炒,现在手中标的物是否在雷区,哪里有雷一目了然,但根据国九条来编公式避雷的唯一问题在于,在一致性下跌段时,似乎避不避雷都无甚区别,比如扫雷宝鉴定结果是100分,又如何呢,还是暴跌40个点,那么40个点的暴跌伤害大还是被扫雷宝评出来只有50分但不跌伤害大呢?再进一步:2008年1月和2015年6月,用扫雷宝指标对所有股票进行扫描,扫出的分数会不会齐刷刷都是零分呢?恐怕恰恰相反。

所以要遵循国九条没错,但国九条的是非边界对股价的波动似乎无法起关键性的指导作用,因此这玩意儿的效用很值得推敲,笔者还是认为,只要不退市,那就不用慌,没有谁会一直死磕一个30天退市的股票,也不至于某股票一触犯国九条就打成一分钱,那谁都不用玩了。

所以最关键的指标还是退市率,国九条仅仅对需要国九条的人(恰恰是幕后,需要各种玩弄),或者长年持一个股的人有用,但即使长期持有,在ST都能飞上天的A股,如何避雷似乎从来都是玄学。

没试过手机通达信行不行,不过笔者推测手机炒股的人可能会更放得开一些,因为脱离了国九条和各类指标的干扰反而更容易放飞自我。