(转)迈达科技 王斌

28 九月 2017, 04:00
Shanshan Ma
0
508

      作为一个程序化交易员,我最大的兴趣就是爱好搜寻各种各样的策略,研究它们的代码,分析它们的逻辑,并拿它们来进行交易测试。马丁格尔策略(Martingale,简称马丁),作为策略中的异类,也一直引起我的兴趣。

说他是异类,就是因为它一直为主流交易理论所排斥。“马丁策略是纯粹的恶魔,它会吞噬掉你所拥有的一切!”,多年来,主流交易理论一直是这样评价马丁策略的。马丁策略的通常都会导致了逆势,重仓,无止损,与经典的外汇投资理念的“顺势、轻仓、止损” 是完全对立的。它像一枚随时会爆炸的“定时炸蛋”(呵呵,这个不是错别字哟,审核不能通过)一样,让投资者无法安枕。

然而,还是有不少人对此表现出热切的兴趣。这些人,要么是茫然无知的初学者,要么是精通数学及编程的技术高手。在他们的推动下,马丁策略的影响日渐强大。现在倒好,外汇市场上各种晒单的、理财的,90%以上用的都是马丁类的策略。看来马丁策略具有斩不尽、杀不绝的生命力。既然人民群众喜欢,那我们还是要重视的!

很多人好奇为什么这个策略的名字会叫“马丁”,其实它的来源就是一个叫“马丁”的男子发明的,Martingale,就是“一个叫马丁的家伙”,这个家伙从哪里来,到哪里去了,这个好像不大好考证了。大约是在美国西部大开发的时代,人们手头上有零钱就喜欢聚在一起,互相之间赌一把。

那个叫马丁的男子发明了一个战术,就是最开始只用一个很小的金额押注,比如1美分;如果赌赢了,就继续押注1美分,如果赌输了,押注就翻倍,变成2美分;如果这次赢了,赌注就变回1美分,如果又输了,赌注继续翻倍,变成4美分。以此类推。

     

我不知道这个叫马丁的家伙学没学过数学,反正这一招在短期内是很管用的。有一段时间马丁天天赢钱,吃香的喝辣的,整天挽着漂亮妹子到处溜达,搞得邻居很羡慕。于是大家都来学这种赌博方法,很快它就流行开了。现在这种赌博方法在赌场上还可以用,不过赌场很聪明,它会限定最高的押注金额。如果达到最高押注金额你还没有回本,那就不能翻倍加注,你的厄运也就随之而来了。

我们今天稍微有点数学知识,就知道这种方法从长远来看是不靠谱的。随着我们下注次数增多,盈亏的比例越来越不合理。当押注进行到第10次的时候,要用输1024元的代价去赢1元钱。假如1个人有100万元钱,从1元钱开始押注,要连输20次才会赔光。我们可能觉得连输20次的概率是非常低的。但他如果想获得10%的收益,就需要做10万轮赌博,在这10万轮赌博中,出现连输20次的可能性还是比较大的。如果他想翻倍,需要进行100万轮赌博。在100万轮赌博中,出现连输20次的可能性几乎就是注定的了!

因此,这样一个策略,它的数学期望值为负数,所以是行不通的。这就是为什么主流的交易理论完全是排斥马丁策略的,它有坚实的理论依据。

但现实与理论并不完全一致。现实中有很多复杂的因素是理论所没有包含的。

比如说,理论上的马丁策略是建立在“随机实验”这样的假设条件之下的。因为事件的结果是随机的,所以马丁策略会失效。但是,金融市场是不是随机的呢,它是不是有可以预测的部分呢?虽然对此颇有争议,但显然,金融市场并不是完全的随机市场,价格的运动并不是毫无规律的“布朗运动”,有些时候甚至还具有一定的可预测性。

