接上回:估值之可比公司分析(上)

  • 上回说到,进一步选取合适可比公司为:

股票代码 | 股票名称
600602 | 云赛智联
002373 | 千方科技
300020 | 银江股份
000662 | 天夏智慧

  • 由于大家都是上市公司,也不是特定地为万达信息(300168)估值,选择四家可比公司,就是排排坐吃果果而已。

先对各公司股价和市值做规模上大致的了解

In [1]:
import numpy as np
import pandas as pd
from pandas import DataFrame
import matplotlib
import matplotlib.pyplot as plt
from pylab import * 
from matplotlib.font_manager import *

#显示所有列 
pd.set_option('display.max_columns', None) 
#显示所有行 
pd.set_option('display.max_rows', None) 
#设置value的显示长度为100,默认为50 
pd.set_option('max_colwidth',100)

# 不以科学计数法显示(2f,保留2位小数)
pd.set_option('display.float_format', lambda x: '%.2f' % x) 
In [2]:
df=pd.read_csv('Price_Market_Value.txt', dtype={'Stock':str}).set_index('Stock')
df.plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.sort_index(ascending=False)
Out[2]:
Date Name Price MarketValue(Billion)
Stock
600602 2018-12-07 云赛智联 5.34 7.30
300168 2018-12-07 万达信息 12.67 13.93
300020 2018-12-07 银江股份 7.04 4.62
002373 2018-12-07 千方科技 12.03 17.66
000662 2018-12-07 天夏智慧 7.14 7.80
  • 从上图表看出,2018年12月7日
    • 002373 千方科技,市值最大,17.66亿元
    • 300020 银江股份,市值最低,4.617亿元
    • 300168 万达信息,股价最高,12,67元
    • 600602 云赛智联,股价最低,5.34元

综合主营业务收入比较

In [3]:
stock_pooling=['300168','600602','002373','300020','000662']
df_sales=pd.DataFrame()
for i in stock_pooling:
    file_item=[i,'/',i,'_income_statement.txt']
    file=''.join(file_item)
    df=pd.read_csv(file,index_col='index_date')
    df=df.iloc[:,1].astype(float).to_frame()
    df.columns=[i]
    df_sales=pd.concat([df_sales, df], axis=1, sort=False, join='outer') 
df_sales=df_sales.T.sort_index(ascending=False).T.fillna(0)
df_sales.sort_index(ascending=True,inplace=True) #.plot(kind='line',grid=True, figsize=(10,4), rot=0)
figure, ax=plt.subplots(1, 1, figsize=(16, 8))
x=df_sales.index
y1,y2,y3,y4,y5=df_sales['600602'], df_sales['300168'], df_sales['300020'], df_sales['002373'], df_sales['000662']
ax.plot(x, y1, 'o-') 
ax.plot(x, y2, 'o-') 
ax.plot(x, y3, 'o-') 
ax.plot(x, y4, 'o-') 
ax.plot(x, y5, 'o-') 
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=9,fontsize=15)
plt.tight_layout()
plt.show()
df_sales.T.sort_index(ascending=False).T.sort_index(ascending=False)
Out[3]:
600602 300168 300020 002373 000662
index_date
2018-09-30 311617.00 156756.00 151855.00 450677.00 42796.00
2017-12-31 420992.00 241548.00 194222.00 250426.00 166559.00
2016-12-31 409384.00 207504.00 165530.00 234483.00 127734.00
2015-12-31 299739.00 186856.00 193500.00 154236.00 44599.00
2014-12-31 125632.00 154281.00 231905.00 136072.00 49943.00
2013-12-31 113838.00 121307.00 185466.00 34928.00 50653.00
2012-12-31 120573.00 88474.00 146097.00 69741.00 57682.00
2011-12-31 93674.00 69483.00 102981.00 63887.00 51469.00
2010-12-31 52483.00 49318.00 71304.00 69674.00 46050.00
2009-12-31 56742.00 40847.00 52462.00 70285.00 42809.00
2008-12-31 81695.00 31944.00 34911.00 63648.00 46567.00
2007-12-31 168272.00 30170.00 18825.00 52872.00 52534.00
2006-12-31 109642.00 0.00 11130.00 0.00 47875.00
  • 600602云赛智联,股价最低,但2015、16、17年度的营业额最高。
  • 002373千方科技,2018年3季度的营收远远高于2017年全年营收。
  • 000662天夏智慧,2013、14、15年营业额比较低,除600602云赛智联之外其他公司基本上营业规模比较接近。

综合毛利率比较

In [4]:
stock_pooling=['300168','600602','002373','300020','000662']
df_g=pd.DataFrame()
df_sales=pd.DataFrame()
for i in stock_pooling:
    file_item=[i,'/',i,'_income_statement.txt']
    file=''.join(file_item)
    df=pd.read_csv(file,index_col='index_date')
    df=df.iloc[:,[1,8]]
    df['GPM']=df.apply(lambda x: x[0]-x[1], axis=1)
    df['GPR']=df.apply(lambda x: x[2]/x[0], axis=1)
    df=df.iloc[:,3].to_frame().astype(float)
    df.columns=[i]
    df.index.set_names('index_date', inplace=True)
    if df_g.empty == True:
        df_g = df
    df_g=pd.concat([df,df_g],axis=1, sort=True).fillna(0)
df_g=df_g.T.sort_index(ascending=False)
df_g.drop_duplicates(inplace=True)
df_g=df_g.T
figure, ax=plt.subplots(1, 1, figsize=(16, 8))
x=df_g.index
y1,y2,y3,y4,y5=df_g['600602'], df_g['300168'], df_g['300020'], df_g['002373'], df_g['000662']
ax.plot(x, y1, 'o-') 
ax.plot(x, y2, 'o-') 
ax.plot(x, y3, 'o-') 
ax.plot(x, y4, 'o-') 
ax.plot(x, y5, 'o-') 
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=9,fontsize=15)
plt.tight_layout()
plt.show()    
df_g
Out[4]:
600602 300168 300020 002373 000662
2006-12-31 0.09 0.00 0.22 0.00 0.42
2007-12-31 -0.06 0.29 0.26 0.20 0.36
2008-12-31 0.08 0.31 0.25 0.20 0.33
2009-12-31 0.15 0.32 0.25 0.21 0.27
2010-12-31 0.14 0.32 0.28 0.19 0.25
2011-12-31 0.17 0.30 0.26 0.28 0.19
2012-12-31 0.15 0.31 0.26 0.18 0.13
2013-12-31 0.15 0.30 0.24 0.21 0.17
2014-12-31 0.16 0.32 0.26 0.29 0.14
2015-12-31 0.20 0.40 0.25 0.32 0.11
2016-12-31 0.23 0.39 0.26 0.31 0.36
2017-12-31 0.18 0.39 0.27 0.28 0.42
2018-09-30 0.18 0.40 0.26 0.33 0.50
  • 600602云赛智联股价低,大概就是因为毛利率从一直比较低的缘故吧(初步判断基于此)。
  • 而营业额偏低的000662天夏智慧,2016年毛利率大幅上升,2017年和2018年毛利率继续上扬。这种现象多少有些不正常:智慧城市业务的毛利率能够达到50%?随着分析的深入,看看后面能不能解开这个疑团。

EBIT比较

In [5]:
stock_pooling=['300168','600602','002373','300020','000662']
df_e=pd.DataFrame()
df_sales=pd.DataFrame()
for i in stock_pooling:
    file_item=[i,'/',i,'_EBIT.txt']
    file=''.join(file_item)
    df=pd.read_csv(file,index_col='index_date')
    df=df.iloc[:,5].to_frame().astype(float)
    df.columns=[i]
    df.index.set_names('index_date', inplace=True)
    if df_e.empty == True:
        df_e = df
    df_e=pd.concat([df,df_e],axis=1, sort=True).fillna(0)
