量化策略三企业基本面分析

1、资产负债表

包括资产(流动资产、非流动资产)、负债(流动负债、非流动负债)和股东权益。按时点、累计值的特征编制。

股东权益(净资产)=资产-负债。

1.1科目

1.1.1流动资产(Current Assets):1年内可变现或者运用的资产。

货币资金(Cash):现金、银行存款、现金等价物。

应收账款(Accounts Receivable):由商业活动带来的应该收回的资金。有被拖欠的风险。

预付账款(Prepaid Accounts):已提前付款,但收益尚未完成。

存货(Inventory):成品,以及生产过程中消耗的材料和物料等。有搁置折损的风险。

待摊费用(Deferred Expense):已经支出但应由本期和以后各期分别负担的各项费用。

1.1.2非流动资产(Non-current Assets):流动资产以外的资产。

长期投资(Long Term Investment):包括长期股权投资、债券投资,以及其他长期投资。

固定资产(Fixed Assets):使用寿命超过一个会计年度,为生产商品、提供劳务、出租或经营管理而持有的有形资产。

无形资产(Intangible Assets):专利权、非专利技术、商标权、著作权、土地使用权等。

商誉(Goodwill):企业合并时,购买企业投资成本超过被并企业净资产公允价值的差额。

折旧(Depreciation):固定资产的损耗、折旧。

生物性资产(Biological Assets):活的动植物。

1.1.3流动负债(Current Liability):1年内需要支付的负债。

短期借款(Short Term Borrowing):以维持正常经营为目的,还款期在1年内的借款。

应付账款(Accounts Payable):因购买原材料、接受劳务所欠供应商的账款。

预收款项(Deposit Received):由购货方预先支付货款而发生的负债。

1.1.4非流动负债(Non-current Liabilities):还款期长于1年的负债。

长期借款(Long Term Borrowing):从银行或其他金融机构借来的还款期长于1年的负债。

应付债券(Bonds Payable):为筹集资金而对外发行的期限在1年以上的长期借款性质的书面证明。

长期应付款(Long Term Payable):除了长期借款和应付债券以外的长期负债。

1.1.5股东权益(Shareholder’s Equity):反映公司自有资本。

实收资本/股本(Capital Stock):股东在公司所占权益,多指股票。

资本公积(Additional Paid-in Capital):包括资本溢价(股本溢价)和直接记入所有者权益的利得和损失等。

盈余公积(Surplus Reserve):企业按照规定从净利润中提取的各种积累资金(中国要求至少保留10%)。

未分配利润(Retained Earnings):企业未作分配的利润。

 

2、利润表

按时段,期间累计值的特征编制。

营业利润=营业总收入-营业总成本-资产减值损失+公允价值变动收益+投资收益

利润总额=营业利润+营业外收入-营业外支出

净利润=利润总额-所得税费用

2.1规则

2.1.1企业代收的增值税,体现在负债表中的应交税金。

2.1.2研究开发并且商业成功后,相关费用才可以计入资产负债表中的无形资产;否则计入利润表:营业成本中的研发费用。

外购的技术,计入无形资产。

自创的技术,不会计入无形资产,只会计入研发费用。

所以一般研发部门都是子公司。

 

2.2指标

毛利率(Gross Margin)=(营业收入-营业成本)/营业收入,反映企业盈利能力。毛利率反映竞争形势,要么资源独占,要么有牌照限制,要么有技术优势,要么有品牌优势。

净利率(Net Profit Margin)=净利润/营业收入,反映企业盈利能力。

总资产周转率(Total Asset Turnover Ratio)=营业收入/总资产,反映企业销售、管理能力,也能体现效率。

应收账款周转率(Accounts Receivable Turnover Ratio)=营业收入/期间平均应收账款,反映应收账款变现效率。

应收账款天数(Accounts Receivable Turnover Days)=365/应收账款周转率。

流动资产周转率(Current Assets Turnover)=营业收入/期间平均流动资产,反映企业资本利用效率。

固定资产周转率(Fixed Asset Turnover)=营业收入/期间平均固定资产,反映企业资本利用效率。

存货周转率(Inventory Turnover)营业成本/期间平均存货,用于评估企业库存水平的合理性。

流动比率(Current Ratio)=流动资产/流动负债,>2比较安全,国际上>3比较安全,国内银行倾向于短期贷款,新债还旧债。

速动比率(Quick Ratio)=(流动资产-库存)/流动负债,较为保守的评估企业偿还流动负债能力的指标。

财务杠杠(Asset to Liability Ratio)=总负债/总资产,反映风险。

总资产报酬率(ROA)=净利润/总资产。

净资产报酬率(ROE)=净利润/股东权益=ROA*权益乘数=ROA*总资产/股东权益。

