tianlongfei / equity Goto Github PK
View Code? Open in Web Editor NEWequity data analyst
equity data analyst
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), 资本结构, 成本结构, 现金流。 指标的分布:资本结构指标 账是要算清楚,但不能算小账,更不能算呆账。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.