df_e=df_e.T.sort_index(ascending=False)
df_e.drop_duplicates(inplace=True)
df_e=df_e.T
figure, ax=plt.subplots(1, 1, figsize=(16, 8))
x=df_e.index
y1,y2,y3,y4,y5=df_e['600602'], df_e['300168'], df_e['300020'], df_e['002373'], df_e['000662']
ax.plot(x, y1, 'o-') 
ax.plot(x, y2, 'o-') 
ax.plot(x, y3, 'o-') 
ax.plot(x, y4, 'o-') 
ax.plot(x, y5, 'o-') 
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=9,fontsize=15)
plt.tight_layout()
plt.show()    
df_e
Out[5]:
600602 300168 300020 002373 000662
index_date
2006-12-31 -4327.00 0.00 1145.00 0.00 9625.00
2007-12-31 -52886.00 2945.00 2665.00 4163.00 9181.00
2008-12-31 -27401.00 3245.00 4266.00 4398.00 4685.00
2009-12-31 -14739.00 4914.00 6110.00 5079.00 2403.00
2010-12-31 -5522.00 6236.00 7949.00 2550.00 -4758.00
2011-12-31 -4520.00 8456.00 10377.00 1268.00 -6928.00
2012-12-31 -4801.00 11374.00 14350.00 -5613.00 -9186.00
2013-12-31 -5122.00 14780.00 17941.00 -10154.00 -4106.00
2014-12-31 -6134.00 25282.00 26375.00 23689.00 -2607.00
2015-12-31 5640.00 34485.00 17854.00 29674.00 771.00
2016-12-31 27509.00 35558.00 16473.00 42174.00 38442.00
2017-12-31 13587.00 45518.00 23262.00 38014.00 58238.00
2018-09-30 28373.00 31567.00 22516.00 78085.00 16158.00
  • EBIT计算公式产生了多种变换形式,譬如:
    • = 毛利 - 营业费用 - 管理费用
    • = 净利润 + 所得税 + 利息
    • = 经营利润 + 投资收益 + 营业外收入 - 营业外支出 + 以前年度损益调整
  • 基于估值的本源是针对核心主营业务来评估企业的发展潜力,所以这里采用 主营业务毛利 - 营业税金及附加 - 营业费用 - 管理费用 的计算方法,或者说是使用了“财务费用”作为“利息费用”的替代。
  • 002373千方科技的EBIT一如其主营业务收入的增长势头,截至2018年3季度,又跃升了一个台阶。

分类主营业务收入、环比增长率、毛利率

  • 备注:分类数据截止2018年6月份

600602 云赛智联

In [6]:
df=pd.read_csv('600602/600602_category_sales_pivot.txt', index_col='index_date')
df1=df.iloc[:,[3,4,5]]
df1.columns=['others','intelligence','software']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df1.index
y1,y2, y3 = df1['others'], df1['intelligence'], df1['software']
ax.stackplot(x, [y1, y2, y3], labels=['others', 'intelligence', 'software'])
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df3=df.iloc[:,[3,4,5]]
df3=df3.pct_change()
df3.columns=['others_growth_rate','intelligence_growth_rate','software_growth_rate']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df3.index[0:]
y1,y2, y3 = df3['others_growth_rate'][0:], df3['intelligence_growth_rate'][0:], df3['software_growth_rate'][0:]
y4=[0]*len(df3['others_growth_rate'][0:])
ax.plot(x, y1, 'r-') #, labels=['software_gpr']) 
ax.plot(x, y2, 'g-') #, labels=['services_gpr']) 
ax.plot(x, y3, 'b-') #, labels=['integration_gpr']) 
ax.plot(x, y4, 'k--')
ax.set_title('Growth Rate' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df2=df.loc[:, ['others_gpr','intelligence_gpr','software_gpr']]
df2.columns=['others_gpr','intelligence_gpr','software_gpr']
df2
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df2.index
y1,y2, y3 = df2['others_gpr'], df2['intelligence_gpr'], df2['software_gpr']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'k-')
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df.iloc[:,[3,4,5]].sort_index(ascending=False)
Out[6]:
sales_others sales_intelligence sales_software
index_date
2017-12-31 62958.00 224275.00 133757.00
2016-12-31 99014.00 200695.00 109674.00
2015-12-31 76159.00 131761.00 91819.00
2014-12-31 104129.00 21503.00 0.00
2013-12-31 113838.00 0.00 0.00
2012-12-31 120573.00 0.00 0.00
2011-12-31 93674.00 0.00 0.00
2010-12-31 52482.00 0.00 0.00
2009-12-31 52719.00 0.00 0.00
2008-12-31 77456.00 0.00 0.00
2007-12-31 162763.00 0.00 0.00
2006-12-31 88393.00 0.00 0.00
2005-12-31 207148.00 0.00 0.00
2003-12-31 408072.00 0.00 0.00
2002-12-31 336228.00 0.00 0.00
2001-12-31 371207.00 0.00 0.00
  • 600602云赛智联上市以来,主营业务的变化情况如下:
    • 1986年12月25日,上海真空电子器件股份有限公司成立,公司A股于1990年12月19日在上海证券交易所挂牌交易,B股于1992年2月21日在上海证券交易所挂牌交易。上市之初,公司主营业务为真空电子器件及其应用产品、配件的生产和销售,主要产品有:黑白、彩色显像管及其主要配套件。
    • 2005年底,公司在原控股股东上海广电(集团)有限公司的支持下实施了资产重组,剥离了迅速衰退的传统显示器件业务,公司的主营业务向新型平板显示器件业务全面转型,重组后公司的主营业务为液晶、等离子及其他新型平板显示器件及其产业链。
    • 2009年,原控股股东上海广电(集团)有限公司与上海仪电控股(集团)公司(现更名为上海仪电(集团)有限公司)签订了《股份转让协议》,上海广电(集团)有限公司将其持有的公司352,742,238股A股股份转让给仪电集团,实施重大资产重组,剥离了TFT-LCD液晶面板及上游业务。
    • 2010年起,公司进行战略调整,加快建设消费类电子产业。
    • 2012年,公司明确了消费电子、特殊电子两大产业为主营业务。
    • 2013年,公司进入智能安防领域,形成 消费电子特殊电子智能安防 三大产业为主营业务。
    • 2014年,公司明确以 智能安防新型显示特殊电子和智慧校园产业 为公司主营业务。
    • 2015年,报告期内,公司经过重大资产重组,基本完成在智慧城市产业链的布局,公司主要业务为基于物联网、云计算、大数据技术为基础的,面向城市智慧化领域的三大业务板块,即智能产品“基础”板块、云计大数据“平台”板块、行业解决方案“应用”板块,以支撑公司重大资产重组后的战略定位和战略目标的实现。2015年,公司进行了重大资产重组,本次重大资产重组的方案由上市公司资产出售、发行股份购买资产两部分组成。公司将持有的真空显示100.00%股权、电子印刷100.00%股权出售至仪电资产。公司以重大资产重组事项的董事会决议公告日前120个交易日股票交易均价的90%即7.02元/股的发行价格向云赛信息非公开发行股票购买南洋万邦54.50%股权、塞嘉电子40.00%股权、信息网络73.30%股权、科技网络80.00%股权、卫生网络49.00%股权和宝通汎球100.00%股权,向朱正文等13名自然人非公开发行股票购买南洋万邦45.50%股权,向塞嘉设备、乾钧投资及宋来珠等2名自然人非公开发行股票购买塞嘉电子60.00%股权,向仪电电子集团非公开发行股票购买科学仪器81.36%股权。注入资产业务涵盖智慧医疗、智慧检测/智慧监测、智慧建筑、智慧政务等领域的行业应用解决方案,并覆盖了云计算平台和智慧城市核心软硬件线下渠道。
    • 2016年,公司主营业务特点是:
      • 智能产品“基础”板块:显示产品领域以产品销售、配套安装、工程建设为主的盈利模式,特殊电子产品领域为高进入门槛的涉密领域。
      • 云计算大数据“平台”板块:IDC数据中心业务领域:基础租赁业务、IDC增值业务、云计算服务,均以出租计算、带宽、空间、服务资源收取租金方式盈利。
      • 软件服务领域:主要以软件产品代理销售、软件系统部署定制化开发、软件产品技术培训、技术服务获取业务收入。
      • 行业解决方案“应用”板块:主要经营模式为产品销售、工程实施、系统集成项目,现正由传统的“建设-交付”模式向“建设-开发-运营”模式转变。盈利模式主要为产品收入,工程收入,项目实施收入,该类业务特点是项目投入加大、回收期延长,项目占用资金和应收账款等也相应增加。
      • 战略布局:形成城市智慧化建设全产业链布局,打造综合解决方案。努力实现对智慧城市行业三大层次的覆盖:以仪器仪表、监控设备、传感设备为主的基础感知层;以云计算大数据为核心的平台层;以及囊括智慧建筑、平安城市、智慧检测/智慧监测、智慧政务、智慧教育等领域的应用层。
    • 2017年,公司主营业务特点是:
      • 云计算大数据“平台”板块:
        • (1)数据中心相关业务领域:IDC基础及增值业务、互联网接入、VPN业务、IaaS业务等,以出租计算、带宽、存储等服务资源收取租金方式盈利;
        • (2)IT解决方案及云服务领域:主要通过为政企客户提供IT解决方案获得收入,业务包括,通用软件产品销售、部署、定制化开发、技术培训等,各类云服务(云评估与规划、云迁移与部署、云运营与安全),自主研发的云管平台销售及相关运维服务等。
      • 行业解决方案“应用”板块:主要经营模式为系统集成项目实施与软硬件产品销售。
        • (1)智能安防,通过视频监控、公广会议、门禁周界、智能停车场等子系统,结合自主研发的公广应急管理、视觉综合分析及云计算大数据等软件平台,广泛应用于机场、码头、核电、学校、工厂等领域,以智能化手段,科学而有效地保障了城市安全;
        • (2)检测溯源,基于各类检测仪器,通过自建的平台,如餐厨废弃油脂管理系统、食品安全检测网格化管理系统、食品安全信息追溯平台、河道水质在线监测设施信息系统等,确保了食品与水质的安全;
        • (3)智慧教育,“线上线下”业务双管齐下,“线下”借助信息化手段建设数字化、平安绿色的校园,“线上”通过自主研发的在线培训平台(上海高中名校慕课平台、白玉兰远程教育网等)提供网上教育与培训。
      • 智能产品“基础”板块:
        • (1)显示产品领域以产品销售、配套安装、工程建设为主的盈利模式,正在往平台运营、软硬一体终端综合服务方式转型;
        • (2)检测仪器领域拥有“棱光”、“雷磁”、“上平”、“申光”等国内知名品牌,经营模式主要是为市场提供各类科学仪器产品的销售;
        • (3)特殊电子产品领域为门槛较高的军工领域,主要经营模式为产品销售与项目实施。
  • 从2014年开始通过资产重组进行主营业务转型,从图中可以看到,2015、16、17年的智慧城市营业额大幅提高。但2015年软件业务环比增长率系因为资产重组导致极高。在进行3年复合增长率计算上,该因素应予以剔除。
  • 2015年至2017年,智慧城市业务的毛利率,比较平稳地保持在20%左右。反而是业务量较低的传统业务毛利率在2016年相对较高。
  • 其他业务,包括彩管,显示,CRT,机顶盒,电子,雷达,罩,贸易,商品,其他,工程,加工,教育,物业,以及内部交易抵消等,这类业务营收占比相对较小。
  • 软件业务包括IDC和软件开发,智慧民生包括智能类产品业务。这类业务从2014年开始启动,且呈逐年增加之势。
  • 总体来看,该公司业务与硬件结合较多。软件开发应该基本上也属于集成(硬件)为主。这应是与300168万达信息有较大差别的地方。