再比如,马丁策略失效的另一个假设是随机实验要无限的进行下去。但在现实中,情况很可能不一样,很多人就是追求一个短暂的、局部的结果。比如,你在赌场上去用马丁策略赌博长期看一定是亏钱的,但有些人去玩一把,赢了就走,其实他赢钱的可能性还是很高的。凯恩斯说过,“从长远看,我们都会死的”,但我们从事金融交易,很多时候是要一个阶段性的结果,比如赚几个月的钱,赚完了就去休息,或者干别的,这个时候我们就没有必要用长期的结果来否定短期的效用。

由于上述因素的存在,马丁策略还是具有强大的现实生存空间。利用马丁策略,很容易创造一个短期盈利(3-6个月)看上去不错的账户,这对很多做营销的人来说是很有帮助的。但是,是不是能够在更长的时间(2-3年)内保持盈利,这就与人对市场的预测和判断关系很大了。如果一个人能够利用马丁策略,在市场上生存2-3年,积累足够的财富,然后改换门庭,也不失为一种生存之道。

当然,长期玩马丁策略,玩下去是必死的,这是由大数法则决定的。

先有了结论,我们再去看各种马丁策略。说白了,这些策略,无非都是想在死亡面前,挣扎着多活些日子。人生有限,即便没有长生不老之药,如果真的有一种药吃下去能够让我们延年益寿,也不是一件坏事情。下一篇文章,我会带着大家去看看,哪些马丁策略会带我们活得长一些。

今天我给大家分享几款我见过的马丁EA,有的流传得很广,很有名气,有的虽然默默无闻,但它们在思想方法上都有很多可以借鉴之处。可能有些朋友会说我遗漏了一些很好的马丁EA,有可能,因为我只研究有源代码的EA,对于没有源代码的,就算好到天上去,我也不予问津。

Blessing

我研究过Blessing的2.5和3.0版本。在策略贡献上,我觉得Blessing有几大看点。(1)实现资金分散策略。Blessing似乎意识到Martingale EA将全部资金运用于单种货币的风险,有意设置了将资金分成部分来管理,一个货币对可以获得其设定的一份资金。

比如,如果10000美金的帐户,如果将其Portion设置为5, 该EA就将其管理的资金限定在2000美元, 再以此为基础来计算资金管理方式,单个货币对的风险就小了很多;(2)多货币对冲功能,允许在浮亏或开仓数量达到一定程度后,选择一个其他货币对,当该货币对的Correlation 值(即货币相关性值,从-100到100)达到设定水平时,交易该货币对,达到风险对冲的目的;(3)去除最早的订单,由此来减少账户的浮亏;

同时,可以将平仓产生的损失点数加在后面订单的利润目标上,以此来弥补该损失;(4)丰富的订单入场的过滤设置,Blessing  可以选择单独或合并使用MA、CCI、BB_Stoch来作为首单入场的过滤器,可以降低入场方向做错的风险。

OM_2Way

这是我比较钟爱的一款EA。市面上很多类似的EA差不多都是在这款的基础上衍化出来的(比如一款叫elan的EA)。这款的新颖之处在于采用了“部分平仓”的策略,即用部分盈利单的利润去覆盖部分亏损单的亏损,总体上获取少许利润就将这几张订单一起出场,而不是等到价格回调到账户整体盈利的时候全部平仓。这种策略目前市面上也逐渐多起来了,但在以前,基本上还是以“整体平仓”类型的EA为主。

这种“部分平仓”的策略可以抓住市场最小的回调机会来减轻仓位,降低风险;尤其是在震荡型的趋势行情中,该EA可以通过仓位的加减在一轮交易中多次盈利平仓,不但风险整体降低了,盈利的效率也大大提高了。当然,它的缺点也是有的。也有可能会“操之过急”,失去了全部平仓的机会,为将来留下后患。但总体上说来,这种策略会将浮亏控制得更好,其承受市场风险的能力要强一些。

    

PipMaker

