Deprecated: Function get_magic_quotes_gpc() is deprecated in /www/wwwroot/jieqi/global.php on line 250
天才操盘,从助理到资本掌舵人- 第159章 完整体模型-都市言情-17模板网
第159章 完整体模型
    只睡了三个小时,林深是被手机闹钟叫醒的。睁开眼的时候,花了三秒钟才想起来自己是在沙发上睡着的,那本英文书还摊在茶几上,停留在折角的那一页,笔记本被压在书下面露出半截写满字的纸。

    手机上显示早上八点二十分。茶几上那碗饺子还在,一口没动。

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

    林深进卫生间冲了个凉,让自己更精神一点。到公司的时候还不到九点,电脑屏幕上是他之前的量化模型。

    这个模型他前前后后改了不知道多少遍,回测曲线也跑过无数次,但核心框架一直没怎么动过。他以前的玩法很简单:把过去五年的行情数据全部倒进电脑里,让模型自己学规律,学完了再用同一批数据去验证,看看收益怎么样。如果收益好看,就再调调参数,直到曲线足够漂亮为止。

    现在他知道这叫什么了。这叫偷看未来。成绩再好也是假的。模型在训练的时候已经见过后面的数据,跑出来的收益当然高,但一到实盘就原形毕露。

    打开模型的核心代码。

    他先改的是数据那一块。以前他是把所有数据一次性读进去,然后随便切成两块,一块用来训练,一块用来测试。这种切法最大的问题是不管时间的顺序——可能用来测试的数据里包含了训练数据之后的价格,模型提前看到了“未来”。

    林深想起了昨晚在书上看到的那个比喻:做回测应该像开车一样,只能往前看,不能回头。先用最早的一段时间的数据训练模型,再用紧挨着后面的一段时间的数据去验证,然后把验证过的数据也加入训练,再验证下一段,就这样一步一步往前推。

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

    先是数据就不干净。他从行情软件导出来的那些cSV文件,日期格式乱七八糟的。他花了大半个小时清理数据,一行一行地检查,把错的改对,把缺的补上,按时间重新排好。

    弄完数据,跑起来又出问题了。这种一步一步往前推的方法,电脑得反复读取数据,跑一遍比之前慢了四五倍。他第一次运行的时候,电脑卡了十几分钟,屏幕上的进度条一动不动,他以为死机了,差点直接关机重启。后来把步长调大了一点,跑得没那么精细了,但好歹能跑完。

    还有一个麻烦——结果怎么算。以前只看一个总收益,省事。现在每跑一小段就出一个数字,有的高有的低,他得把这些数字凑在一起看。他想了个笨办法:把所有小段的收益加起来取个平均数。不算多科学,但至少比那个“偷看未来”的总收益诚实。

    改完这段代码的时候,已经快十一点了。林深起来活动了一下肩膀,继续往下改。

    第二块要改的是止损。

    他之前的止损逻辑很简单:买进去之后,如果价格跌了超过2%,就卖掉认亏。这个数字是他自己拍脑袋定的,没有任何道理。后来听了崔金源的峰会,他把2%改成了一个会变动的数字——市场波动大的时候就放宽一点,波动小的时候就收紧一点。

    但昨晚书上讲的那个方法给了他一个更系统的思路:止损失不应该是一个固定的比例,而应该跟着价格的波动路径走。这个说起来有点复杂,他一时半会儿写不出书上那种完美的算法,但他用了一个简化的办法:在买入的时候,根据最近一段时间的波动幅度来定止损线。波动越大,止损线就放得越宽;波动越小,止损线就收得越紧。

    这样至少能让模型自动适应市场的变化,而不是用一个拍脑袋的数字死扛。

    他写这段代码的时候,绕了好几次弯子。第一次写出来的逻辑有问题,跑出来的止损线忽上忽下,完全不对。他又重新捋了一遍思路,把代码删掉重写。第二次跑通了,他把最近一个月的行情数据输进去,看了几条止损线,觉得还算合理,才继续往下走。

    第三块是他最没把握的——从数据里挖有用的信号。

    林深以前的模型只用了几个最基础的指标:均线交叉、成交量的变化、相对强弱指数。这几个指标都是烂大街的东西,随便哪个炒股软件上都有。他连筛选都没做,直接把它们塞进模型里,让模型自己去学。

    书上说,从数据里挖信号是决定模型好坏的关键。好的信号能把真正有用的信息从乱七八糟的行情里分离出来,差的信号只会让模型学到一堆没用的噪音。

    林深目前还没有本事自己从零挖出复杂的信号,但他至少可以把之前在一些报告里见过的、别人用过的指标加进去。他在网上搜了几个代码片段,挑了三个相对简单的——价格和成交量的相关性、价格的偏斜程度、连续涨跌的天数。

    他把这三个新指标加进模型,跑了一遍回测,发现收益没什么变化。

    这说明这几个指标可能是没用的,或者他加的方式不对。他在椅子上靠了一会儿,决定换个思路——与其乱加一堆不确定的东西,不如先把原有的几个指标搞清楚哪些有用哪些没用。

    他一个一个地测。先把均线交叉单独拿出来跑一遍,看看收益多少;再把成交量变化单独拿出来跑一遍;再把相对强弱指数单独拿出来跑一遍。测完一圈,他发现成交量变化这个指标几乎没什么贡献,反而让收益变得更差了。他把这个指标删掉了。

    剩下的两个指标,均线交叉和相对强弱指数,看起来还有点用,但也不是特别强。他决定不再折腾信号这一块了,先把现有的东西跑一遍整体看看效果,以后有时间再慢慢优化。

    他把数据那段、止损那段、信号那段拼在一起,重新把整个模型跑了一遍。

    这一次跑了大概十分钟。屏幕上的进度条一点一点地往前走,他靠在椅背上盯着看,手指无意识地在桌面上敲着。

    进度条走完的时候,屏幕上跳出了一串数字。

    林深盯着最上面那个数字看了五秒钟。

    平均收益率46%,最大回撤11.5%。

    脑子里飞快地算了一下。之前那个模型收益31%,回撤19.3%。现在收益多了15个百分点,回撤少了将近8个百分点。收益更高,亏得更少。

    他又想起崔金源在峰会上说的那个“活系统”——台上ppt里闪过的那个数字,收益比固定参数能提升12%左右。崔金源那个系统,跑了一堆品种、一堆策略,花了那么多时间和精力,回测收益也就提升12%。

    而他这个新模型,已经提升了15个百分点。比崔金源那个还高了3个点。

    林深靠在椅背上,长长地呼出一口气。

    这不是什么天才的灵光一现。这是他一句一句代码改出来的,一个一个坑踩过来的,一整天坐在椅子上没怎么动过换来的。这个模型他前前后后改了三四次,每一个环节他都知道为什么这么改,每一行代码他都能说出道理。

    从数据输入到回测框架,从止损逻辑到信号筛选,全都是他自己写的。不是从网上抄的代码拼出来的,不是照着别人的策略改几个参数糊弄出来的——是一个完完整整、从头到脚都属于他自己的东西。

    当然,回测是回测,实盘是实盘。实盘可能打个对折,甚至更低。道理他都懂。

    但他不想再拖了。

    林深看了一眼时间,下午五点四十。这一整天,除了中午跟苏晚周学明下楼扒了两口饭,他几乎没离开过椅子。肩膀酸得厉害,眼睛也干涩,但心里是踏实的。

    关掉回测界面,打开交易软件,林深登录了自己的实盘账户。账户里有410万,过去这段时间总共赚了10万块

    他在交易软件里新建了一个条件单,仓位设置两成仓位,每次操作80万的资金。然后再把模型的信号输出接口连接。这个操作他以前在模拟盘上做过无数次,但这一次,他把模拟盘切换成了实盘。

    鼠标停在“确认”按钮上方,他停了两秒钟。

    然后点下去了。

    系统弹出一行提示:“实盘交易已开启,请确认风险揭示书。”他勾选了同意,点击确认。

    看着那个变化,林深心跳快了几拍。

    这是林深第一次动用这么大的金额炒期货——80万。十倍杠杆就是要经历800万本金的涨跌幅幅,他想起当初第一次实盘建仓,只敢买一手,几千块保证金。但此刻,他对自己的完整体模型充满了信心。

    因为不是抄别人的策略,不是照着葫芦画瓢,自己测过的数据,自己改过无数遍的逻辑。

    明天,就是见证结果的时候了。