需求背景
Valueline的设计目的是方便发掘市场上低估的股票,整合市场上低估股票的各项指标,以表格和图表的形式展现出来,并支持指定某个指标进行排序。本人是坚定的价值投资者,追随格雷厄姆和早期巴菲特“捡烟蒂”的投资理念,因此Valueline核心关注的是股票代表的公司本身的内在价值,而非各项技术指标,也和大家日常理解的“炒股”,“量化”无关。
由于本人的主业是软件工程师,因此希望在开发Valueline的同时,能够结合自己软件领域知识的所学,达到投资和软件开发技术锻炼两不误的目的。
产品功能
我倾向于使用敏捷式的软件开发流程,因此一期会首先交付一版最小可用的软件,后续不断迭代Valueline的功能
一期的产品需包含以下功能特性
- 支持针对某个公司的财报进行分析,计算出公司的市值和有形资产的比率,称之为格雷厄姆比率。这一比率越小,代表公司越被低估。
- 支持通过限定条件,如资产负债率 < 20%,市净率 < 1.0,格雷厄姆比率 < 1.5,来筛选市场上的股票
- 支持创建定时任务,每日更新市场上满足指定条件的股票
技术功能
从技术学习的角度考虑,Valueline主要包含以下的技术栈
- 服务运行在K8S和Docker上,具备代码提交后自动集成的能力
- 使用Dubbo/Grpc作为服务间通信的组件
- 网页后端和业务相关模块使用Java语言进行开发
- 数据库使用Mysql/MongoDB
- 包含分布式链路追踪系统/全链路日志系统/服务接口监控