PipMaker  有几个版本,我们这里以10.0版本为例子探讨其策略。因为后面的版本把原来的策略改变了。PipMaker的策略很有意思,它根据事先的参数设置,同时做多与做空,以多、空订单组成的网格中心线为界,当价格处在中心线以上时,市场被看作上升趋势,以中心线以下最底端的订单为“覆盖”目标(多数时候为亏损的卖单,有时也会是盈利的买单),用已经盈利的买单或已经盈利的卖单来覆盖其亏损,获取目标利润;

当价格处在中心线以下时,市场被看作下降趋势,以中心线以上最顶端的订单为“覆盖”目标(多数时候为亏损的买单,有时也会是盈利的卖单),用已经盈利的买单或者已经盈利的卖单来覆盖其亏损,获取目标利润。也就是说,当一个订单走错方向使,除了可以在市场回调时被同向的订单“挽救”以外,还可以在市场继续向前时,被反向的订单“挽救”。这样一来,账户整体的风险必然大大下降。

凡事有利必有弊。PipMaker 这种交叉平仓的策略,在市场小幅震荡的时候可谓如鱼得水;在市场出现大趋势或者宽幅震荡时,PipMaker 的套牢”程度的日益夹生,开仓和平仓获利的机会,盈利能力大大下降。

Indo Run

Martingale EA从诞生后几乎就是沿着一条复杂化的道路发展:为了解决“爆仓”问题,开发者不得不绞尽脑汁的想出各种过滤方法以及资金管理手段。

Indo Run把这种复杂化推向了极致:它的外部设置参数就多达近200项,要理解和掌握它确实很有难度。不过,大略观察,Indo Run主要发展了各种过滤技术:

(1)时间过滤器,包括星期一至五的交易日过滤, 交易小时过滤,交易时段(即亚洲盘、欧洲盘、美洲盘)过滤,非农之日过滤,非农后第一星期日过滤等等;

(2)新闻过滤器,可以根据新闻发生时间、影响程度及被影响的货币进行选择交易;

(3)指标过滤器,使用了ATR、CCI、Momentum、RSI、MA、Envelop等多种指标进行入场过滤。其默认的设置为等值加仓,不过,也有Martingale设置的选项。Indo Run可以同时交易两个到三个货币篮子,这些订单设置有不同的MagicNumber,用同一款EA来进行管理,这是过去所有的EA中不曾用到的技术。

全智通

不用说,一听名字就知道这是中国人开发的一款马丁EA。 马丁策略要能够长期在市场上生存,资金管理非常重要。市场上绝大多数马丁是不带止损的,因此终会遇到爆仓的那一天。而带止损的马丁,如果止损的幅度把握不好,会遇到连续止损,净值一次次减少,直至完全亏光。全智通是一款带止损的EA,它用的不是硬止损,而是策略止损。

相比于一般的用固定止损的EA来,它的止损位置比较好:通常不是在亏损最严重的时候止损,而是在亏损回撤时根据指标及时出场,所以止损的金额往往很小。在度过暂时的亏损之后,利润很快可以得到修复。所以,使用这款EA,只要你不是太贪,一般情况下还是可以安心睡大觉的。

如意金刚

这款EA是本人多年的老友开发的一款EA,二十几年的编程科班出生的老司机,做出的东西是很对得住人的。

这款EA功能非常强大,几乎可以实现绝大多数的策略,前提是你要懂得它的复杂逻辑结构,而这一点世上除了本人之外恐怕再无第二人。不过,作者主要的心力还是要把其打造成为一款“反向马丁策略”的EA。在这里有必要稍微普及一下“反向马丁策略”。

通常我们看到的马丁策略都是逆势加仓,等待回调盈利,所以特别适合震荡行情。而反向马丁,它一般不逆势加仓,而是顺势入场,错了就平掉仓位,下一次入场的时候再按马丁的原理把仓位加上去。

