被 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)
哈哈,首富我是不指望了,但代码是真的,系统也是真的。
今天开始正式讲:把那份卡死的 Excel 翻译成系统,是怎么做的。
第 2 期说到,老伙计把跟踪了一年的 Excel 发过来:十来个 sheet、几百个指标、几千行公式。
当时我打开 Excel 看到:每个行情数据一变,会牵扯多个 sheet 页里多个 column 的带公式引用;这个计算结果又牵扯另外多个 sheet 的多个 column,最后再反应到各种 Excel 图表的刷新——整张表就是一张网状结构的引用。
我干的第一件事:梳理清楚这张“网”是怎么链接起来的,用什么连接的。
摸排下来发现,最底层的数据就是行情的日线数据(收盘价、最高价、最低价、开盘价、交易量)。往上,公式一层层叠——均值、涨跌幅、比率这些 Excel 里现成的函数,加上一堆跨 sheet 互相引用的自定义公式,最后算出来一串串值,画成走势图。
于是我开始抽象:指标、公式、计算任务、图表。
那什么是指标呐?
原始行情数据(汇率、价格、利率)就是基础指标;经过公式计算后的数据,就是衍生指标。
那公式怎么弄?
动态 Python 代码可以实现自定义;常用的公式固化出来,只需要填参数。
那计算任务呐?
一开始想过定时任务全跑一遍——指标多了以后,每扫一次全部重算,服务器浪费不起。
改成触发机制:修改某个数据,拉出这个指标关联的所有指标,重新计算。就这么干。
那图表怎么弄?今天想看 A 的趋势,明天想看 B 的趋势,后天想把 A+B 叠加一起看——这些组合得存下来,我想到用 JSON 结构。
还有一件让老伙计少干活的事:行情自动抓取。我问老伙计平时都从哪些地方找数据——结果是五花八门,有交易软件、有投资网站,等等。
说实话,一开始规划的时候,我还想过第三层“混合指标”——基础指标加上衍生指标组合起来,不就算混合了嘛。真到开发的时候,压根没按这个类型去记。两层就够用了,组合的事交给了图表层。
规划是规划,开发是开发。指标层只管两层:底层的原始数据,和算出来的衍生值;剩下的花样,图表层接住。
下期聊架构:前端、后端、数据库各选了啥,为什么选它。
---
原文链接:[点击查看](https://www.v2ex.com/t/1233448)
评论
暂无评论。