Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- 先把报表的网格线绘制出来, 您给的一共有18个项目数据, 为了方便划分区域为20个
- 以 2 * 10 的方式显示出来,
- #0 条目 | 数据 | #10 条目 | 数据
- #1 条目 | 数据 | #11 条目 | 数据
- #2 条目 | 数据 | #12 条目 | 数据
- #3 条目 | 数据 | #13 条目 | 数据
- ...
- #9 条目 | 数据 | #19 条目 | 数据
- 条目与区域的数据看见占用比为 2 : 8 (99 : 399)
- }
- { 先绘制整个大网格 }
- DRAWRECTREL (0, 0, 999, 999, RGB (0,0,10));
- { 绘制子网格 - 竖着把网格切成两半 }
- DRAWRECTREL (500, 0, 500, 999, RGB (255,66,55));
- { 绘制子网格 - 按比例把各自一半区域再次分割 }
- DRAWRECTREL (99, 0, 99, 999, RGB (0,145,55));
- DRAWRECTREL (599, 0, 599, 999, RGB (0,145,55));
- { 绘制子网格 - 水平方向把网格分成10份, 我查了下好像没办法用WHILE, FOR一类的语句, 只能强行输出了 }
- DRAWRECTREL (0, 100, 999, 100, RGB (78, 178, 155));
- DRAWRECTREL (0, 200, 999, 200, RGB (78, 178, 155));
- DRAWRECTREL (0, 300, 999, 300, RGB (78, 178, 155));
- DRAWRECTREL (0, 400, 999, 400, RGB (78, 178, 155));
- DRAWRECTREL (0, 500, 999, 500, RGB (78, 178, 155));
- DRAWRECTREL (0, 600, 999, 600, RGB (78, 178, 155));
- DRAWRECTREL (0, 700, 999, 700, RGB (78, 178, 155));
- DRAWRECTREL (0, 800, 999, 800, RGB (78, 178, 155));
- DRAWRECTREL (0, 900, 999, 900, RGB (78, 178, 155));
- {
- 报表绘制完成, 把文字再预先绘制出来
- 1: 净盈余ROE大于20%,净盈余ROE是比较公司经营效率的唯一可靠的指标。净盈余ROE=净利润/所有者权益(普通股+所有留右收动)。这个指标是扣非后
- 2、流动比率大于2,
- 3、速动比率大于1.5
- 4、资产负债率小于30%
- 5、毛利率大于30%
- 6、主营收入增长率大于10%
- 7、主营利润增长率大于10%
- 8、每股现金流为正
- 9、经营活动产生的现金流净额与净利润的比率为正
- 10、净利润年复合增长率大于15%
- 11、每股货币资金大于1元
- 12、市盈率小于30倍
- 13、市净率小于5倍
- 14、商誉不超过5000万
- 15、每股收益大于0.30元
- 16、总股本不大于5个亿
- 17、年净益率大于6%
- 18、年股息率大于1.1%
- }
- { 首阶输出 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.00 + 0.02, 0, '净盈余ROE'), COLORYELLOW; { 加上一个微末的偏移让他不显示在网格线上 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.10 + 0.02, 0, '流动比率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.20 + 0.02, 0, '速动比率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.30 + 0.02, 0, '资产负债率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.40 + 0.02, 0, '毛利率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.50 + 0.02, 0, '主营收入增长率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.60 + 0.02, 0, '主营利润增长率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.70 + 0.02, 0, '每股现金流'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.01, 0.80 + 0.02, 0, '现流净额净利润比'), COLORYELLOW;
- { 二阶输出 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.00 + 0.02, 0, '净利年复合增长率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.10 + 0.02, 0, '每股货币资金'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.20 + 0.02, 0, '市盈率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.30 + 0.02, 0, '市净率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.40 + 0.02, 0, '商誉'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.50 + 0.02, 0, '每股收益'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.60 + 0.02, 0, '总股本'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.70 + 0.02, 0, '年净益率(%)'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.51, 0.80 + 0.02, 0, '年股息率(%)'), COLORYELLOW;
- { 把昨天写的代码反馈到表格中, 必要时, 写上附加参数报表输出 }
- {
- 1: 净盈余ROE大于20%,净盈余ROE是比较公司经营效率的唯一可靠的指标。净盈余ROE=净利润/所有者权益
- 净利润 / 所有者权益
- 净利润 -> FINANCE(30)
- 所有者权益 -> FINVALUE(72) 查了一下就是股东权益 (引援:HTTP://WWW.ZDCJ.NET/JIAOCHENG/110.HTML)
- }
- 净利润 := FINANCE(30);
- 股东权益 := FINVALUE(72);
- 净盈余ROE := FINANCE(30) / FINVALUE(72) * 100;
- { pos 99. vec 399 划分 data | 净利润 | data | 股东权益 | data }
- { level- 1 2 4 4 }
- { level- 2 2 1 | 3 1 | 3 }
- { 划线 }
- DRAWRECTREL (99 + 40 * 2, 0, 99 + 40 * 2, 100, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 3, 0, 99 + 40 * 3, 100, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 6, 0, 99 + 40 * 6, 100, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 7, 0, 99 + 40 * 7, 100, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 2, 0.02, 0, '净利润'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6, 0.02, 0, '股东权益'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.02, 0, CONST(净盈余ROE)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 3 + 0.01, 0.02, 0, CONST(净利润)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 7 + 0.01, 0.02, 0, CONST(股东权益)), COLORWHITE;
- {
- 2: 流动比率大于2,
- 流动比率 = 流动资产 / 流动负债 (引援:HTTPS://M.DONGAO.COM/CJKS/CJKJSW/201909061146942.SHTML)
- 后面看了下貌似有直接提供的, 试了下有些直接提供的函数结果都是错误的, 不知道为神马...
- 流动资产-> FINANCE(11)
- 流动负债-> FINANCE(15)
- 流动比率-> FINVALUE(159) || FINONE(159)
- }
- 流动资产 := FINANCE(11);
- 流动负债 := FINANCE(15);
- 流动比率 := 流动资产 / 流动负债 * 100;
- { pos 99. vec 399 划分 data | 流动资产 | data | 流动负债 | data }
- { level- 1 2 4 4 }
- { level- 2 2 1 | 3 1 | 3 }
- { 划线 }
- DRAWRECTREL (99 + 40 * 2, 100, 99 + 40 * 2, 200, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 3, 100, 99 + 40 * 3, 200, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 6, 100, 99 + 40 * 6, 200, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 7, 100, 99 + 40 * 7, 200, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 2, 0.12, 0, '流资产'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6, 0.12, 0, '流负债'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.12, 0, CONST(流动比率)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 3 + 0.01, 0.12, 0, CONST(流动资产)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 7, 0.12, 0, CONST(流动负债)), COLORWHITE;
- {
- 3、速动比率大于1.5
- 速动比率 = (流动资产 - 存货)/ 流动负债 (引援:https://zhidao.baidu.com/question/426296639.html)
- 也有直接提供, 我估计跟之前的一样, 依旧不会起作用
- 流动资产-> FINANCE(11)
- 流动负债-> FINANCE(15)
- 存货 -> FINANCE(27)
- 速动比率-> FINVALUE(160) || FINONE(160)
- }
- 存货 := FINANCE(27);
- 速动比率 := (流动资产 - 存货) / 流动负债 * 100;
- { pos 99. vec 399 划分 data | 存货 | data }
- { level- 1 4 2 | 4 }
- { 划线 }
- DRAWRECTREL (99 + 40 * 4, 200, 99 + 40 * 4, 300, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 6, 200, 99 + 40 * 6, 300, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 4 + 0.01, 0.22, 0, '存货'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.22, 0, CONST(速动比率)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6 + 0.01, 0.22, 0, CONST(存货)), COLORWHITE;
- {
- 4、资产负债率小于30%
- 资产负债率 -> FINANCE(9)
- -> FINVALUE(210)
- -> FINONE(210)
- }
- 资产负债率 := FINANCE(9);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.32, 0, CONST(资产负债率)), COLORWHITE;
- {
- 5、毛利率大于30%
- 销售毛利率 -> FINVALUE(202)
- -> FINONE(202)
- }
- 毛利率 := FINVALUE(202);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.42, 0, CONST(毛利率)), COLORWHITE;
- {
- 6、主营收入增长率大于10%
- 营业收入增长率 -> FINVALUE(183)
- -> FINONE(183)
- }
- 主营收入增长率 := FINVALUE(183);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.52, 0, CONST(主营收入增长率)), COLORWHITE;
- {
- 7、主营利润增长率大于10%
- 营业利润增长率 -> FINVALUE(189)
- -> FINONE(189)
- }
- 主营利润增长率 := FINVALUE(189);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.62, 0, CONST(主营利润增长率)), COLORWHITE;
- {
- 8、每股现金流为正
- 这个我只找到了 HTTPS://ZHIDAO.BAIDU.COM/QUESTION/457450752.HTML
- 其他的版本计算公式套不上函数接口
- 提炼一下他用的公式
- 每股现金流 := 经营现金流量 / 流动股本
- 经营现金流量-> FINANCE(25)
- 流动股本 -> FINANCE(7)
- }
- 经营现金流 := FINANCE(25);
- 流动股本 := FINANCE(7);
- 每股现金流 := 经营现金流 / 流动股本;
- { pos 99. vec 399 划分 data | 经营现金流 | data | 流动股本 | data }
- { level- 1 1 5 4 }
- { level- 2 1 2 | 3 1 | 3 }
- { 划线 }
- DRAWRECTREL (99 + 40 * 1, 700, 99 + 40 * 1, 800, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 3, 700, 99 + 40 * 3, 800, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 6, 700, 99 + 40 * 6, 800, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 7, 700, 99 + 40 * 7, 800, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 1, 0.72, 0, '经营现金流'), COLORYELLOW;
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6, 0.72, 0, '流动股'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.005, 0.72, 0, CONST(每股现金流)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 3 + 0.01, 0.72, 0, CONST(经营现金流)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 7, 0.72, 0, CONST(流动股本)), COLORWHITE;
- {
- 9、经营活动产生的现金流净额与净利润的比率为正
- 经营活动产生的现金流量净额 -> FINVALUE (107)
- -> FINONE (107)
- 净利润 -> FINANCE(30)
- }
- 现金流净额 := FINVALUE (107);
- 现金净额净利比 := 现金流净额 / 净利润;
- { pos 99. vec 399 划分 data | 存货 | data }
- { level- 1 4 2 | 4 }
- { 划线 }
- DRAWRECTREL (99 + 40 * 4, 800, 99 + 40 * 4, 900, RGB (78, 178, 155));
- DRAWRECTREL (99 + 40 * 6, 800, 99 + 40 * 6, 900, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 4 + 0.01, 0.82, 0, '现金流净额'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.01, 0.82, 0, CONST(现金净额净利比)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6 + 0.01, 0.82, 0, CONST(现金流净额)), COLORWHITE;
- { ============================================================================================ }
- { 另一面 }
- { ============================================================================================ }
- {
- 10、净利润年复合增长率大于15%
- 净利润复合增长率 = [(现有价值/基础价值)^(1/年数) - 1] X 100%
- (引援:HTTPS://ZHIDAO.BAIDU.COM/QUESTION/1238219334502144539.HTML)
- 年复合增长率, 您没说几年, 那么就算是单年吧
- 那么就是单年利润增长率, 这里我借鉴了此处源码
- (http://www.360doc.com/content/19/0629/10/36715000_845539489.shtml)
- }
- VA1 := FINVALUE(0); { 获取报告期 }
- VA2 := INTPART (VA1 / 10000); { 截获整形部分, 获取报告年数 }
- VA3 := VA1 - VA2 * 10000; { 获取报告MMDD部分 }
- VA4 := IF (VA3 = 1231, VA2, VA2 - 1); { 如果是最后一季度季报, 则以此年为基准 }
- VA5 := FINONE (95, VA4, 1231);
- VA6 := FINONE (95, VA4 - 1,1231);
- VA7 := (VA5 - VA6) / VA6 * 100 - 100;
- 净利复合增长率 := VA7;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.02, 0, CONST(净利复合增长率)), COLORWHITE;
- {
- 11、每股货币资金大于1元
- 每股货币资金没找到具体公式
- 这个货币资金不知道是不是说的就是每股货币资金还是总的货币资金
- 如果是后者的话, 应该是货币资金/总股本
- 货币资金 -> FINVALUE (8)
- -> FINONE (8)
- 总股本(股) -> FINANCE(1)
- }
- 货币资金 := FINVALUE (8);
- 总股本2 := FINANCE(1);
- 股货币资金 := 货币资金 / 总股本2;
- { 划线 }
- DRAWRECTREL (599 + 40 * 4, 100, 599 + 40 * 4, 200, RGB (78, 178, 155));
- DRAWRECTREL (599 + 40 * 6, 100, 599 + 40 * 6, 200, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 + 0.5 * 0.2 + 0.5 * 0.8 / 10 * 4 + 0.01, 0.12, 0, '货币资金'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.12, 0, CONST(股货币资金)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6 + 0.01, 0.12, 0, CONST(货币资金)), COLORWHITE;
- {
- 12、市盈率小于30倍
- 市盈率好几个
- HYSYL -> 所属行业的市盈率
- DYNAINFO(38) -> 静态市盈率
- DYNAINFO(39) -> 动态市盈率
- }
- 市盈率 := HYSYL * 100;
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.22, 0, CONST(市盈率)), COLORWHITE;
- {
- 13、市净率小于5倍
- HYSYL -> 所属行业的市净率
- }
- 市净率 := HYSJL * 100;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.32, 0, CONST(市净率)), COLORWHITE;
- {
- 14、商誉不超过5000万
- 商誉 -> FINVALUE (35)
- -> FINONE (35)
- }
- {0123456789ABCDEF}
- 商誉 := FINVALUE (35);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.42, 0, CONST(商誉)), COLORWHITE;
- {
- 15、每股收益大于0.30元
- 每股收益也有好几个版本不知道用哪个..
- 每股收益 -> FINANCE(33) 每股收益(折算为全年收益),对于沪深品种有效
- -> FINANCE(38) 每股收益(最近一期季报)
- -> FINONE(291) 业绩快报-每股收益
- -> FINVALUE(291) 业绩快报-每股收益
- -> FINONE(1) 基本每股收益
- -> FINVALUE(1) 基本每股收益
- }
- 每股收益 := FINANCE(38);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.52, 0, CONST(每股收益)), COLORWHITE;
- {
- 16、总股本不大于5个亿
- 总股本 -> TOTALCAPITAL 当前总股本
- -> FINANCE(1) 总股本(随时间可能有变化)
- -> FINVALUE (238)
- -> FINONE (238)
- }
- {012345678}
- 总股本 := FINANCE(1);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.62, 0, CONST(总股本)), COLORWHITE;
- {
- 17、年净益率大于6%
- 净资产收益率 = 税后利润/所有者权益 (引援 百度 <<净资产收益率的公式>>)
- 税后利润 -> FINANCE(29)
- 所有者权益 -> FINANCE(30)
- }
- 税后利润 := FINANCE(29);
- 年净益率 := 税后利润 / 股东权益 * 100;
- { pos 599. vec 399 划分 data | 税后利润 | data }
- { level- 1 4 2 | 4 }
- { 划线 }
- DRAWRECTREL (599 + 40 * 4, 700, 599 + 40 * 4, 800, RGB (78, 178, 155));
- DRAWRECTREL (599 + 40 * 6, 700, 599 + 40 * 6, 800, RGB (78, 178, 155));
- { 绘文 }
- DRAWTEXT_FIX (CURRBARSCOUNT = 1, 0.5 + 0.5 * 0.2 + 0.5 * 0.8 / 10 * 4 + 0.01, 0.72, 0, '税后利润'), COLORYELLOW;
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.72, 0, CONST(年净益率)), COLORWHITE;
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.5 * 0.8 / 10 * 6 + 0.01, 0.72, 0, CONST(税后利润)), COLORWHITE;
- {
- 18、年股息率大于1.1%
- 查了一下就是股息率 (引援 HTTPS://BAIKE.BAIDU.COM/ITEM/%E8%82%A1%E6%81%AF%E7%8E%87/3519244?FR=ALADDIN)
- 股息率 -> FINANCE (45)
- }
- 年股息率 := FINANCE (45);
- { 填充结果 }
- DRAWNUMBER_FIX (1, 0.5 + 0.5 * 0.2 + 0.01, 0.82, 0, CONST(年股息率)), COLORWHITE;
Add Comment
Please, Sign In to add comment