因此,反向马丁策略,怕的不是趋势,而是震荡,如果价格在某个区域反复震荡,就会导致反复止损,让净值不断减少。这款“如意金刚”EA,主体上是反向马丁,但是在局部也做几单逆势加仓,因此,小的震荡行情它毫不惧怕,但是宽幅的震荡就是它的天敌。该EA尤其适合黄金、镑日等趋势性品种,在资金管理、入场位置等方面实现了全自动的优化计算,用起来十分方便。当然,由于它对宽幅震荡行情比较厌恶,还是不能做到百分之百放心。

全球鹰

给大家介绍了这么多款市面上的马丁类EA,作为一名马丁策略的深度研究者,如果本人拿不出一款像模像样的作品,那就愧对自己近十年的钻研了。这款“全球鹰”正是在下的作品,而且是在下用了七八年时间倾力打造的心血之作。

 

世间所有的马丁类策略,都是在想尽一切办法解决爆仓问题。不管是指标过滤也好,时间过滤也好,加仓间距也好,止损设置也好,仓位限制也好,但是都没有一种万全之策。本人认为,避免爆仓的根本解决方案还在于对冲。如果能够把逆势仓位的大部分风险敞口都对冲掉,马丁策略爆仓的概率会大大降低。如何对冲,就是一门大学问了。可以考虑用多货币的方式对冲。但鉴于多货币策略不好进行回测,开发起来比较困难,我们还是首选用同货币对来进行对冲。

如果对主单进行100%的完全对冲,毫无疑问,这样没有一点风险,但也没有一点利润。要获取利润,必须让对冲保留一定的风险敞口。这个敞口有时要大一点,有时要小一点,根据行情不同而发生变化。这样以来,整体上不断会有一部分利润落袋为安,而系统的总体风险又不至于太大。这就要解决主单和对冲单的协调问题,什么时候该平主单,什么时候该平对冲单,这就是本EA最核心的难点。

本EA通过以下三项核心技术解决了上述难点:(1)“部分平仓”策略,本EA不追求整体平仓出场,而是充分利用行情的来回波动,不断的部分平仓,以盈带亏,达到减仓直至出场的目的;(2)“订单分拆”策略,将大订单分拆成小订单来平仓,从而避免了普通马丁类EA不得不翻倍加仓的弊病;(3)“不对称加仓”策略,就是在顺趋势的一方(对冲单)快速加仓,逆趋势的一方(主单)延迟或者阻碍加仓,从而使顺势的仓位整体上保持一定的优势。实盘测试的时候,很多时候,仓位居然从顺势的方向跑出来了,所以它的抗趋势能力是超强的。

好了,我能说的就是这么多了,为实现上述功能,我用了5000多行代码,300多个函数,2000多个日日夜夜,数万次历史回测,只想告诉大家:赚钱不是一件随随便便的事情。

介绍了这么多款马丁EA,各自都有出色的功能,也都有自身局限。那么,马丁类的EA能不能用,该如何用,如果大家有兴趣,我会下回分解。

上一篇介绍了几款本人接触过的马丁EA,  基本上涵盖了市面上绝大多数马丁类EA所有套路。马丁策略是不是必然爆仓?这个要分情况而论:

(1)那些没有止损、没有对冲的马丁类策略长期来看,必然会爆仓;

(2)那些有止损的马丁策略,倒不一定会爆仓。关键在于止损后利润能否得到及时的恢复。如果不能,净值会一次比一次少,直到把账户亏光,其实也与爆仓无异。

(3)对于有对冲的马丁策略,其效果要取决于对冲运用是否得当。如果运用得好,其抗爆仓能力还是很强的。如果运用得不好,对冲单反倒可能成为一种负担,不但损耗利润,甚至还会威胁账户安全。

这样的结论,比起我多年前断言“马丁格尔的宿命就是爆仓”要更加客观、科学一些。但是,这个结论并不能让我感觉到轻松。毕竟,马丁策略所依据的“数学法则”并没有发生本质的改变。就像我们能够做的,只能是尽可能地迁延我们生命,却无法改变“死亡”这种属于生命本质的现象。