300168 万达信息

In [7]:
df=pd.read_csv('300168/300168_category_sales_pivot.txt', index_col='index_date')
df1=df.iloc[:,[3,4,5]]
df1.columns=['software','services','integration']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df1.index
y1,y2, y3 = df1['software'], df1['services'], df1['integration']
ax.stackplot(x, [y1, y2, y3], labels=['software', 'services', 'integration'])      # 其中[]可以省略 
# ax.set_xlabel("Year-Month-Date")   # 设定x轴的标签
# ax.set_ylabel("Sales")   # 设定y轴的标签
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df3=df.iloc[:,[3,4,5]]
df3=df3.pct_change()
df3.columns=['software_growth_rate','services_growth_rate','integration_growth_rate']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df3.index[0:-1]
y1,y2, y3 = df3['software_growth_rate'][0:-1], df3['services_growth_rate'][0:-1], df3['integration_growth_rate'][0:-1]
y4=[0]*len(df3['software_growth_rate'][0:-1])
ax.plot(x, y1, 'r-') #, labels=['software_gpr']) 
ax.plot(x, y2, 'g-') #, labels=['services_gpr']) 
ax.plot(x, y3, 'b-') #, labels=['integration_gpr']) 
ax.plot(x, y4, 'k--')
ax.set_title('Growth Rate' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df2=df.loc[:, ['software_gpr','services_gpr','integration_gpr']]
df2.columns=['software_gpr','services_gpr','integration_gpr']
df2
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df2.index
y1,y2, y3 = df2['software_gpr'], df2['services_gpr'], df2['integration_gpr']
#ax.plot(x, [y1, y2, y3], labels=['software_gpr', 'services_gpr', 'integration_gpr'])      # 其中[]可以省略 
ax.plot(x, y1, 'r-') #, labels=['software_gpr']) 
ax.plot(x, y2, 'g-') #, labels=['services_gpr']) 
ax.plot(x, y3, 'k-') #, labels=['integration_gpr']) 
# ax.set_xlabel("Year-Month-Date")   # 设定x轴的标签
# ax.set_ylabel("Sales")   # 设定y轴的标签
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df.iloc[:,[3,4,5]].sort_index(ascending=False)
Out[7]:
sales_software sales_services sales_integration
index_date
2018-06-30 41571.00 21360.00 38061.00
2017-12-31 104087.00 38837.00 98625.00
2016-12-31 100274.00 35960.00 71269.00
2015-12-31 76019.00 27230.00 83607.00
2014-12-31 56750.00 18566.00 78965.00
2013-12-31 36592.00 15625.00 69090.00
2012-12-31 38094.00 12528.00 37852.00
2011-12-31 28089.00 11333.00 30060.00
2010-12-31 21753.00 9895.00 17670.00
2009-12-31 21124.00 7314.00 12410.00
2008-12-31 13183.00 8235.00 10526.00
2007-12-31 12456.00 4275.00 13438.00
  • 2017年,公司在以民生政务为核心的智慧城市领域,以软件和服务为基础,业务涵盖卫生健康、政务服务、市场监管、社会保障、平安城市等各行业基础信息系统建设与城市信息资源整合,以及市民云、健康云等城市公共平台运营。包括:
    • 1、卫生健康
    • 2、政务服务
    • 3、市场监管
    • 4、民生保障
    • 5、平安城市
    • 6、医疗保险及医疗保障
    • 7、云平台运营
  • 主要业务:智慧城市领域各行业基础信息系统建设与城市信息资源整合,以及市民云、健康云等城市公共平台运营。
  • 产品与服务:

    • 智慧医院系列、智慧卫生系列、智慧健康系列、智慧社区系列产品
    • 网上办事大厅、社区服务系统
    • 工商行政管理信息化
    • 上海自贸区市场监管系统
    • 人社部持卡人员基础信息库和业务协同平台
    • 公共安全和城市交通、数字侦查和智慧办案、社会维稳和预防犯罪等综合解决方案
    • 医疗服务综合控费和医保基金在线结算系统(医保控费、医院控费和DRGs临床控费)
    • 健康云服务、医药云服务、市民云服务
  • 2016年前5大客户

序号 客户名称 销售额(元) 占年度销售总额比例
1 中国电信股份有限公司自贡分公司 80,255,239.29 4.30%
2 中国电信股份有限公司攀枝花分公司 70,534,916.50 3.77%
3 上海市人力资源和社会保障局 63,647,893.40 3.41%
4 上海市徐汇区人民政府机关事务管理局 45,971,619.60 2.46%
5 上海市税务局 39,636,180.65 2.12%
合计 -- 300,045,849.44 16.06%
  • 2017年前5大客户
序号 客户名称 销售额(元) 占年度销售总额比例
1 雅安市公安局 216,152,753.16 8.95%
2 上海市工商行政管理局(含区县市场监管局) 95,069,201.67 3.94%
3 湖南东旭德来电子科技有限公司 77,469,231.01 3.21%
4 重庆市人力资源和社会保障局 50,368,295.27 2.09%
5 英迈电子商贸(上海)有限公司 50,321,729.54 2.07%
合计 -- 489,381,210.65 20.26%
  • 300168万达信息运营服务的营业额相对占比较小,软件和集成业务的收入逐年增长。但集成收入增长率从2013年开始逐年下降,2017年出现反弹。
  • 集成服务毛利率从2012年开始逐步提高,但也仅维持在20%左右,而软件业务和运营服务业务的毛利率基本维持在50%左右(2017年成本数据缺失,只能计算出综合毛利率)。
  • 初步判断,300168万达信息股价最高,是因为主营业务规模较大,且毛利率较高的缘故。目前仅仅是初步判断,需要根据进一步分析予以确认。

300020 银江股份

In [8]:
df=pd.read_csv('300020/300020_category_sales_pivot.txt', index_col='index_date')
df1=df.iloc[:,[4,5,6,7]]
df1.columns=['others','traffic','medication','smart_city']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df1.index
y1,y2,y3,y4 = df1['others'], df1['traffic'], df1['medication'], df1['smart_city']
ax.stackplot(x, [y1, y2, y3, y4], labels=['others', 'traffic', 'medication', 'smart_city'])      # 其中[]可以省略 
# ax.set_xlabel("Year-Month-Date")   # 设定x轴的标签
# ax.set_ylabel("Sales")   # 设定y轴的标签
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df3=df.iloc[:,[4,5,6,7]]
df3=df3.pct_change()
df3.columns=['others_growth_rate','traffic_growth_rate','medication_growth_rate','smart_city_growth_rate']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df3.index
y1,y2, y3, y4= df3['others_growth_rate'], df3['traffic_growth_rate'], df3['medication_growth_rate'], df3['smart_city_growth_rate']
y5=[0]*len(df3['others_growth_rate'])
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'm-') 
ax.plot(x, y4, 'b-') 
ax.plot(x, y5, 'k--')
ax.set_title('Growth Rate' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df2=df.loc[:, ['others_gpr','traffic_gpr','medication_gpr','smart_city_gpr']]
df2.columns=['others_gpr','traffic_gpr','medication_gpr','smart_city_gpr']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df2.index
y1,y2, y3, y4 = df2['others_gpr'], df2['traffic_gpr'], df2['medication_gpr'], df2['smart_city_gpr']
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'k-') 
ax.plot(x, y4, 'b-') 
# ax.set_xlabel("Year-Month-Date")
# ax.set_ylabel("Sales")
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df.iloc[:,[4,5,6,7]].sort_index(ascending=False)
Out[8]:
sales_others sales_traffic sales_medication sales_smart_city
index_date
2018-06-30 768.00 49777.00 15446.00 42173.00
2017-12-31 1554.00 89886.00 27211.00 75572.00
2016-12-31 1758.00 69466.00 23114.00 71192.00
2015-12-31 1161.00 82306.00 17700.00 92333.00
2014-12-31 2419.00 66277.00 30220.00 132990.00
2013-12-31 1603.00 55212.00 23194.00 105457.00
2012-12-31 43715.00 55733.00 26875.00 19774.00
2011-12-31 28041.00 44421.00 18384.00 12137.00
2010-12-31 28079.00 32332.00 10853.00 0.00
2009-12-31 22726.00 20948.00 8787.00 0.00
  • 300020银江股份,在2013年年报中声称:竞争加剧带来的毛利率降低风险:由于市场竞争激烈,项目毛利率有可能呈下降趋势。此外公司承接的项目中包含人工费用成本,工程原材料、工程设备的采购,项目施工进行过程中原材料及设备价格的波动可能影响项目毛利和公司的业绩。但实际上公司毛利率并未出现明显上升或下降。只是其他业务的毛利率在2013年出现大幅上扬。但其他业务营业额极小。所以影响并不会大(备注:2014年分类成本数据缺失所以毛利率为1)。
  • 2913年年报中声称的智慧城市总包业务模式的风险:智慧城市建设主导者是城市管理者即地方政府或政府有关部门,而受益者则是城市的主体即城市中的企业和市民。由于智慧城市总包项目投资总金额偏大、项目建设周期较长、项目所涉及的地方政府下属部门或分支机构较多、智慧城市总包合同仅为较笼统的框架性协议。经营中先后签订“智慧章丘”(2.6亿元)、“智慧莱西”(5亿元)智慧城市总包项目。实现产业链并购,快速切入轨道交通领域。完成对北京亚太安讯科技股份有限公司的并购,公司全面涉足轨道交通业务,实现“智慧大交通”战略规划。
  • 从图中可以看出智慧城市2013年和2014年有较大增长。但此后有逐年下降趋势。而智慧交通在小幅波动中呈稳步增长态势。
  • 公司主要研发项目包括:银江智能交通指挥调度系统、银江公共交通综合管理应用服务系统、银江医院智能化临床信息系统、银江区域医疗卫生信息化平台系统、面向交通出行服务的互联网及大数据分析应用、面向医疗健康管理的互联网及大数据分析应用、银江智慧城市规划设计等。
  • 该公司主营业务营业额在2015年和2016年有较大萎缩,2017年出现回升,主要得益于智慧交通业务的增长。智慧交通的毛利率维持在30%左右,而智慧城市业务毛利率仅维持在20%左右。智慧医疗达35%左右,但智慧医疗营业规模绝对额偏小。
  • 截止2017年度报告期末,公司累计与33个城市签订智慧城市框架合作协议。公司业务模式以招投标项目为主,PPP等项目模式为辅。公司主要产品包括城市级交通指挥中心管控平台及各应用子系统、城市级区域医疗健康信息平台及各应用子系统、城市级司法行政电子政务平台及各应用子系统,以及运用“互联网+人工智能”打造的城市级民生服务大数据平台及各应用子系统。报告期内,公司继续推进智慧城市产业生态圈建设,公司及产业基金对外投资了亿邦股份(区块链领域)、万朋教育(智慧教育领域)、亦童科技(智慧医疗领域)等3个项目。
  • 2017年度研发投入项目

    1、城市级交通信号云控制关键技术研发与应用
    2、银江城市公共信息服务平台
    3、指挥通
    4、交通宝
    5、Enloop大数据共性技术平台
    6、司法行政智能辅助解决方案
    7、基于医疗信息智能挖掘与服务的云计算软件
    8、智慧医疗大数据分析平台
    9、物联网AP
    10、智慧水务物联网应用及大数据服务平台

