其他

百万级数据攻下甲醇基本面!交易,就应该这样做!

2017-11-24 扑克投资家

应用商店下载“扑克财经”APP,订阅更多精彩内容


文 | 中轻海通恒业进出口公司  期货部门负责人  贾瑞斌

转载请联系扑克作者君(ID:puoker)授权




临近年末,甲醇价格大幅冲高,突破3000,上演V型反转。有人调侃:最好的投资不是茅台,是神醇!


全年走势来看,今年甲醇波动比以往更加剧烈。常有人问我,甲醇行情怎样才能看得准?我的答案是:基本面量化。



基本面量化,在很多人看来是一个不置可否的领域,有的人趋之若鹜,却苦于久久未能取得出色的成果,有的人浅尝辄止,或认为彼是一种不可知论,似乎没有太大价值,或困于数据、工具、思路、方法等原因而踯躅不前,视为鸡肋。但无论怎样,终归是乱哄哄你方唱罢我登场,却有鲜有出色的成果面世。而在我看来,基本面量化就是要服务于交易,不能服务于交易的基本面量化都是耍流氓。


今年8月,受永安钱潮汇的邀请,我参加了位于杭州的基本面量化论坛,在会上展示我们的甲醇基本面量化系统,获得了与会嘉宾的认可与会后的持续讨论,当时这个备受热议的系统,版本代号2.0。


而今天,我们迎来了基本面量化系统的重大升级,版本代号正式走入3.0时代,甲醇正是其中的先行者。


说起基本面量化系统,要从我数年前的经历开始。当时甲醇作为我司的拳头产品已经开始在市场上崭露头角,业务规模的扩大亟待研投部门的专业支持。我从公司的资讯部门正式调入业务板块,负责筹建公司研投部门,主抓套保、套利等一系列期货事务。我们通过各大网站获取上下游的产能产量开工率,列入每月供需平衡表,再加上各类调整数据,构建出月度平衡表。这种初级层次的基本面数据搜集,我们把它称之为1.0时代。


后来我们逐渐意识到1.0版本的重要缺陷:其一,数据频率过低、滞后过长,往往是需要滞后一个月才能有上个月的数据变动,即使快数据也需要一周时间才能有变化,这样的数据粒度过粗,一年少有的几次数据变动如何能够指导一日三变的行情变化?其二,研究员需要花大量的精力维护excel表格,而随着时间的积累,数据表早已不堪重负,excel表的崩溃让研究员也很崩溃。公司花了大价钱请来的研究员却陷入了录数据的海洋中无法自拔,简直是严重的资源浪费。


在这种情况下,系统的升级势在必行。只有系统升级才能增加数据维度,提高基本面量化精度,也只有转换系统运行模式,才能把研究员从繁重的数据整理工作中解放出来,把精力放到市场格局分析、市场逻辑推演上,从而获得更高的投入产出比。


此时,结合我自己的IT背景,我主导了系统改造升级的任务,掀开了基本面量化2.0的序幕。第一个开刀对象就是供需平衡表。上下游上千家工厂每天一个开工率,一年的数据就有36万条,5年的数据接近180万条,远远超过excel的容纳极限,更不用说在此技术上做数据透视和加工,所以我们选择了SQL Server数据库作为数据存储与运算载体,并通过数据后推功能和爬虫技术,实现了省力高效的供需平衡表。


做完这些基础数据后,我们开始考虑成果如何呈现的问题。经过权衡,最终选定了.net技术作为数据展示的载体,供需平衡表的展示图如下。



我们敢为人先,进一步细化出:1.以地区为单位的日度开工;2.不同上游工艺线路的日度开工。



与市场主流资讯网站的数据对比显示,仅2015年的整体形态相似度稍微差一些,2016年就好多了,该凸的凸,该翘的翘,2017年无论是峰值还是低谷,无论是创新高还是持续走稳,数据上相当一致,这标志着我们取得了第一个里程碑。



第二个难题是如何把尽可能多的研投体系数据搬到系统上来,除了供需,还很重要的基本面指标就是库存了。


于是有了下面的图:



搞定!接下来是利润:


创建利润公式,再搞定数据来源(利用Wind API自动获取数据,自动计算利润结果),最后是结果展示。



下一步是基差,这个太简单了,不再赘述。


做完库存、利润、基差三要素模型,突然想到还有两个问题。其一,供需平衡表是需要调整的,尤其是对未来进行调整,每个研究员的调整思路也不太一样,需要单独考虑,也就是俗称的“个性化配置”;其二,进口数据及其预测的重要性不应该被忽略。


所以又加了两个功能,一是“经调整的供需平衡表”,每个研究员可以单独配置自己的调整项,而调整项与源数据的分离保证了基础数据不会受到错误的调整;二是进口数据预测模块,顺便弄点船报数据进来,齐活!


