技术不只是用于工作,也用于生活。
------- 沃兹基 · 梭德
前言
去年,我开始了基金定投理财。
没错,就我这兜里的几个铜崩也敢叫嚣着也"搏一搏,单车变摩托"了。
结果今年年初疫情来袭,全球股市大跌,恐慌中我疯狂低位抛售美基,裤兜里本来就不多的铜崩就更孤影形单了。
又过了几个月……
卧槽!美国这疫情爆发力他娘的美股这都能涨回来?这不科学!
那些个日子,我都这种心情:
后来仔细想想,投资肯定有涨有跌跌跌跌跌跌跌,这都是浮亏,只要我不撒手,我就永远不亏,最重要的还是理性,有自己的投资决策树,不为外物所动。
大涨行情的我:好的,我懂了,要理性。
大跌行情的我:你懂个屁!!
说起来容易,做起来难,毕竟投资交易都是反人性的。坚持自己的投资策略谈何容易。然而,投资理财不就是一堆数字游戏,低买高卖嘛。
恰好,作为一只程序员,对数据从来不陌生。
那么整一个基金回测网站,模拟下投资策略收益应该不难吧?
要是不小心发现了”财富密码“,不用多久,我就会财富指数增长、一夜暴富、完成一个小目标、迎娶白富美、走上人生巅峰,想想还有点小激动。
技术方案
那么,要开发一个基金回测网站,需要几步呢?
- 技术选型
- 获取数据源
- 代码开发
- 部署上线
技术选型
要搞网站,还要很多数据图表,因为经常用支付宝投资基金,那就直接用蚂蚁家的东西 antd + g2 数据可视化 ,搞定啦!
数据源
这是难住大家的一道坎。一般大家会想到以下几个方案:
- 开源的 API ?这些数据源 API 基本都是收费的,偶尔有免费的也是限时限量,不给力。
- 爬基金网站的数据?这倒是个办法,但你得有个服务器实时去爬数据,又得写个爬虫,指不定还要和反爬虫策略斗智斗勇,太麻烦了。
那我的方法是啥呢?白嫖!
偶然发现某基金网站用的是 jsonp 来处理跨域问题,用了 js script + cache 来存储大量的基金历史数据,而且有意无意地没有限制 referrer。于是就轻松解决了数据源的问题啦(需要注意的是,网站不能用 https 哦,不然数据请求就会被同源策略block 掉)。
白嫖大发,真香~
代码开发
业务代码的核心是记录每天的基金、资产快照,包括但不限于:基金净值,相对涨幅,基金资产,可用资金,仓位,收益率等等信息。
然后前端图表库 G2,将时间区间内的所有数据渲