002373 千方科技

In [9]:
df=pd.read_csv('002373/002373_category_sales_pivot.txt', index_col='index_date')
df
df1=df.iloc[:,[4,5,6,7]]
df1.columns=['product_sales','others','software','integration']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df1.index
y1,y2,y3,y4 = df1['product_sales'], df1['others'], df1['software'], df1['integration']
ax.stackplot(x, [y1, y2, y3, y4], labels=['product_sales', 'others', 'software', 'integration'])
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df3=df.iloc[:,[4,5,6,7]]
df3=df3.pct_change()
df3.columns=['product_sales_growth_rate','others_growth_rate','software_growth_rate','integration_growth_rate']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df3.index
y1,y2, y3, y4= df3['product_sales_growth_rate'], df3['others_growth_rate'], df3['software_growth_rate'], df3['integration_growth_rate']
y5=[0]*len(df3['product_sales_growth_rate'])
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'm-') 
ax.plot(x, y4, 'b-') 
ax.plot(x, y5, 'k--')
ax.set_title('Growth Rate' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df2=df.loc[:, ['product_sales_gpr','others_gpr','software_gpr','integration_gpr']]
df2.columns=['product_sales_gpr','others_gpr','software_gpr','integration_gpr']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df2.index
y1,y2, y3, y4 = df2['product_sales_gpr'], df2['others_gpr'], df2['software_gpr'], df2['integration_gpr']
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'k-') 
ax.plot(x, y4, 'b-') 
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df.iloc[:,[4,5,6,7]].sort_index(ascending=False)
Out[9]:
sales_product_sales sales_others sales_software sales_integration
index_date
2018-06-30 188454.00 832.00 14969.00 83226.00
2017-12-31 47248.00 4704.00 51879.00 146595.00
2016-12-31 67761.00 9412.00 33929.00 123382.00
2015-12-31 24870.00 13682.00 18530.00 97154.00
2014-12-31 11995.00 349.00 16944.00 106784.00
2013-12-31 0.00 109.00 9735.00 25084.00
2012-12-31 0.00 100.00 17446.00 52195.00
2011-12-31 0.00 2.00 19065.00 44820.00
2010-12-31 0.00 0.00 14521.00 55129.00
2009-12-31 0.00 0.00 11286.00 58955.00
2008-12-31 0.00 0.00 9800.00 53509.00
2007-12-31 0.00 0.00 7367.00 44975.00
  • 002373千方科技2013年6月开始筹划通过重大资产置换及发行股份购买资产方式实施重大资产重组,该重组经中国证监会并购重组审核委员会2014年第12次并购重组委工作会议审核并获得有条件通过。重组完成后公司的主营业务变更为提供智能交通全面解决方案、出行信息服务和智慧城市建设,公司资产规模收入规模、净利润水平将明显增加,每股收益显著提升。
  • 2014年在智能交通领域形成完整的产业链,形成“城市智能交通”、“高速公路智能交通”与“综合交通信息服务”三大智能交通业务板块。目前国内高速公路智能交通系统集成商多达几十家,其中,国外厂商基本上已经退出竞争,较有影响力的厂商均为国内厂商,包括紫光捷通、安徽皖通科技股份有限公司、亿阳信通股份有限公司和中海网络科技股份有限公司等,占据了相对较多的市场空间。

  • 2014年公司前5大客户资料

