投资理财众神量化项目分享

量化交易让故事成为你的印钞机

2019-01-29  本文已影响3人  冰岛社区的进宝

中国股市创立以来的二十多年间,股市从公开的投融资平台,变成了许多股民一夜暴富的梦境。股市沦为赌场,散户们被当作“韭菜”。抛开牛市的狂热和股灾的哀嚎,我们需要静下心来想一想,是不是我们应该用更理性或是更科学的方法来对待股市投资这样一件严肃的事情呢?新兴的量化交易正在尝试提供一种理性投资的解决方案,通过大量的计算建立科学的盈利模型,为股民指引投资策略。最近AlphaGo的成功更让我们不禁期待人工智能未来在投资领域的广阔应用空间。

 

你还在看电脑面前盯盘看K线吗? 你还在为一次亏损寝食难安,为一次盈利欣喜若狂吗? 如果是,那也许你就OUT了。随着量化交易的蓬勃发展,一群统计狗、程序猿们已经开始使用计算机模型进行交易了,这些程序用不休眠,无人值守,24小时为你监控市场,产生利润。真有那么好的事吗?这不就是印钞机了吗? 请看下面分解。

一、你是否坚信市场的有效性?

量化交易的获利来源于市场的无效性。如果市场服从随机游走,那大部分金融机构都可以关门了,还炒什么股啊。如果市场是有效的,那可能一个人一辈子都碰不到大牛市。持续不断的上涨的K线排列,概率该有多小啊。一个比较现实的假设是,市场在一定程度上是无效的,单纯的价格序列中存在大量的获利机会。

二、概率的游戏

量化交易是概率的游戏,一个交易策略是否能够盈利,关键看胜率和盈亏比。胜率是盈利次数占总交易数的百分比,盈亏比是平均盈利和平均亏损的倍数关系。这两者需要平衡,也很难兼顾。例如,玩彩票盈亏比很高,胜率很低,所以总体是亏损的。

三、一个概率取胜的例子

上图是个高盈亏比低胜率策略的策略。虽然盈利的交易很稀疏,但是却远离零点,亏损交易很密集,但紧贴零点,所以从右边的资金曲线上看,策略总体上是盈利的。所以,量化交易者会坦然的接受亏损,也会正确的看待盈利,它们只是交易系统的一个部分。

四、量化交易策略的构建

4.1思路部分

下面用一个例子来说明一个交易策略的生产过程。某交易员发现,价格突破了一些关键点位后,会向着突破的方向持续发展。于是我们设计一个简单的突破策略:当价格突破近期高低点时,相应的做多或做空。

4.2准备条件

接下来,就要进行进一步细化,做成一个模型。需要回答这么几个问题:1、时间框架是怎样的? 小时线、日线还是周线?

2、如何定义高低点? 往回看几跟K线?

3、进场后如何止损? 固定点位止损还是ATR(平均真实波动)止损?

4.3代码实现

将上述问题具体化以后,就用程序代码将它们予以实现。国内比较普遍使用的是tradeblazer和multicharts。当然,技术实力较强的交易者也可以选择自行开发交易平台,用java,python等语言予以实现。

4.4参数优化

在策略构建的初期,一些参数是待定的。如均线的K线条数,止损点位,止盈点位等。这些参数都可以用遍历的方法进行优化,也就是说,穷举各种参数的组合,找到使盈利最大化的那一套参数。

4.5继续优化

这里,我们对止盈点位和止损点位进行了优化,绘制了一副3D优化图。X和Y轴分别代表被优化的参数,即止盈点和止损点,Z轴代表目标函数,即盈利。我们可以看到,盈利在不同的参数组合情况下高低起伏,呈现出了一个个山峰、平原和低谷。那么,我们是否应该选择那些山峰呢?其实不是。因为选择这些山峰可能会带来一个问题,就是过度拟合。表现过好的参数组合满足了过去市场的某种特殊情况,只要参数发生微小变化,策略表现就会急剧下降,这就是”山峰”的含义。相比而言,目标函数的“平原”区是更为稳定的参数,因为参数在这个范围内变化,策略表现是稳定的。所以我们要选择平原。下面这幅图是参数经过优化后的策略表现,资金曲线图表现出剧烈的波动,这反应了策略思路本身存在缺陷,高低点的突破并不能对价格起到很好的预测作用,参数优化并不能解决策略思路本身的问题。