投资资本报酬率(ROIC)=税前利润/(净资产+有息负债)=(税后利润+财务费用)/(净资产+有息负债)

税息折旧及摊销前利润(息税前利润EBITDA)=净利润+所得税。

 

2.3ROE-杜邦分析

优秀的ROE应在20%左右。体现为ROE持续居高或快速增长。

2.3.1提高企业ROE可以采取的途径

提高资产周转率:优化销售渠道、薄利多销、优化库存、定制市场战略等。

提高净利润率:提高毛利率、提高营业收入、优化成本、政府扶持、税费优惠等。

提高权益乘数:廉价的财务杠杠、提高的负债率。

图片来源:东方财富

 

3、现金流量表

反映持续经营的风险。按时点、累计值的特征编制。

年末货币资金-年初货币资金=现金净流量=现金流入-现金流出

非现金资产变化=净利润-净现金流

在资产价值有保证的情况下,利润表相对更重要;而如果报表中出现贬值的资产,则现金流相对更重要。

设备折旧会使净利润减少,但经营现金流不变。

3.1现金及等价物净增加额=经营活动现金流净额+投资活动现金流净额+融资活动现金流净额

3.1.1经营性现金流: 反映企业的造血机能

(+)销售商品、提供服务所获得的现金

(+)退税收入

(+)其他经营活动带来的现金收入

(-)购买商品、服务所支出的现金

(-)支付员工工资

(-)支付的各项税费

(-)其他经营活动带来的现金支出

3.1.2投资性现金流: 固定资产、对外投资

(+)收回投资所收回的现金

(+)投资所得收益

(+)处置固定资产、无形资产、其他长期资产所取得的现金净额

(+)其他投资活动带来的现金收入

(-)购买固定年资产、无形资产、长期资产所支付的现金

(-)投资所支付的现金

3.1.3融资性现金流

(+)从投资者获取的现金

(+)从银行、其他金融机构所获得的短期借款、长期借款

(+)其他融资活动带来的现金收入

(-)偿还债务所支付的现金

(-)分红、还息所支出的现金

(-)其他融资活动带来的现金支出

三项活动现金流净额都为正最好,最不希望经营性现金流净额为负。

 

3.2企业的战略

采取成本领先战略(低毛利、高周转)。

还是差异化战略(高毛利、低周转)。

 

3.3经济利润(Economic Profit)=excessReturn*投资资本=(ROIC-WACC)*投资资本

净利润大于0而经济利润小于0,说明企业不能为股东赚到钱,不能超过行业平均盈利水平。

平均投资资本成本(WACC):这里投资资本包括有息负债、股东权益。该指标可以用于判断所投资项目的风险。

WACC=(有息负债/投资资本)*债务成本*(1−企业所得税税率)+(股东权益/投资资本)*股本成本

投资资本(Invested Capital)=有息负债+股东权益

ROIC=税后净利润/投资资本

 

4、使用优矿平台(uqer)计算某只个股财务指标

使用合并资产负债表 (Point in time):DataAPI.FdmtBSGet和合并利润表 (Point in time):DataAPI.FdmtISGet。

>>> import pandas as pd

>>> def load_fiscal_data(ticker=’002466′, end_date=’2018-05-18′):#读取002466天齐锂业2018年5月18日数据

“””

1)资产负债表, FdmtBSGet

TAssets: 总资产

AR: 应收账款

TCA: 流动资产合计

TCL: 流动负债合计

fixedAssets: 固定资产

TLiab: 总负债

inventories: 存货

TShEquity: 所有者权益

2)利润表, FdmtISGet

tRevenue: 营业总收入

TCogs: 营业总成本

COGS: 营业成本

TProfit: 利润总额

NIncome: 净利润

incomeTax: 所得税费用

“””

bs=DataAPI.FdmtBSGet(ticker=ticker, secID=u””, reportType=u””, endDate=u””, beginDate=u”2013-09-30″, publishDateEnd=u””, publishDateBegin=u””, endDateRep=””, beginDateRep=””, beginYear=””, endYear=””, fiscalPeriod=””, field=u”ticker,endDate, publishDate, fiscalPeriod, TAssets, inventories, AR, TCA, TCL, fixedAssets, TLiab, TShEquity”, pandas=”1″)#选取表1:资产负债表(FdmtBSGet)中的科目

bs=bs.sort_values(by=[‘endDate’, ‘publishDate’, ‘fiscalPeriod’], ascending=[True, True, False]).drop_duplicates(subset=[‘endDate’], keep=’first’)#按endDate, publishDate, fiscalPeriod三项排序,去重