序号 客户名称 销售额(元) 占年度销售总额比例
1 山东高速集团四川乐自公路有限公司 107,023,294.90 7.87%
2 宁波穿山疏港高速公路有限公司 103,500,000.00 7.61%
3 云南石锁高速公路建设指挥部 72,372,121.95 5.32%
4 湖南省吉怀高速公路建设开发有限公司 62,704,502.00 4.61%
5 云南锁蒙高速公路有限公司 61,423,278.93 4.51%
合计 -- 407,023,197.78 29.91%
  • 2017年报告期内,公司启动重大资产重组并购浙江宇视科技有限公司,宇视科技是全球领先的视频监控产品及解决方案供应商,主要从事视频监控产品的研发、生产、销售及服务。公司正式提出“一体两翼”的发展战略,即将“一体——产品研发、系统集成和运营服务三大能力”结合并不断创新,持续拓展“两翼——智慧交通和智慧安防”两大业务领域,赋能智慧交通、智慧安防行业的创新发展。
  • 2017年公司前5大客户资料
序号 客户名称 销售额(元) 占年度销售总额比例
1 杭新景高速公路(衢州段)工程建设指挥部 123,628,351.46 4.94%
2 甘肃省路桥建设集团有限公司 85,765,268.00 3.42%
3 山东高速集团有限公司 78,158,716.19 3.12%
4 青海地方铁路建设投资有限公司 60,879,613.76 2.43%
5 甘肃省高速公路管理局 56,114,242.89 2.24%
合计 -- 404,546,192.30 16.15
  • 2018年上半年,公司中标额达到历史最好水平,既包括东部的新建和改扩建公路智慧交通项目,也包括中西部新建和改建提升项目,项目单一中标金额也有很大提升,其中“济南至青岛高速公路改扩建工程机电工程施工JQJDSG-1标段”2.29亿元、“广佛肇高速公路广州石井至肇庆大旺段工程佛山段第S7标段机电工程”1.3亿元、“广东省龙川至怀集公路(连平至英德段)机电工程施工JD6标段”1.04亿元、厦蓉高速漳州天宝至龙岩蛟洋改扩建项目9,741万元、四川汶川至马尔康高速公路项目机电工程施工JD11标段8,720万元、京藏高速改扩建工程望远至红寺堡段机电工程6,407万元等项目,中标额业内领先。报告期内,公司中标惠州市(TOCC交通综合运行协调与应急指挥中心)项目0.99亿元,也是今年以来最大的TOCC招标项目,反应了公司在TOCC领域的领先地位。

000662 天夏智慧

