字体
大
中
小
关灯
上一章 回目录    收藏 下一页

第159章 完整体模型(1/4)

只睡了三个小时,林深是被手机闹钟叫醒的。

睁开眼的时候,花了三秒钟才想起来自己是在沙发上睡着的,那本英文书还摊在茶几上,停留在折角的那一页,笔记本被压在书下面露出半截写满字的纸。

手机上显示早上八点二十分。

茶几上那碗饺子还在,一口没动。

他坐起来,脖子僵得几乎转不动,颈椎发出一串细碎的响声。

林深进卫生间冲了个凉,让自己更精神一点。

到公司的时候还不到九点,电脑屏幕上是他之前的量化模型。

这个模型他前前后后改了不知道多少遍,回测曲线也跑过无数次,但核心框架一直没怎么动过。

他以前的玩法很简单:把过去五年的行情数据全部倒进电脑里,让模型自己学规律,学完了再用同一批数据去验证,看看收益怎么样。

如果收益好看,就再调调参数,直到曲线足够漂亮为止。

现在他知道这叫什么了。

这叫偷看未来。

成绩再好也是假的。

模型在训练的时候已经见过后面的数据,跑出来的收益当然高,但一到实盘就原形毕露。

打开模型的核心代码。

他先改的是数据那一块。

以前他是把所有数据一次性读进去,然后随便切成两块,一块用来训练,一块用来测试。

这种切法最大的问题是不管时间的顺序——可能用来测试的数据里包含了训练数据之后的价格,模型提前看到了“未来”。

林深想起了昨晚在书上看到的那个比喻:做回测应该像开车一样,只能往前看,不能回头。

先用最早的一段时间的数据训练模型,再用紧挨着后面的一段时间的数据去验证,然后把验证过的数据也加入训练,再验证下一段,就这样一步一步往前推。

这个道理说起来简单,写起代码来全是坑。

先是数据就不干净。

他从行情软件导出来的那些cSV文件,日期格式乱七八糟的。

他花了大半个小时清理数据,一行一行地检查,把错的改对,把缺的补上,按时间重新排好。

弄完数据,跑起来又出问题了。

这种一步一步往前推的方法,电脑得反复读取数据,跑一遍比之前慢了四五倍。

他第一次运行的时候,电脑卡了十几分钟,屏幕上的进度条一动不动,他以为死机了,差点直接关机重启。

后来把步长调大了一点,跑得没那么精细了,但好歹能跑完。

还有一个麻烦——结果怎么算。

以前只看一个总收益,省事。
本章未完,请翻下一页继续阅读.........
上一章 回目录    收藏 下一页