五、回测

5.1样本内回测

5.2样本外回测

如果我们找到了一个可行的策略,又选择了合适的参数,策略回测表现让人满意,下一步就是样本外测试了。样本外测试的目的,是用新的数据对策略进行检验,考验策略的盈利能力。在之前的测试中,我们已经使用了一部分的历史数据。策略是在这些历史数据中被“训练”出来的,很容易出现过度拟合的问题。极端情况下,只要参数数量足够多,我们是可以轻易的通过历史数据训练出100%胜率的策略。但这样的策略并不具有通用性,如果用新的数据测试这样的策略,结果一定是糟糕的。

这就是我们进行样本外测试的原因。样本外数据也是历史数据,只是我们在测试初期预留出来的,没有碰过,是“干净”的数据。如果策略在新数据下的表现不好,那么这样的策略仅仅是过度拟合的结果。上图就是一个过度拟合的例子,策略盈利在样本外数据中急剧下降。

5.3蒙特卡罗测试

下一个测试是蒙特卡洛实验。在试验中,我们模拟未来市场可能出现的各种变化,考察策略是否足够健壮。这些变化可能是价格的变化,也可能是参数的变化,还有可能是交易顺序的重新排序,不一而足。借助实验软件,我们可以进行上千次的重复实验,看看策略是否还能生存下来。上图是蒙特卡罗的实验结果,红线代表原市场条件的测试结果,绿色代表最恶劣的5%的市场条件,紫色代表实验平均结果。可以看到,策略在最差的5%情况下,仍然能够维持盈利,说明策略是健壮的。

六、策略举例

6.1三均线策略

下面分别介绍一下策略的种类。从策略的交易思路看,大致可分为趋势策略(动量策略)和逆势策略(均值回转策略)。两种策略分别适应于不同的品种和市场条件。趋势策略的常见例子是均线交叉策略。短均向上突破长均做多,向下突破做空。趋势策略捕捉了市场的冲动情绪,当价格上涨时,大量交易者非理性的跟进,价格下跌时,人们又急剧恐慌。趋势策略者就可以“顺应趋势”,追涨杀跌,让“趋势成为朋友”。

6.2布林带策略

逆势策略则相反,逢高卖出,逢低买入。在某些市场的某些时段中,价格确实存在这样的高低震荡的情况,逆势者容易利用这样的价格属性频繁的积累微小利润。但是,市场总是趋势与震荡并存,我们很难判断市场何时震荡,何时趋势,有没有解决办法呢?当然有,如下策略。

6.3跨期套利策略

我们要把思路打开,将目光从单个品种转向多个品种的组合价差上,也就是常说的配对交易。例如不同到期日的期货合约价差就存在高度的相关性。例如,我们将两个不同到期日橡胶合约的价格序列放在一张图上,就可以看到他们之间的高度相关性。虽然两个合约各自的价格呈现出趋势属性,但它们的价差是稳定的震荡属性。

我们通过震荡策略,交易两者的价差,就可以获得比较稳定的收益。价差组合的方式有很多,并不局限于两个品种,我们可以通过下列通用公式,配置出无数个可能盈利的价差组合。哪个组合式可以盈利的呢?需要我们自己去挖掘。而目前我们量化家的策略超市,直接把有效的策略提供给选择使用。

七、风控管理

7.1马丁格尔仓位管理

