基金投资的全流程管理
场外基金的信息与净值获取,精确到分的投资账户记录整合分析与丰富可视化,简单的策略回测以及根据预设策略的定时投资提醒。尤其适合资金反复进出的定投型和网格型投资的概览与管理分析。
xalpha 诞生记
随着配置的基金数目越来越多,感觉自己对整体投资情况的把握越来越困难。特别是不怎么记账,止盈之后都无法精确知道自己赚了多少钱这一事实令我非常不爽,于是起了写一个可以进行基金投资仓位管理和分析的模块这样的想法。当时是想做一个基金投资记账的瑞士军刀,可以实现最小化的记账信息输入和最大化的量化信息展示。这样一方面减少了记账的数据量,另一方面更好的实时掌握投资的总体情况和各个分项的细节,保证掌握投资的全局,更好的为下一步投资的规划和仓位做指导。于是就有了这个项目的开始,从 parse 天天基金的 API 开始,一直到了现在的状态。这个项目能做到的事,也比初始的计划多出了许多,当然整个模块的核心还是基金交易和投资组合的处理。
xalpha 设计哲学及其他
xalpha 设计哲学及其他 – refraction-ray
设计哲学
任何一个和金融市场相关的工具绕不开的就是数据,怎么提供数据,谁来维护数据,数据的接口设计的风格,决定了不同的金融产品,软件和平台的差异。首先是数据的提供,数据源根本上就是两类,一类是专门有人负责清洗验证和管理,保证更新质量的中心化数据库,其往往还向外提供 RESTFUL API 或其他形式的封装完好的接口。这类东西当然好,不过有个明显的缺点,就是得花钱,而且通常还不是小数目。第二类数据源就是各种国内外的财经网站和专门类的官网,比如国外的雅虎财经,彭博,FT,标普,国内的新浪财经,网易财经,天天基金,雪球,上交所,深交所,中证官网等等。这些源头数据类型质量和更新快慢参差不齐,想要便捷实用需要在爬虫设计,接口封装,数据简单清洗上花大力气。xalpha 则努力结合这两种数据源的优势。首先当然是优先免费的网络源,而且为了稳定性,后端的网络源越多越好,上述这十几个知名网站的数据源,xalpha 都实现了爬取和封装。使得即使被某些网站反爬或者某些网站数据结构改版,也几乎不会削弱 xalpha 获取数据的能力。同时,毕竟有些数据尤其是历史数据很难在公开免费的财经网站获取,比如历史上指数的成分股权重等。因此 xalpha 还是借助了第一类数据提供商的数据源。目前 xalpha 暂时包括了聚宽的数据源,其好处是聚宽数据可以申请本地免费试用,而同时 xalpha 还完美兼容在聚宽研究环境云平台直接使用,因此可以保证免费的数据获取。最重要的是,完全不理会聚宽的配置和账号,xalpha 还是可以正常使用且大部分数据和功能不受影响。这就是关于数据源 xalpha 的原则:永远使用免费的数据,优先使用不需要鉴权的数据,每个数据都尽量有不同数据源的备份,总是可以不进行任何鉴权的正常使用以避免用户的额外申请和配置。
数据的维护同样是个问题,如果一个项目数据维护需要自己来,比如每天需要跑一定的脚本来保证本地数据,那这样项目的稳定性是很成问题的。或者说,想让这样的项目达到和不需要维护数据的项目一样的稳定性和易用性是成本很高的。一旦选择了自己维护数据的路线,那就不是简单的 crontab 就能胜任的。为了保证稳定性和容错,需要数据库表的设计,每日定时运行的服务,自动爬取和中心化数据清洗入库与常规维护,甚至运行服务器与网络的稳定性和高可用的考量。说白了,这时候维护的不再是一个代码组成的简单项目,而是大量基础设施共同构筑的应用和服务,这需要的成本极其高昂,也是我绝对不会选择的发展路线。而且你维护的这么费劲,一旦换一台电脑程序就不能跑了,是我完全无法接受的。因此每当看到金融类的开源项目教大家怎么每日更新下本地数据,以前数据需要去百度云下载压缩包云云,我就会立马关掉。这绝不是一个金融类开源项目应该有的技术路线图,这种要求本地数据维护的项目,要想稳定可用,需要用户的技术积累和精力投入都是非常巨大的,在性价比上是一定不划算的。因此 xalpha 的实际哲学,一定是只要 pip install xalpha 之后不需要任何设定配置,和操作系统数据库无关,马上就可以用,一行代码就可以拿到想要的任何数据,这才是一个合理的开源金融类项目的自我修养。当然需要指出,有些本地数据的更新维护也是无奈的,比如深交所的基金场内份额,只有当日数据,如果想获取历史数据,那就只能每天去爬取来更新本地数据,但由于我对引入一整套基础设施来保证本地数据完整可用的极端反感,这种时候我宁愿选择 xalpha 不提供该类型数据,也绝不会允许强制的本地数据维护服务的出现。当然我们下面会看到:1. 深交所场内基金历史份额还是有其它方式可以不依赖本地数据每日更新拿到(聚宽),2. 不强制需要本地数据维护就能使用,不代表本地数据不能维护,如果你足够闲,可以轻松的将 xalpha 和本地数据维护结合起来。