自此,我们的甲醇基本面量化全面进入2.0时代。计算机成为处理数据的主要力量,研究员的精力得到了极大的解放。


我们的脚步并没有停留在2.0时代,而是选择马不停蹄地向量化分析、量化交易方向继续深入下去——全部数据指标化。在2.0时代,系统生成的基础数据分析仍然停留在局部、互相之间很难相互叠加比对,比如要生成一张价格与开工率的关系图表需要额外的手工比对工作,而在3.0时代,我们通过“指标化”把所有基础数据逐一提取出来、整理为统一格式的指标数据,这就相当于打通了所有数据之间的关系,做到了同一界面的数据呈现。


要知道,这里的指标化是可以自定义的,比如我可以要求把西南天然气工厂的日度开工率做成一个指标,与上游利润指标形成对比,也可以把库存和需求量做了处理后形成库销比指标,与太仓出罐进口货价格进行比较,甚至可以把八竿子打不着的指标进行对比。目前我们光甲醇就形成了接近200个专属指标,并有进一步扩充的计划。


这个功能的影响不应该被低估,我们现在已经开始通过API开始调用Wind的指标,这意味着:指标对比的范畴远超甲醇本身,开始蔓延到了宏观、蔓延到了上下游,蔓延到了市面上已有的任何一个指标(包括技术面指标)。而我们需要做的,就是用鼠标轻轻地选两个指标,即可享受到数据指标化的便利。


此外,我们还要做数据可视化,在这里特别感谢庞爔春博士的大力支持,如果把我们搜集到的基本面数据比作是做菜的原料,那庞博士无疑是一名好厨师,米其林三星肯定没跑。


下面举例说明我们取得的成果:


甲醇的供应数据有了,那基于Echarts的产能地图就应该有了:



以前我们看到的地图都是装置地图,对全国甲醇市场缺乏整体认识,而这张图告诉我们,内蒙山东都是产能超千万吨的大省,陕西接近千万,山西河南次之,在分析区域政策时,我们就能做到有的放矢。


Wind上面有套利监控的季节性价差图表,我们把这个功能延伸到所有指标(再次感谢庞博士)。如下图,蓝线表示今年数据,红线表示去年数据,灰色区域表示2013-2016年价格的高低值,红色虚线表示过去价格的平均值。在这张图里面,重点关注两个内容,其一是红色虚线的走势代表了过去价格变动的规律,比较明显的就是年底价格的上扬,年中的回调;其二是关注灰色区域面积的变动,灰色面积较大时说明数据波动大,需要多注意风险,灰色面积较小时说明季节性比较一致,即季节性因素主导了价格的波动。



接下来上一张重磅图表:全国供应量与华东市场价之间的移动相关性图,如果说均线系统的MA30意味着过去30天的平均价,那下图中就是Corr30,即过去30天的数据相关性。理论上讲,供应上升应该对应价格下降,那么二者之间呈现较高的负相关性就说明近期市场价格表达比较充分,如果之前出现了激烈行情,则意味着行情可能要反转了。从下图中我们选择了几个时间点,可以发现:相关性在负0.6以下时,价格就有可能转势(单边转震荡也是转势的一种)。这里送大家一个彩蛋,现在二者的相关性又低于负0.6了,大家要多多注意了。


注:供应量的坐标轴做了反转。


另外,我们还下大功夫开发了一套类似彭博原油价差结构图的甲醇价差图表,重点关注当前价差结构与过去一周、一月、一年的结构对比。这个图未来我们还要功能升级,结构从现在“现货-01-05-09”变成“现货-近月-中月-远月”,并考虑增加远近月纸货数据,形成更为全面的价差结构图。



我们推动“自动报表”功能,每天下午3:30由系统自动生成,内容涵盖甲醇基本面相关的50多张图和重要的基本面信息,相当于把以前周报的内容日报化,避免错过重要的数据变化。



最后是基本面量化回测交易功能。一般的程序化软件都是拿着技术指标做回测,而我们是拿着基本面指标做回测,尤其是在数据“指标化”工作的推动下,基本面策略回测交易的可玩性大大提升。



甲醇基本面量化的介绍告一段落,但我们的基本面量化的工作仍在继续。


受扑克投资家的邀请,我在扑克财经APP开立了甲醇圈子,日后会经常在圈子里讨论甲醇基本面的数据变化以及与之相关的逻辑,并与大家分享外盘、现货、工厂等不同渠道的信息,探讨投资交易策略。理所当然的,甲醇基本面日报内容也会与圈内成员共享。


人生不止有工作,人生还有哲学。每当夜深人静之时,每当我陷入茫然之时,每当我干成了一个又一个里程碑的任务之时,我时常反思,基本面量化的初心是什么?答案是,服务于交易。时至今日,看着当年自己吹过的牛一步步实现,感慨颇多,似乎又离我的初心近了一步。望与各位共勉。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存