一个优秀的策略不仅能给我们带来持续稳定的收益,同时在风控上的把握也是极为关键。正如一辆汽车在量产之前需要持续不断的测试同样的道理。而在投资市场中,只要超出无风险利率,就会存在波动,存在波动,就有可能带来亏损,所以你会发现,哪怕你投资一个极为优秀的基金或是股票,每年所带给你的年化回报也并非一成不变的,甚至有时候,行情不好,遇到熊市还会出现不小的亏损。

事实是任何投资项目都应该首先关注风险。

而量化交易对于风控的把握会着重从仓位的管理出发。仓位管理,就是决定某一策略分配多少资金的问题,初学者往往过分执迷于策略思路本身的盈利,而忽略了仓位管理。实际上,仓位是量化交易最重要的环节。即使拥有了盈利的策略,如果仓位管理不当,完全可能爆仓出局。下面我们来探讨一个有趣的仓位管理方法,叫martingale.这是一种死扛型的仓位管理机制,每经历一次亏损,我们在下次交易时就把仓位放大一倍,一旦盈利,我们就把仓位恢复到初始值。例如,当经历了3次连续亏损之后,仓位数分别是,1,2,4。如果第4次交易盈利了,我们就把仓位恢复到1.martingale的资金曲线很好看,几乎是一条直线,因为通过仓位的放大,只要获得一次盈利,就可以把之前所有的亏损全部扳回。资金曲线迅速恢复。我们看看上面这幅图,是不是很让人兴奋呢?

不幸的是,天下没有免费的午餐。交易者的资金永远是有限的,但martingale的亏损却是无限的,假设连续亏损次数进一步放大,变成5次,10次,那么仓位也会急剧放大,变成32和1024,最后,因为交易者资金不足,而出现爆仓。上图是10000次martingale后出现的爆仓现象。随着交易频率增高,爆仓的几率也逐渐增大。那我们能否继续优化呢?答案是肯定的。

上图是影响爆仓概率的因素,而影响爆仓概率的参数有这么几个:

1、策略思路本身的胜率。

2、策略的盈亏比。

3、每次亏损后翻倍的倍数。

4、盈亏交易的概率分布。

5、可以想见,胜率越高,连续亏损的概率越小;盈亏比越大,每次亏损的回撤就越小;翻倍数量越大,亏损分布越集中,越容易爆仓。

我们将翻倍系数从2降低为1.6后,用在一个胜率50%,盈亏比为1.2的策略上之后,经过10000次交易。仍然没有爆仓。

总结:一个优秀的策略从逻辑的建立再到回测,再到风控的管理都是经过千百万次的回测得出的。一个看似简单的策略,全套代码几千上万多行。6个程序猿,3个金融、数学建模师,1个风控专员。还需要万次计算机寻优,回测执行,系统风险排查,模拟盘交易测试,累计收益率评测,模型定性,参数设定调优。量化交易,简约但并不简单!

八、关于人工智能

我们再来说说量化交易的新趋势----人工智能。手工交易者的技术分析,甚至是基本面分析,未来都有可能被机器所取代。这在计算机领域,叫做模式识别,通俗的讲,叫找规律。技术分析的本质就是寻找价格规律,基本面分析又何尝不是呢?有了计算机的帮助,这些找规律的事情完全可以由计算机完成,人工神经网络就是一个典型的应用案例。在上图中,我们用一些简单的数学函数,模拟出一个个的神经元。这些神经元能够从外界接受价格信息和基本面数据,经过函数转换变成输出,反射到下一个神经元,最后从右边输出。这些转换函数的初始参数是随机的,但当我们进行成千上万次训练后,这些参数得到逐渐的优化,最后生成一个准确率较高的预测模型。模型的具体原理,是我们无法从参数的数值去理解的,这相当于一个黑盒。这样的黑盒,可能可以找到我们人脑无法发现的一些数据规律,也许只是参数拟合的结果,需要一系列的测试去加以验证。

但它相比人脑而言,能够更加细致的发现一些隐秘的规律。

上一篇 下一篇

猜你喜欢

热点阅读