要使马丁策略活得一些,必须要在EA中融入更多的智能因素。这些其实在前面介绍的EA中均有所体现,

比如:(1)限制加仓速度和总仓位;(2)多、空双向对冲;(3)多货币对冲;(4)部分仓位平仓或止损;(5)减少盈利目标或追踪止损;(6)信号过滤及交易时段过滤;(7)资金分仓管理;(8)智能网格设置;(9)交易策略对冲;等等。

即便这样,我们还不能确保马丁策略足够安全,因此,必要的人工判断、人工介入、人工干预还是必不可少。但是,如何干预是一门学问,我经常看到的情况是:按照马丁策略自身的逻辑并无风险(或者常常是有惊无险),但是人工的介入和干预反而把事情弄糟了。

那么,有没有一些“通用法则”,能够让马丁策略的使用更加安全可靠呢?我觉得还是有的,我总结如下:

(1)降低预期收益率。很多人希望用马丁策略来做暴利,这恰恰就是爆仓之源。马丁策略的收益与风险的相关性呈指数递增,也就是说,增加1份收益,风险不是只增加1份,而是按几何级数增加。根据本人经验,如果预期年化收益率超过50%,马丁策略的风险基本无法控制。

(2)品种的选择非常重要。马丁策略对于交易品种的属性十分敏感。逆势型马丁,偏爱震荡性强的品种,像EURUSD、EURCHF、AUDNZD等是比较好的选择;顺势型马丁(即前面介绍得“反向马丁”),偏爱趋势性强的品种,像黄金、镑系货币就是上佳的选择。如果品种类型匹配错了,结果可想而知。

(3)对趋势和震荡的变化节奏有整体的预判。这个要求似乎有点高,但很多操盘老手其实是有这个潜在能力的。市场总是“趋势-震荡-趋势”交替出现的。如果我们对此细心体悟,大致掌握了市场的运动节奏,会为我们的交易带来极大的便利(当然不仅仅是对马丁策略)。大趋势之后,通常都是相对比较长时间的区间震荡,这时就是逆势型马丁的天堂;反之,长久的震荡之后,往往是价格突然爆发的前奏,这个时候那种顺势类的马丁可以入场了。

(4)对价格的运动区间有比较好的把握。马丁类EA并不追求对价格运动精准的判断,但是,能够对一段时间价格运动的区间有一个大体的把握,会大大的降低风险,提高收益。显然,要用好马丁策略,还是要有比较大的格局和视野,甚至要对宏观基本面有较好的驾驭能力。那种整天把眼光放在1分钟、5分钟时间框架的交易者,是很难用好马丁策略的。

(5)要有“空仓”的心态。马丁策略由于初期仓位比较小,盈利速度比较慢,资金闲置比例很高,于是很多人耐不住寂寞,要么扩大交易手数,要么增加交易品种,要么减少订单间距,要么放宽开仓条件,总之,不能容忍账户里没有仓位,或者仓位很轻的情况。以这样一种心态做马丁,只会死得很快。做马丁,要永远有一种“居安思危”的心态,在不符合做单条件的情况下,宁愿让仓位和资金处在闲置状态,也不能随意开单。因为,马丁的风险,往往是由一个比较随意得小单子引起的。

(6)止损是更好得选择。大多数做马丁的人对止损非常纠结:止损目标定得太低,很容易频频触及止损,最终导致无法盈利;止损目标定得太高,一次止损亏损太大,后面要靠马丁策略自身的盈利速度在短期内很难弥补亏损。但不管怎么说,及时的止损,保住本金,留得青山在不怕没柴烧,才是上策。当然,对于运用了对冲策略的交易者来说,对于对冲单的处理要果断,如果对冲的方向反了,也要对对冲单进行止损。

如果你能在上述几方面有很好得锤炼,你可以在一定的程度上把一款马丁类EA驯服,让它成为你盈利得利器。