In [10]:
df=pd.read_csv('000662/000662_category_sales_pivot.txt', index_col='index_date')
df1=df.iloc[:,[4,5,6,7]]
df1.columns=['others','cosmetics','integration','medicine']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df1.index
y1,y2,y3,y4 = df1['others'], df1['cosmetics'], df1['integration'], df1['medicine']
ax.stackplot(x, [y1, y2, y3, y4], labels=['others', 'cosmetics', 'integration', 'medicine'])
ax.set_title('Sales' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df3=df.iloc[:,[4,5,6,7]]
df3=df3.pct_change()
df3.columns=['others_growth_rate','cosmetics_growth_rate','integration_growth_rate','medicine_growth_rate']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df3.index[0:]
y1,y2, y3, y4= df3['others_growth_rate'][0:], df3['cosmetics_growth_rate'][0:], df3['integration_growth_rate'][0:], df3['medicine_growth_rate'][0:]
#y5=[0]*len(df3['others_growth_rate'][0:-1])
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'm-') 
ax.plot(x, y4, 'b-') 
#ax.plot(x, y5, 'k--')
ax.set_title('Growth Rate' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()

df2=df.loc[:, ['others_gpr','cosmetics_gpr','integration_gpr','medicine_gpr']]
df2.columns=['others_gpr','cosmetics_gpr','integration_gpr','medicine_gpr']
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=df2.index
y1,y2, y3, y4 = df2['others_gpr'], df2['cosmetics_gpr'], df2['integration_gpr'], df2['medicine_gpr']
ax.plot(x, y1, 'r-') 
ax.plot(x, y2, 'g-') 
ax.plot(x, y3, 'k-') 
ax.plot(x, y4, 'b-') 
ax.set_title('GPR' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df.iloc[:,[4,5,6,7]].sort_index(ascending=False)
Out[10]:
sales_others sales_cosmetics sales_integration sales_medicine
index_date
2018-06-30 0.00 0.00 40561.00 0.00
2017-12-31 1254.00 3800.00 157750.00 3755.00
2016-12-31 508.00 16943.00 97868.00 12415.00
2015-12-31 281.00 16529.00 0.00 27789.00
2014-12-31 774.00 21722.00 0.00 27447.00
2013-12-31 400.00 23658.00 0.00 26594.00
2012-12-31 1037.00 32271.00 0.00 24374.00
2011-12-31 597.00 30305.00 0.00 20567.00
2010-12-31 573.00 25953.00 0.00 19524.00
2009-12-31 413.00 27133.00 0.00 15263.00
2008-12-31 1132.00 30820.00 0.00 14616.00
2007-12-31 1466.00 45417.00 0.00 5651.00
2006-12-31 1825.00 46016.00 0.00 0.00
2005-12-31 3380.00 41373.00 0.00 0.00
2004-12-31 3837.00 38188.00 0.00 0.00
2003-12-31 4478.00 35103.00 0.00 0.00
2002-12-31 4626.00 20026.00 0.00 0.00
  • 000662 2015年,索芙特公司进行重组,收购杭州天夏科技集团有限公司100%股权,更名为天夏智慧。其发展战略为:公司认为智慧城市产业具备良好的外部发展环境与政策支持,且多为轻资产的知识密集型企业,具有巨大市场与强劲发展动力,具备未来快速成长前景。为此,公司拟通过收购兼并实现外延式发展,可望通过拓展在智慧城市产业领域的业务,新增智慧城市基础软件平台及系统集成建设技术服务业务,致力于发挥该行业协同发展的效应,形成公司开拓智慧城市产业相关业务的可行路径,初步实现公司转型发展的战略,形成公司业绩的新增长点,为公司将来退出化妆品行业奠定坚实的基础。公司非公开发行股票方案于2016年2月2日获得中国证监会的核准通过并于2016年4月7日实施完毕。根据该方案公司购买杭州天夏科技集团有限公司100%股权。
  • 公司主要产品包括数据产品、公共平台系统、行业应用软件系列等。2018年上半年实现营业收入4.06亿元,同比增加3.02%。从图中发现,半年度营收未达上年一半,同比却增长3.02%,说明全年实现营收(计入账簿)主要集中在下半年。
  • 在2018年3月14日至2018年9月13日期间,以资金总额不超过人民币40,000万元,通过二级市场以集中竞价交易方式回购公司部分社会公众股,回购价格不超过人民币16.50元/股,本次回购的股份拟用于股权激励。截止2018年9月13日,公司本次回购期限届满并完成回购。
  • 备注:000662天夏智慧实际控制人通过资本运作实现对上市公司的控制,后续分析会发现,其激进的销售策略导致应收账款巨增,不排除后续有进一步资本运作的动作。所以其主营业务的稳定性成疑。

现金流

600602 云赛智联

In [11]:
dfcash_all=pd.read_csv('600602/600602_cashflow.txt',index_col='index_date')
dfcash=dfcash_all.iloc[:,[24,39,51]].replace('--','0')
dfcash.columns=['Operating','Investing','Financing']
dfcash.sort_index(ascending=True, inplace=True)
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=dfcash.index
y1,y2, y3 = dfcash['Operating'], dfcash['Investing'], dfcash['Financing']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'b-')
ax.set_title('Cashflow' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df=dfcash_all.iloc[:,-5].to_frame().sort_index(ascending=True)
df.columns=['Cash balance']
print(df.plot(kind='bar',grid=True, figsize=(16,2), rot=0, secondary_y = True))
AxesSubplot(0.125,0.125;0.775x0.755)
  • 2016年,投资活动产生的现金流量净额:主要系公司本年度理财产品未到期及对外股权投资增加所致。
  • 2017年经营活动现金流为0,2018年3季度末为净流出。
  • 本可以根据经营活动现金流出额与期末现金结存数比较,以便判断未来年度的资金需求。可惜因为应收票据背书转让而未体现在现金流量表的经营活动中,所以这个数据只能参考。

300168 万达信息

In [12]:
dfcash_all=pd.read_csv('300168/300168_cashflow.txt',index_col='index_date')
dfcash=dfcash_all.iloc[:,[24,39,51]].replace('--','0')
dfcash.columns=['Operating','Investing','Financing']
dfcash.sort_index(ascending=True, inplace=True)
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=dfcash.index
y1,y2, y3 = dfcash['Operating'], dfcash['Investing'], dfcash['Financing']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'b-')
ax.set_title('Cashflow' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df=dfcash_all.iloc[:,-5].to_frame().sort_index(ascending=True)
df.columns=['Cash balance']
print(df.plot(kind='bar',grid=True, figsize=(16,2), rot=0, secondary_y = True))
AxesSubplot(0.125,0.125;0.775x0.755)
  • 300168万达信息于2017年12月19日公开发行了900万张可转换公司债券,每张面值100元,发行总额90,000万元。
  • 2017年与2018年经营活动现金流持续未净流出,投资活动现金流也是净流出。而2018年截至3季度筹资活动也是净流出,这是导致2018年3季度末现金结存为6亿左右的原因。根据后续分析所知应收账款大幅增加导致的现金紧张,预估不远的将来300168万达信息还会有融资的动作。

300020 银江股份

In [13]:
dfcash_all=pd.read_csv('300020/300020_cashflow.txt',index_col='index_date')
dfcash=dfcash_all.iloc[:,[24,39,51]].replace('--','0')
dfcash.columns=['Operating','Investing','Financing']
dfcash.sort_index(ascending=True, inplace=True)
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=dfcash.index
y1,y2, y3 = dfcash['Operating'], dfcash['Investing'], dfcash['Financing']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'b-')
ax.set_title('Cashflow' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df=dfcash_all.iloc[:,-5].to_frame().sort_index(ascending=True)
df.columns=['Cash balance']
print(df.plot(kind='bar',grid=True, figsize=(16,2), rot=0, secondary_y = True))
AxesSubplot(0.125,0.125;0.775x0.755)
  • 300030银江股份2015年申请发行不超过人民币7亿元的短期融资券,拓宽公司融资渠道、优化融资结构、降低融资风险及融资成本。
  • 2015年筹资活动现金流入增加,主要是本期再融资增发股票所致(现金及现金等价物净增加额增加,主要是本期再融资增发股票所致)。
募集年份 募集方式 募集资金总额(万元) 本期已使用募集资金总额(万元) 已累计使用募集资金总额(万元)
2015年 非公开发行股票募集 98,091.89 31,842.46 31,842.46

002373 千方科技

In [14]:
dfcash_all=pd.read_csv('002373/002373_cashflow.txt',index_col='index_date')
dfcash=dfcash_all.iloc[:,[24,39,51]].replace('--','0')
dfcash.columns=['Operating','Investing','Financing']
dfcash.sort_index(ascending=True, inplace=True)
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=dfcash.index
y1,y2, y3 = dfcash['Operating'], dfcash['Investing'], dfcash['Financing']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'b-')
ax.set_title('Cashflow' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df=dfcash_all.iloc[:,-5].to_frame().sort_index(ascending=True)
df.columns=['Cash balance']
print(df.plot(kind='bar',grid=True, figsize=(16,2), rot=0, secondary_y = True))
AxesSubplot(0.125,0.125;0.775x0.755)
  • 002373千方科技2015年筹资活动现金流入较上年同期增长1,849.73%,系收到非公开发行股票募集资金及银行借款规模增大所致。
募集年份 募集方式 募集资金总额(万元)
2015 非公开发行股票 177,387.33
  • 其中12亿元用于购买银行保本理财,理财产品期限为3-12个月,剩余资金在募集资金专户中管理。

000662 天夏智慧

In [15]:
dfcash_all=pd.read_csv('000662/000662_cashflow.txt',index_col='index_date')
dfcash=dfcash_all.iloc[:,[24,39,51]].replace('--','0')
dfcash.columns=['Operating','Investing','Financing']
dfcash.sort_index(ascending=True, inplace=True)
figure, ax=plt.subplots(1, 1, figsize=(16, 4))
x=dfcash.index
y1,y2, y3 = dfcash['Operating'], dfcash['Investing'], dfcash['Financing']
ax.plot(x, y1, 'r-')
ax.plot(x, y2, 'g-')
ax.plot(x, y3, 'b-')
ax.set_title('Cashflow' + '\nwww.jasper.wang')
ax.yaxis.set_ticks_position('right') 
ax.grid(True)
ax.legend(loc=2)
plt.tight_layout()
plt.show()
df=dfcash_all.iloc[:,-5].to_frame().sort_index(ascending=True)
df.columns=['Cash balance']
print(df.plot(kind='bar',grid=True, figsize=(16,2), rot=0, secondary_y = True))
AxesSubplot(0.125,0.125;0.775x0.755)
  • 000662天夏智慧,2016年经中国证监会核准,2016年4月,公司以非公开发行新股552,855,245股的方式的完成了收购天夏科技100%的股权。行完成后,公司股本由287,989,200股增至840,844,445股。(证监许可[2016] 225 号《关于核准索芙特股份有限公司非公开发行股票的批复》)
  • 从图中发现,2016年、2017年,经营活动现金流皆为现金净流入。但2018年截至3季度,现金净流量出现大幅下挫。

应收账款+应收票据(与主营业务收入比较)

  • 理论上,营业收入与应收账款、应收票据、预收账款增加额之间,有一个大致的等于关系。但是,实践中,应收票据常被背书转让支付采购款。因此,应收票据背书转让这部分金额就没有反映在会计报表中,也没有真实反映出现金流量表中经营活动产生的现金流的全貌。
  • 已就此问题请教过马军生老师,马博士坦言在这方面准则中确实存在不足。马军生老师,系复旦大学会计学博士、上海证券交易所博士后、注册会计师(CPA)、英国财务会计师(IFA)、澳大利亚资深公共会计师(FIPA Au)、国际注册内审师(CIA)、高级会计师,兼任北京财税研究院研究员、纳税人俱乐部特聘专家、《董事会》专栏作者,北京大学、清华大学、复旦大学、上海交大、上海财大、国家会计学院、暨南大学等多所高校特聘讲师,CCTV证券资讯频道特约嘉宾

600602 云赛智联

In [16]:
df_1=pd.read_csv('600602/600602_income_statement.txt',index_col='index_date')
df_1=df_1.iloc[:,1].to_frame()*10000
df_1.columns=['Sales']
df_2=pd.read_csv('600602/600602_banlance_sheet.txt',index_col='index_date')
df_2=df_2.iloc[:,[5,6]].replace('--','0').astype(float)*10000
df_2['ARNR']=df_2.apply(lambda x: x[0]+x[1], axis=1)
df_2=df_2.iloc[:,2].to_frame()
df=pd.concat([df_1,df_2], axis=1, sort=True)
print(df.plot(kind='bar',grid=True, figsize=(16,4), rot=0, secondary_y = True))
df_g=df.pct_change()
print(df_g.plot(kind='line',grid=True, figsize=(16,2), rot=0, secondary_y = True, xticks=range(len(df_g.index))))
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)

300168 万达信息

In [17]:
df_1=pd.read_csv('300168/300168_income_statement.txt',index_col='index_date')
df_1=df_1.iloc[:,1].to_frame()*10000
df_1.columns=['Sales']
df_2=pd.read_csv('300168/300168_banlance_sheet.txt',index_col='index_date')
df_2=df_2.iloc[:,[5,6]].replace('--','0').astype(float)*10000
df_2['ARNR']=df_2.apply(lambda x: x[0]+x[1], axis=1)
df_2=df_2.iloc[:,2].to_frame()
df=pd.concat([df_1,df_2], axis=1, sort=True)
print(df.plot(kind='bar',grid=True, figsize=(16,4), rot=0, secondary_y = True))
df_g=df.pct_change()
print(df_g.plot(kind='line',grid=True, figsize=(16,2), rot=0, secondary_y = True, xticks=range(len(df_g.index))))
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
  • 300168万达信息2018年应收账款大幅增长,甚至超过主营营业收入的金额。表明截至3季度可能本年度的销售基本未回款。

300020 银江股份

In [18]:
df_1=pd.read_csv('300020/300020_income_statement.txt',index_col='index_date')
df_1=df_1.iloc[:,1].to_frame()*10000
df_1.columns=['Sales']
df_2=pd.read_csv('300020/300020_banlance_sheet.txt',index_col='index_date')
df_2=df_2.iloc[:,[5,6]].replace('--','0').astype(float)*10000
df_2['ARNR']=df_2.apply(lambda x: x[0]+x[1], axis=1)
df_2=df_2.iloc[:,2].to_frame()
df=pd.concat([df_1,df_2], axis=1, sort=True)
print(df.plot(kind='bar',grid=True, figsize=(16,4), rot=0, secondary_y = True))
df_g=df.pct_change()
print(df_g.plot(kind='line',grid=True, figsize=(16,2), rot=0, secondary_y = True, xticks=range(len(df_g.index))))
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
  • 300020银江股份的应收账款自2014年以来在主营业务收入走低的情况下也是大幅增加(2017年例外)。

002373 千方科技

In [19]:
df_1=pd.read_csv('002373/002373_income_statement.txt',index_col='index_date')
df_1=df_1.iloc[:,1].to_frame()*10000
df_1.columns=['Sales']
df_2=pd.read_csv('002373/002373_banlance_sheet.txt',index_col='index_date')
df_2=df_2.iloc[:,[5,6]].replace('--','0').astype(float)*10000
df_2['ARNR']=df_2.apply(lambda x: x[0]+x[1], axis=1)
df_2=df_2.iloc[:,2].to_frame()
df=pd.concat([df_1,df_2], axis=1, sort=True)
print(df.plot(kind='bar',grid=True, figsize=(16,4), rot=0, secondary_y = True))
df_g=df.pct_change()
print(df_g.plot(kind='line',grid=True, figsize=(16,2), rot=0, secondary_y = True, xticks=range(len(df_g.index))))
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)

