自制财务副图,回馈各位软件高手(完善版)
完善了l、上市晚的数据引用可能出错的问题2、提前公布季报可能出错的问题,增加了停牌提示。
提示:l、需要有专业财务函数的通达信版本才可以使用。
2、需要下载专业财务数据。
3、本指标提供了季报期、季报、上年年报、同期季报、前年年报等准确基础数据引用,动手能力强需要选股的朋友请自行编写选股公式 。
4、其它的股票软件比如大智慧,因为软件自带函数跟通达信不同,本指标编写完全不同,恕不能一一改写,抱歉 。
安装:
l、新建公式VOL2,在第一行写入 CURRBARSCOUNT,LINETHICK0; 此数据供判断停复牌引用。
2、新建财务公式,写入以下代码:
0,POINTDOT;
季报期3:=IF((MONTH*100+DAY =101) AND (MONTH*100+DAY 401) ,4,IF((MONTH*100+DAY 701) AND (MONTH*100+DAY 331) ,1,IF((MONTH*100+DAY 1001) AND (MONTH*100+DAY 630),2,3)));
季报期:IF(REF(FINVALUE(1),1)=FINVALUE(1),季报期3,IF(IF(MONTH*100+DAY=1231 OR MONTH*100+DAY=930 OR MONTH*100+DAY=630 OR MONTH*100+DAY=331,季报期3+1,季报期3) 4,1,IF(MONTH*100+DAY=1231 OR MONTH*100+DAY=930 OR MONTH*100+DAY=630 OR MONTH*100+DAY=331,季报期3+1,季报期3))),LINETHICK0;
季报期2:=IF(REF(季报期,1)=季报期,0,季报期);
S:=BARSLASTCOUNT(REF(FINVALUE(1),1)=FINVALUE(1))+1;
S2:=IF(S=1,REF(S,1),0);
S3:=SUMBARS(S2 0,5)+1;
SN1:=IF(季报期=1,BARSLAST(季报期2=1),0);
SN2:=IF(季报期=2,BARSLAST(季报期2=2),0);
SN3:=IF(季报期=3,BARSLAST(季报期2=3),0);
SN4:=IF(季报期=4,BARSLAST(季报期2=4),0);
SN11:=IF(SN1 0,0,REF(SN1,1));
SNN1:=SUMBARS(SN11 0,1)+SN11+9;
SN12:=IF(SN2 0,0,REF(SN2,1));
SNN2:=SUMBARS(SN12 0,1)+SN12+9;
SN13:=IF(SN3 0,0,REF(SN3,1));
SNN3:=SUMBARS(SN13 0,1)+SN13+9;
SN14:=IF(SN4 0,0,REF(SN4,1));
SNN4:=SUMBARS(SN14 0,1)+SN14+9;
季报:FINVALUE(1),LINETHICK0;
同期季报:IF(SNN1 S3 AND 季报期=1,REF(季报,SNN1),IF(SNN2 S3 AND 季报期=2,REF(季报,SNN2),IF(SNN3 S3 AND 季报期=3,REF(季报,SNN3),IF(SNN4 S3 AND 季报期=4,REF(季报,SNN4),0)))),LINETHICK0;
DRAWTEXT(FILTER(同期季报=0,30),0,'缺');
SN:=BARSLAST(季报期2=4);
QN:=BARSLAST(SN=0)+REF(SN,BARSLAST(SN=0)+1);
QN1:=BARSLAST(SN=0)+REF(QN,BARSLAST(SN=0)+1);
上年年报:IF(季报期=4,REF(季报,QN),REF(季报,SN)),LINETHICK0;
前年年报:=IF(季报期=4,REF(季报,QN1),REF(季报,QN)),LINETHICK0;
季报营业收入:=FINVALUE(74);
同期营业收入:=IF(SNN1 S3 AND 季报期=1,REF(季报营业收入,SNN1),IF(SNN2 S3 AND 季报期=2,REF(季报营业收入,SNN2),IF(SNN3 S3 AND 季报期=3,REF(季报营业收入,SNN3),IF(SNN4 S3 AND 季报期=4,REF(季报营业收入,SNN4),0))));
季报营业利润:=FINVALUE(86);
同期营业利润:=IF(SNN1 S3 AND 季报期=1,REF(季报营业利润,SNN1),IF(SNN2 S3 AND 季报期=2,REF(季报营业利润,SNN2),IF(SNN3 S3 AND 季报期=3,REF(季报营业利润,SNN3),IF(SNN4 S3 AND 季报期=4,REF(季报营业利润,SNN4),0))));
季报利润总额:=FINVALUE(92);
同期利润总额:=IF(SNN1 S3 AND 季报期=1,REF(季报利润总额,SNN1),IF(SNN2 S3 AND 季报期=2,REF(季报利润总额,SNN2),IF(SNN3 S3 AND 季报期=3,REF(季报利润总额,SNN3),IF(SNN4 S3 AND 季报期=4,REF(季报利润总额,SNN4),0))));
季报净利润:=FINVALUE(95);
同期净利润:=IF(SNN1 S3 AND 季报期=1,REF(季报净利润,SNN1),IF(SNN2 S3 AND 季报期=2,REF(季报净利润,SNN2),IF(SNN3 S3 AND 季报期=3,REF(季报净利润,SNN3),IF(SNN4 S3 AND 季报期=4,REF(季报净利润,SNN4),0))));
季报增长率:IF(季报 =0 AND 同期季报 0,(季报-同期季报)/同期季报*100,IF(同期季报 0 AND 季报 0,100,IF(同期季报 0 AND 季报 0,-100,IF(同期季报=0,0,-100)))),LINETHICK2;
上年增长率:=IF(前年年报 0 AND 上年年报 0,(上年年报-前年年报)/前年年报*100,IF(前年年报 0 AND 上年年报 0,100,IF(前年年报 0 AND 上年年报 0,-100,IF(前年年报=0,0,-100))));
营业收入比:=IF(季报营业收入 0 AND 同期营业收入 0 AND 季报营业收入/同期营业收入 1.2,3,IF(季报营业收入 0 AND 同期营业收入 0 AND 季报营业收入/同期营业收入 1.2,0,IF(季报营业收入 0 AND 同期营业收入 0,2,IF(季报营业收入 0,0,0))));
营业利润比:=IF(季报营业利润 0 AND 同期营业利润 0 AND 季报营业利润/同期营业利润 1.2,3,IF(季报营业利润 0 AND 同期营业利润 0 AND 季报营业利润/同期营业利润 1.2,0,IF(季报营业利润 0 AND 同期营业利润 0,2,IF(季报营业利润 0,0,0))));
利润总额比:=IF(季报利润总额 0 AND 同期利润总额 0 AND 季报利润总额/同期利润总额 1.2,3,IF(季报利润总额 0 AND 同期利润总额 0 AND 季报利润总额/同期利润总额 1.2,0,IF(季报利润总额 0 AND 同期利润总额 0,2,IF(季报利润总额 0,0,0))));
净利润比:=IF(季报净利润 0 AND 同期净利润 0 AND 季报净利润/同期净利润 1.2,3,IF(季报净利润 0 AND 同期净利润 0 AND 季报净利润/同期净利润 1.2,0,IF(季报净利润 0 AND 同期净利润 0,2,IF(季报净利润 0,0,0))));
总分:营业收入比+营业利润比+利润总额比+净利润比,LINETHICK0;
DPR:=CALCSTOCKINDEX('999999','VOL2',1);
JYRS1:=REF(DPR,1)-DPR-1;
TODAY:=ISLASTBAR AND V=0;
JYRS:=IF(TODAY,JYRS1+1,JYRS1);
FP:=JYRS
FPB:=BARSLAST(FP);
DRAWTEXT(FP=1 AND V 0,IF(REF(季报增长率,6)=0,REF(季报,6),REF(季报增长率,6))/4,VARCAT(VARCAT('停',VAR2STR(JYRS,0)),'天复牌')),COLORYELLOW;
DRAWTEXT(FP=1 AND V=0,IF(REF(季报增长率,6)=0,REF(季报,6),REF(季报增长率,6))/3,VARCAT(VARCAT('已停',VAR2STR(JYRS,0)),'天')),COLORYELLOW;
公式打包上传供下载,导入这两个公式即可:
[提示:我导入公式后,测试公式竟然不通过,真的不明白,难道是版本不一样导致?]