income=DataAPI.FdmtISGet(ticker=ticker, secID=u””, reportType=u””, endDate=u””, beginDate=u”2013-09-30″, publishDateEnd=u””, publishDateBegin=u””, endDateRep=””, beginDateRep=””, beginYear=””, endYear=””, fiscalPeriod=””, field=u”ticker, secShortName, endDate, publishDate, fiscalPeriod, tRevenue, TCogs, COGS, TProfit, NIncome, incomeTax”, pandas=”1″)#选取表2:利润表(FdmtISGet)中的科目

income=income.sort_values(by=[‘endDate’, ‘publishDate’, ‘fiscalPeriod’], ascending=[True, True, False]).drop_duplicates(subset=[‘endDate’], keep=’first’)#排序

bs=bs.merge(income, left_on=[‘ticker’, ‘endDate’, ‘publishDate’, ‘fiscalPeriod’], right_on=[‘ticker’, ‘endDate’, ‘publishDate’, ‘fiscalPeriod’], how=’inner’)#合并

bs[‘fiscalPeriod’] = bs[‘fiscalPeriod’].astype(int)#设为整数

bs = bs.fillna(0.0)#将nan值填为0

return bs

>>> def comp_ratio_indicator(df):

“””

计算比率指标,简单选用年报数据,不考虑TTM(Trailing twelve months)

“””

data = df[df[‘fiscalPeriod’]==12].copy(deep=True)

data[‘GrossMargin’] = (data[‘tRevenue’]-data[‘COGS’]) / data[‘tRevenue’]#毛利率

data[‘NetProfitMargin’] = data[‘NIncome’] / data[‘tRevenue’]#净利率

data[‘TotalAssetTurnoverRatio’] = data[‘tRevenue’] / data[‘TAssets’]#总资产周转率

data[‘AccountsReceivableTurnoverRatio’] = data[‘tRevenue’] / data[‘AR’].rolling(window=2,min_periods=1,center=False).mean()#应收账款周转率

data[‘AccountsReceivableTurnoverDays’] = 365.0 / data[‘AccountsReceivableTurnoverRatio’]#应收账款天数

data[‘CurrentAssetsTurnover’] = data[‘tRevenue’] / data[‘TCA’].rolling(window=2,min_periods=1,center=False).mean()#流动资产周转率

data[‘FixedAssetsTurnover’] = data[‘tRevenue’] / data[‘fixedAssets’].rolling(window=2,min_periods=1,center=False).mean()#固定资产周转率

data[‘InventoryTurnover’] = data[‘tRevenue’] / data[‘inventories’].rolling(window=2,min_periods=1,center=False).mean()#存货周转率

data[‘CurrentRatio’] = data[‘TCA’] / data[‘TCL’]#流动比率

data[‘QuickRatio’] = (data[‘TCA’] – data[‘inventories’]) / data[‘TCL’]#速动比率

data[‘AssetToLiabilityRatio’] = data[‘TLiab’] / data[‘TAssets’]#财务杠杆

data[‘ROA’] = data[‘NIncome’] / data[‘TAssets’]#总资产报酬率

data[‘ROE’] = data[‘NIncome’] / data[‘TShEquity’]#净资产报酬率

return data.iloc[-1][[‘ticker’, ‘endDate’, ‘publishDate’, ‘fiscalPeriod’, ‘GrossMargin’, ‘NetProfitMargin’, ‘TotalAssetTurnoverRatio’, ‘AccountsReceivableTurnoverRatio’ , ‘AccountsReceivableTurnoverDays’, ‘CurrentAssetsTurnover’, ‘FixedAssetsTurnover’, ‘InventoryTurnover’, ‘CurrentRatio’, ‘QuickRatio’, ‘AssetToLiabilityRatio’, ‘ROA’, ‘ROE’]]#取最后一期

>>> fiscal_df = load_fiscal_data(ticker=’002466′)

>>> print(comp_ratio_indicator(fiscal_df))

ticker                                 002466

endDate                            2017-12-31

publishDate                         2018-03-24

fiscalPeriod                                12

GrossMargin                          0.701419

NetProfitMargin                       0.477442

TotalAssetTurnoverRatio                0.306619

AccountsReceivableTurnoverRatio         20.5192

AccountsReceivableTurnoverDays         17.7882

CurrentAssetsTurnover                 0.928756

FixedAssetsTurnover                    3.71251

InventoryTurnover                      11.5415

CurrentRatio                           3.10907

QuickRatio                            2.92049

AssetToLiabilityRatio                   0.403864

ROA                                 0.146393

ROE                                  0.24557

Name: 17, dtype: object

量化策略一Python          量化策略二几种Python工具包

 

《量化策略》系列文章的部分内容来自于优矿网(UQER)的量化学堂和量化社区。