000662 天夏智慧

In [20]:
df_1=pd.read_csv('000662/000662_income_statement.txt',index_col='index_date')
df_1=df_1.iloc[:,1].to_frame()*10000
df_1.columns=['Sales']
df_2=pd.read_csv('000662/000662_banlance_sheet.txt',index_col='index_date')
df_2=df_2.iloc[:,[5,6]].replace('--','0').astype(float)*10000
df_2['ARNR']=df_2.apply(lambda x: x[0]+x[1], axis=1)
df_2=df_2.iloc[:,2].to_frame()
df=pd.concat([df_1,df_2], axis=1, sort=True)
print(df.plot(kind='bar',grid=True, figsize=(16,4), rot=0, secondary_y = True))
df_g=df.pct_change()
print(df_g.plot(kind='line',grid=True, figsize=(16,2), rot=0, secondary_y = True, xticks=range(len(df_g.index))))
AxesSubplot(0.125,0.125;0.775x0.755)
AxesSubplot(0.125,0.125;0.775x0.755)
  • 000662天夏智慧不仅2016年、2017年应收账款大幅增加,2018年截至3季度更是夸张到应收账款余额是主营业务收入的3到4倍左右。应该是销售政策过于激进所知。所幸2016年、2017年经营活动是净流入。有待继续观察2018年年报。

PE 比较

