被 V 友教育"全球首富"后,讲讲那个 8% 系统里指标是怎么设计的

发布于

上期说老伙计有个月收益 8% 的路子,被 V 友教育了:按这个复利算,十七年后我就是全球首富。

哈哈,首富我是不指望了,但代码是真的,系统也是真的。

今天开始正式讲:把那份卡死的 Excel 翻译成系统,是怎么做的。

第 2 期说到,老伙计把跟踪了一年的 Excel 发过来:十来个 sheet、几百个指标、几千行公式。

当时我打开 Excel 看到:每个行情数据一变,会牵扯多个 sheet 页里多个 column 的带公式引用;这个计算结果又牵扯另外多个 sheet 的多个 column,最后再反应到各种 Excel 图表的刷新——整张表就是一张网状结构的引用。

我干的第一件事:梳理清楚这张“网”是怎么链接起来的,用什么连接的。

摸排下来发现,最底层的数据就是行情的日线数据(收盘价、最高价、最低价、开盘价、交易量)。往上,公式一层层叠——均值、涨跌幅、比率这些 Excel 里现成的函数,加上一堆跨 sheet 互相引用的自定义公式,最后算出来一串串值,画成走势图。

于是我开始抽象:指标、公式、计算任务、图表。

那什么是指标呐?

原始行情数据(汇率、价格、利率)就是基础指标;经过公式计算后的数据,就是衍生指标。

那公式怎么弄?

动态 Python 代码可以实现自定义;常用的公式固化出来,只需要填参数。

那计算任务呐?

一开始想过定时任务全跑一遍——指标多了以后,每扫一次全部重算,服务器浪费不起。

改成触发机制:修改某个数据,拉出这个指标关联的所有指标,重新计算。就这么干。

那图表怎么弄?今天想看 A 的趋势,明天想看 B 的趋势,后天想把 A+B 叠加一起看——这些组合得存下来,我想到用 JSON 结构。

还有一件让老伙计少干活的事:行情自动抓取。我问老伙计平时都从哪些地方找数据——结果是五花八门,有交易软件、有投资网站,等等。

说实话,一开始规划的时候,我还想过第三层“混合指标”——基础指标加上衍生指标组合起来,不就算混合了嘛。真到开发的时候,压根没按这个类型去记。两层就够用了,组合的事交给了图表层。

规划是规划,开发是开发。指标层只管两层:底层的原始数据,和算出来的衍生值;剩下的花样,图表层接住。

下期聊架构:前端、后端、数据库各选了啥,为什么选它。

---

原文链接:[点击查看](https://www.v2ex.com/t/1233448)

评论

暂无评论。

0.040391s