-
Notifications
You must be signed in to change notification settings - Fork 0
tianlongfei/equity
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
TT(todo today): cap_struct的现状无法判断企业的业务前景,因为你可以拥有一个良好的财务现状,比如没有债务,运营资本很低,都是现金,但没有未来发展计划,所以未来现金流很弱,购买这样的企业只是购买现金,可以说毫无意义。所以需要看一个企业的cap_struct的历史趋势,这会体现其发展进程,管理层的能力等方面。另外,需要利润表,对利润和成本结构进行分析。 当然,你会说财务报表的历史数据根本不足以判断企业的业务前景,需要结合业务层面的信息,比如市场竞争格局,企业的市场地位,竞争力,未来发展计划等。没错,但当前的任务是理解财务报表能提供什么,所以要暂时仅仅专注于财报,做尽可能深入的挖掘。这样练功后,再跟业务层面信息综合分析。 行业、指数表。行业,指数的财报表。行业,指数的财报。将总体分布做到支持行业、指数。 趋势分析:一个企业,一个行业,一个指数,所有企业在每个指标上的变化趋势。变化趋势不仅仅是图形,因为图形只能观察,存在主观判断和视觉偏差等因素,定量指标很重要,定量指标是我的一个弱点,需要补。 因果关系,逻辑关系:趋势分析可以将指标都画成图,甚至计算出评估趋势变化的定量指标,但是并不会clarify指标的因果关系,不会描述清楚企业的业务过去几年发生的栩栩如生的故事。一个企业的业务在过去今年到底发生了什么,需要搞明白业务(生意)的逻辑,行业竞争逻辑,企业战略和执行力逻辑,这样才能将趋势分析的图形和指标之间的逻辑关系搞清楚。进而形成对企业未来评估的逻辑和观点。业务、财务指标的逻辑。 趋势分析,因果关系,应该都需要从某几个具体企业来做,再推而广之。 低成本金融财务数据服务的可行性。 提供的功能:财务数据查看,分析。 1.后台:读取PDF,将表格提取出来,存储到mysql,校验准确性。最小需求:1个工程师,1个数据校验运营 2.前端:财报阅读:note在条目旁边的UI设计,财报标注、笔记。 3.分析:曲线图。 4.下载Excel,PDF原文,批量下载。 5.API访问数据,maybe like tushare。 Roadmap:先做,打磨产品功能,自己用 解决开发和产品设计的问题: 产品功能:我。 交互样式(UE/UI)设计:我,考虑一些外部服务。 开发:后端+前端。我可以做原型,满足个人的需要。 产品上有两个方向,一个是从自己的需求出发设计功能,另一个方向设计一个通用的工具,比如金融数据图片社区,用户各取所需之地。但从过程上,要把后者做优秀,也要有前者的基础。只有从自己出发才能做出好用的产品,而不是试图揣测用户的需求,试图做大而全的产品。还是要把自己提高。 基本功: pandas:查找,列运算,加减乘除 todo: 人工从东财客户端导出每个企业财务数据的excel(不知可否一次导出一年所有企业,或一次导出一个企业所有年份的),人工或程序整理成标准格式,录入数据库。 todo:问东财,可否一次导出一年所有企业,或一次导出一个企业所有年份的 ------------------------------- 数据库建设: 股票基本信息表:security_basic_info, 资产负债表:balance_sheet, 利润表:income_statement, 现金流量表:cash_flow_sheet, 资产负债表项目分类表-细节分类:category_bs 资产负债表项目分类表-汇总分类:category_bs_agg 资产结构表-细节:cap_struct_general_detail 资产结构表-汇总:cap_struct_general_agg 指数权重表:index_weight 1.1 数据源: √ tushare:财报有些不准,但目前是最准的,而且最方便。 × 聚宽:财报数据不如tushare准 × 爬虫门户网站:不准,而且开发代价大 pending: 米筐,优矿,京东量化。初步看文档,资产负债表条目少,估计不准确,暂时不看了,但可以几个月关注一次可能的升级。 todo: 人工从东财客户端导出每个企业财务数据的excel(不知可否一次导出一年所有企业,或一次导出一个企业所有年份的),人工或程序整理成标准格式,录入数据库。 pending: 下载公开的财报pdf,人工或机器转成word,找到报表部分,人工或程序整理成标准格式,录入数据库。从根本解决问题,不花钱或少花钱,数据100%准确,但工作量最大。 1.2 表格结构维护: todo: √ 表格结构的创建和更新:基于sqlalchemy,alembic steps: 1. 维护model.py文件中定义每个表格对应的类; 2. 每次model.py文件修改后,执行alembic 1.3 数据的更新: 1.3.1 步骤: 第一步:执行update_bs_all()。 ↓ ↓程序中断:比如程序卡住,手动中断;比如出现其他为止问题,导致程序中断。 ↓ 第二步:再次执行update_bs_all(),直到程序正常结束。 ↓ ↓检查expept_list.txt文件是否有值,如果有,第三步。 ↓ 第三步:再次回到步骤1。 1.3.2 逻辑: update_bs_all() 首先,获取所有ts_code列表,读取already_list列表,两个列表相减得到本次要查询tushare的ts_code列表 其次,将ts_code列表按step(默认100)长度分割成len(ts_code)/step个片段: 按片段查询数据,写入数据库。 每个片段中,出现tushare的查询语句报出exception,计入e。 每个片段结束后,将该片段成功查询的ts_code添加到already_list.txt,报exception的ts_code加入except_list。 资本结构分析: 要点: 一般工商业企业 资本结构包括:资产结构(现金,WC,PPE,Intangible&Goodwill,Investment),投入资本结构(Interest-bearing Liability,Equity) 比例分析 比例的变化趋势分析 对一个企业,根据其过去和现在的资本配置,结合对业务的理解,对未来的收益的稳固程度和增长趋势进行判断。资本结构能反映一个企业过去在干嘛,现在要干嘛。 比较不同的企业:不同的企业是否具有可比性由用户决定,工具提供对比的能力 分布直方图 讨论-BS报表的条目的分类: 资本结构:cap_struct_general_detail/agg · 业务类型: 只计算一般工商业企业,这是通过限定balance_sheet表中comp_type=1实现的,该字段来自tushare的balance表。更细致的企业分类是需要的,比如地产企业跟制造业不一样,由此可以发现行业分类有需求。 有些企业包含一般工商业和金融业务(银行,保险等),这样导致行业分类不一定完全管用,而把金融业务的条目剔除是否。 · 现金: cash_plus:包括现金,其他流动资产(当前看到的主要是理财产品),投资性房地产,衍生金融资产。 cash_minus包括预计负债。 cash_all = cash_plus + 交易性金融资产 - cash_minus。 note:cash_plus的概念范围有点过于广泛,但cash_all提供了一个特别综合的现金概念,有一定参考意义。 · invest: 交易性金融资产,可供出售金融资产,长期股权投资(equity investee)三项,当前是分开的。 · wc+,wc-: 归类原则是衡量业务运营过程的资金占用程度,其他的因素不要放进来。 · 预计负债: 例如司法判决的债务。不应该算作WC-,因为这会造成WC_net偏低,仿佛是运营很高效,其实是吃官司导致的,从而导致分析南辕北辙。算作Liability也不合适,它在逻辑上和投入资本无关。调整为Cash-,从Cash中减去。 · 未分配利润: 未分配利润可以是负数,如果一个企业从成立以来累计盈利是负数,那么未分配利润是负数,如果持续不盈利,最后未分配利润应该等于-股本,亏光了。 讨论-分析: · feature 1: 计算某个时点,比如20180331,每个条目占投入资本(invested capital)百分比的总体分布图。 cash_all: 现金的比例。 wc_net: 营运资本的比例。 wc_net < 0的情况下,cash_all+wc_net的比例。 ppe: 固定资产的比重。 invest: 对外投资的情况。 liability: 债务比例。 note: 1. 了解3000+企业、某个行业、某个指数的所有企业资产配置的整体分布情况,比如一般工商企业的营运资本wc_net的平均水平,比如家电行业的wc_net的平均水平(y-axis在0.50的x)。 2. 衡量一个企业的相对情况。比如你关注的某个企业,其债务比例,营运资产,现金的比例,在3000+上市企业的相对位置在哪里,是top30%,还是top50%,还是处于中下等30%。 讨论-指数: 成分股在指数中的权重是随着股本和股价的变化,随时变化的。所以“高质量的”服务应该是按照中证网站上的定期更新(应该是每月底更新,比如8月30日),或者每天更新(不知道怎么做)。 附:沪深300指数的编制思路: 样本空间 : 非创业板股票:上市时间超过一个季度,除非该股票自上市以来日均A股总市值在全部沪深A股(非创业板股票)中排在前30位。 创业板股票:上市时间超过三年。 选样方法: 计算样本空间内股票最近一年(新股为上市第四个交易日以来)的A股日均成交金额与A股日均总市值。 对样本空间股票在最近一年的A股日均成交金额由高到低排名,剔除排名后50%的股票。 对剩余股票按照最近一年A股日均总市值由高到低排名,选取前300名股票作为指数样本。 指数计算: 报告期指数=报告期成分股的调整市值/除数×1000,其中,调整市值=∑(股价×调整股本数)。 调整股本数,是把流通股按分级靠档的方式,进行了调整。比如一个企业有1000股,流通股是350股,占比是35%,属于30-40%这一档,则调整的流通股比例会为40%,调整股本数为1000×40%=400股。 todo: 建立资产负债表每个条目的分类表:category_bs:done 计算和存储资本结构数据:cap_sturct_detail, cap_struct_agg done 如何分析?怎么看,得到什么结论。 成本结构:比例分析,变化趋势分析 指标分析:ROIC等回报率 把指数,行业看成一个企业分析: 指数库:ts_code, hs300, zz500, zz800, zz1000, zz100, zz200, zzsuper, h50 行业库:ts_code, real_estate, bank, home_appliance, auto。标准库可以用,但自己考察过每个企业业务后的个性分类也是很需要的,这往往更准确。 财务报表(bs,is,cf), 资本结构, 成本结构, 现金流。 指标的分布:资本结构指标 账是要算清楚,但不能算小账,更不能算呆账。
About
equity data analyst
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published