In [21]:
df=pd.read_csv('PE.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,4].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,[1,2,3,4]].sort_index(ascending=False)
Out[21]:
Name P_2018-12-11 E_2018-09-30 PE
Stock
600602 云赛智联 5.23 0.13 40.23
300168 万达信息 12.70 0.15 84.67
300020 银江股份 7.12 0.02 356.00
002373 千方科技 11.80 0.36 32.78
000662 天夏智慧 6.44 0.12 53.67
  • 此处计算PE中的E使用了“基本每股收益”。
  • 基本每股收益
    • 基本每股收益 = P0÷S
      • P0 = 归属于公司普通股股东的净利润 或 扣除非经常性损益后归属于普通股股东的净利润 ;
      • S = 发行在外的普通股加权平均数;
    • S = S0+S1+Si×Mi÷M0– Sj×Mj÷M0-Sk
      • S0 为期初股份总数;
      • S1 为报告期因公积金转增股本或股票股利分配等增加股份数;
      • Si 为报告期因发行新股或债转股等增加股份数;
      • Sj 为报告期因回购等减少股份数;
      • Sk 为报告期缩股数;
      • M0 报告期月份数;
      • Mi 为增加股份次月起至报告期期末的累计月数;
      • Mj 为减少股份次月起至报告期期末的累计月数。
  • 计算动态市盈率必须预测下一年(3年或5年)年报净利润的数值。这一部分留待(下)的部分来解决。
  • 300020银江股份的PE一枝独秀,是由其基本每股收益过小所致。
  • PE指标显示002373千方科技的估值相对有潜在价值。

PB 比较

In [22]:
df=pd.read_csv('PB.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,4].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,[1,2,3,4]].sort_index(ascending=False)
Out[22]:
Name P_2018-12-14 B_2018-09-30 PB
Stock
600602 云赛智联 5.23 2.87 1.82
300168 万达信息 12.66 3.21 3.95
300020 银江股份 6.68 4.96 1.35
002373 千方科技 12.15 5.23 2.32
000662 天夏智慧 6.04 5.16 1.17
  • P/B = 股价/每股净资产。这个指标是从公司资产价值的角度来衡量公司股票价格、鉴别公司价值被低估还是被高估,一般来说市净率较低的股票,投资价值较高。它适用于无形资产对其收入、现金流量和价值创造起关键作用的公司,例如银行业、房地产业和投资公司等。这些行业都有一个共同特点,即虽然运作着大规模的资产但其利润额却比较低。
  • 上图显示300168PB最高,因为各个可比公司的每股净资产相近,而万达信息每股净资产偏低,股价却几乎是其他可比公司的两倍。

PEG 比较

净利润增长率使用3年复合增长率

In [23]:
df=pd.read_csv('PEG.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,5].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,[1,2,3,5]].sort_index(ascending=False)
Out[23]:
Name PE G_CAGR_2018-09-30 PEG_CAGR
Stock
600602 云赛智联 40.23 0.15 2.69
300168 万达信息 84.67 0.28 3.07
300020 银江股份 356.00 -0.53 -6.66
002373 千方科技 32.78 0.40 0.81
000662 天夏智慧 53.67 0.06 9.14
  • PEG(市盈率相对盈利增长比率) = PE / 净利润增长率 * 100,其中,净利润增长率采用以前3年的每股收益复合增长率(理想状态下应使用未来3年的每股收益符合增长率)。
  • 这个指标弥补了PE对企业动态成长性估计的不足。选股时挑选市盈率较低同时增长速度又较高的公司,这些公司的典型特点就是PEG会非常低。
  • 这个指标显示002373千方科技具有投资价值。

净利润增长率使用上年增长率

In [24]:
df=pd.read_csv('PEG.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,6].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,[1,2,4,6]].sort_index(ascending=False)
Out[24]:
Name PE G2018-09-30 PEG
Stock
600602 云赛智联 40.23 0.10 4.07
300168 万达信息 84.67 0.47 1.82
300020 银江股份 356.00 -0.92 -3.87
002373 千方科技 32.78 0.97 0.34
000662 天夏智慧 53.67 -0.34 -1.59
  • 有的时候过去3年复合增长率也不靠谱。如果仅仅使用上年净利润增长率来观察,得到同样的结论:002373千方科技具有投资价值。

PS 比较

In [25]:
import numpy as np
np.set_printoptions(suppress=True, threshold=np.nan)
pd.set_option('display.float_format', lambda x: '%.2f' % x) # 不以科学计数法显示(2f,保留2位小数)
df=pd.read_csv('PS.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,3].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,[0,2,1,3]].sort_index(ascending=False)
Out[25]:
name MV_2018-12-11 S_2018-09-30 PS
Stock
600602 云赛智联 715300.00 311617.00 2.30
300168 万达信息 1392000.00 156756.00 8.88
300020 银江股份 466900.00 151855.00 3.07
002373 千方科技 1732000.00 450677.00 3.84
000662 天夏智慧 704000.00 42796.00 16.45
  • 如果是每股收益为负数,就可以使用PS指标来比较。这个指标比较适合创业公司,当亏损比较大的时候,直接以销售额作为比较的基本元素。
  • 这个指标显示000662天夏智慧最不具有投资价值。很显然,因为其主营业务收入相对规模较小的缘故。

EV/EBITDA

In [26]:
pd.set_option('display.float_format', lambda x: '%.2f' % x) # 不以科学计数法显示(2f,保留2位小数)

df=pd.read_csv('EV_EBITDA.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,4].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,:].sort_index(ascending=False)
Out[26]:
MV_date MV E_date EBITDA EV_EBITDA name
Stock
600602 2018-12-11 715300.00 2017-12-31 20395.00 35.07 云赛智联
300168 2018-12-11 1392000.00 2017-12-31 63572.00 21.90 万达信息
300020 2018-12-11 466900.00 2017-12-31 26928.00 17.34 银江股份
002373 2018-12-11 1732000.00 2017-12-31 42490.00 40.76 千方科技
000662 2018-12-11 704000.00 2017-12-31 59385.00 11.85 天夏智慧
  • EBITDA是一个比较经典的估值指标,但是据说巴菲特非常不喜欢这个指标。他认为折旧和摊销是能够为公司带来持续收入的必要支出,不能剔除(加回到收益指标中)。
  • EBITDA在实业(并购)领域被广泛接受,是因为它开起来适合用来评价一些前期资本支出巨大,而且需要在一个很长的期间内对前期投入进行摊销的行业,比如核电行业、酒店业、物业出租业等。
  • 移除利息和税项,是因为投资者可以使用自己的税率计算方法以及新资本结构下的财务成本算法。而EBITDA剔除摊销和折旧,则是因为摊销中包含的是以前会计期间取得固定资产和无形资产时支付的成本,并非投资人更关注的当期的现金支出。
  • EBIT主要用来衡量企业主营业务的盈利能力,EBITDA则主要用于衡量企业主营业务产生现金流的能力。
  • 又称企业价值倍数,其倍数相对于行业平均水平或历史水平较高通常说明高估,较低说明低估,不同行业或板块有不同的估值(倍数)水平。那是不是说000662天夏智慧具有投资价值呢?个人感觉不是。天夏智慧的持续盈利能力还有待验证。

EV/Sales

In [27]:
pd.set_option('display.float_format', lambda x: '%.2f' % x) # 不以科学计数法显示(2f,保留2位小数)

df=pd.read_csv('EV_Sales.txt', dtype={'Stock':str}).set_index('Stock').sort_index()
df.iloc[:,4].plot(kind='barh',grid=True, figsize=(10,4), rot=0)
df.iloc[:,:].sort_index(ascending=False)
Out[27]:
MV_date MV S_date S EV_Sales name
Stock
600602 2018-12-11 715300.00 2018-09-30 109642.00 6.52 云赛智联
300168 2018-12-11 1392000.00 2018-09-30 30170.00 46.14 万达信息
300020 2018-12-11 466900.00 2018-09-30 11130.00 41.95 银江股份
002373 2018-12-11 1732000.00 2018-09-30 52872.00 32.76 千方科技
000662 2018-12-11 704000.00 2018-09-30 47875.00 14.70 天夏智慧
  • 与PS指标类似,EV/Sales也是直接使用Sales进行比较和估值。
  • 用每股价格与每股销售额计算出来的市售率可以反映新兴市场公司的潜在价值,因为在竞争日益激烈的环境中,公司的市场份额在决定公司生存能力和盈利水平方面的作用越来越大,市售率是评价公司股票价值的一个重要指标。
  • 但是最为评估股票投资价值,只有成长性高而市售率低的个股在具有投资价值。
  • 仅凭这个指标,600602云赛智联具有投资价值。但该公司毛利率偏低,因此需要综合评估。

爱与彼岸财经分析团队编制

爱与彼岸财经分析