八款知名加码对冲EA的策略评价
(2014-06-21 10:10:31)
标签:
股票ea程序化交易财经期货策略 |
“Martingale是纯粹的恶魔,它会吞噬掉你所拥有的一切!”,多年来,这是人们对Martingale的一致看法。Martingale的使用导致了逆势,重仓,无止损,与经典的外汇投资理念的“顺势、轻仓、止损”
是完全对立的。它像一枚随时会爆炸的定时zhadan一样,让投资者无法安枕。
然而,还是有不少人对此表现出热切的兴趣。多半是茫然无知的初学者,也有少数是精通数学及编程的技术狂人,在一片骂声中,Martingale
EA还是逐渐浮现到了市场的前台。
10Point3
比较早的Martingale EA可以追溯到一款叫10point3
的EA。它在2006年8月就出现在Forex-TSD的论坛上,至今已达到470页讨论,4700多条留言,算得上一个人气火爆的老贴了。
这款EA的原始版本代码比较简洁,是一款单向度的Martingale(即不能买卖同时开仓)。内置的加仓规则为:如果MaxTrade(最大加仓层数)设为12层以下,翻倍加仓;设为12层以上,加仓数为前一订单的1.5倍。内置了MACD指标判断方向,当14期MACD当前柱大于前一柱值时,开仓方向为多;反之,开仓方向为空,该判断只适用于第一个订单,一旦订单开出,就只按同一个方向开仓,直到全部平仓。
虽然这只是一款初级形态的Martingale EA,但仍有几点可取之处:
10Point3对Martingale
EA起到了一定的引领和推动作用。许多人在这个基础上进行修改参数、增加功能的尝试,使10Point3滋生出许多变异的版本。
Swb Grid
与10Point3 如出一辙的是Swb
Grid。以4.1版本为例,它与10Point3一样,是一款单向度的Martingale,向一个方向逆势加仓,在达到利润目标后全部订单同时平仓。它与10Point3明显不同是:10point3用MACD作为首单过滤指标,选择顺势方向入场,入场后价格逆势再用Martingale解套;而Swb
Grid首单过滤指标使用的是BBand、RSI及Stoch,主动选择以逆势方向入场。入场之后,按设定的距离逆势加仓,不再使用过滤指标,否则加仓距离会被放大,错过很多宝贵的回调平仓机会。Swb
Grid可以设置加仓的倍数,默认为2;也可以选择按照某一固定数加仓,如每次加仓0.01。开仓时每张订单可以设置止损和止赢;
如果选择stealth_mode=true模式开仓(即隐身模式,避免平台商进行后台操控),则以市价单模式开仓;
如果选择stealth_mode=false,则一次性将全部level内的订单以限价单的形式全部开出。同时,鉴于星期五开仓面临持仓过周末的危险,该EA还设置了“星期五开仓限制”;另外,该EA还设置了“单日盈利限制”,实现设定的单日盈利目标后,EA不再开仓。
Blessing 到了3.0以上的版本后,其源代码几乎完全改变,复杂程度大大增加,但依然沿袭诸多了Blessing 2的开发思路。
以3.8版本为例,可以看到其还在坚持Blessing 2中的资金分配策略、长中短线结合策略、人工设置市场方向策略等。Blessing
3明显的改进体现在:(1)舒适而详尽的界面显示,将各种交易信息显示得一清二楚;(2)更多的过滤设置,Blessing 3
可以选择单独或合并使用MA、CCI、BB_Stoch来作为首单入场的过滤器;(3)多货币对冲功能,允许在浮亏或开仓数量达到一定程度后,选择一个其他货币对,当该货币对的Correlation
值(即货币相关性值,从-100到100)达到设定水平时,交易该货币对,达到风险对冲的目的;(4)去除最早的订单,由此来减少账户的浮亏;同时,可以将平仓产生的损失点数加在后面订单的利润目标上,以此来弥补该损失;(5)使用了提前平仓(Early
Exist)功能,对于那些开单时间过长的订单或者开出的过多订单,可以通过减少盈利目标来使其早平仓。(6)更丰富的智能网格计算功能,除了沿用Blessing
2 的ATR值自动计算网格外,还采用了以RSI值与RSI_MA值作为过滤的SmartGrid设置。当然,Blessing
3还增加了众多的平台适用性功能,使其适用于各种不同平台。然而,由于功能的庞杂,掌握使用Blessing
3变成了一件高难度的事情。
此外,Hybrid的仓位计算及网格距离的计算也与一般的Martingale
EA有很大的不同。网格的距离不是完全固定的人工设置,也不是基于指标的自动计算,而是在计算中融入了持仓总量的因素,也就是说,在持仓总量增加的时候,其网格密度会缩小,以此来尽可能的减小平仓所需的回调距离;在计算下一订单的仓位时,又融入了网格距离的因素,即当设定的“最小网格距离”(MinGridSize)越大时,其仓位的递增速度越小。这种“距离与仓位”交融的策略在一般Martingale
EA中是很难见到的,或许这是其被称为Hybrid(混血)的原因。但这种策略给使用的设置及变换带来一定难度,必须要在理解源代码基础上,通过反复的回测检验,才能找到合适的参数设置。
PipMaker
PipMaker堪称“双向度”EA的佼佼者。不过,这只是对于15.0以前的版本而言。从15.0以后,由于改编者与原作者并非同一人,改编后的PipMaker
交易策略发生重大变化,从一款“双向度”的Martingale
EA变回到“单向度”的EA,甚至成了一款剥头皮的EA了。因此,我们在此仅以10.0版本为例子探讨其策略。
PipMaker
10.0与OM_2Way一样,坚持“部分平仓”的理念,让盈利单去对冲最远端得亏损单,而不使用账户“全部平仓”。与Hybrid相比,它除了具备Hybrid的多、空“分别平仓”的功能,还具备了多、空“交叉平仓”的功能,把Martingale
EA的策略进一步深化了。简单地说,其策略就是:根据设置同时做多与做空,以多、空订单组成的网格中心线为界,当价格处在中心线以上时,市场被看作上升趋势,以中心线以下最底端的订单为对冲目标(多数时候为亏损的卖单,有时也会是盈利的买单),用已经盈利的买单或已经盈利的卖单来与其对冲,获取目标利润;当价格处在中心线以下时,市场被看作下降趋势,以中心线以上最顶端的订单为对冲目标(多数时候为亏损的买单,有时也会是盈利的卖单),用已经盈利的买单或者已经盈利的卖单来与其对冲,获取目标利润。
PipMaker的这种策略,实际上发展出了四种对冲平仓方式:多(亏)-多(盈)对冲,空(亏)-空(盈)对冲,多(亏)-空(盈)对冲,
空(亏)-多(盈)对冲。也就是说,当一个订单走错方向使,除了可以在市场回调时被同向的订单“挽救”以外,还可以在市场继续向前时,被反向的订单“挽救”。这样一来,账户整体的风险必然大大下降。
实际检测的结果也是如此。PipMaker
开出的多、空订单,就像会移动的网格,随着价格的变动而不停的变动边界。这样一来,即使趋势行情来临,价格走出上千点,PipMarker绝不会也拉出千点的网格来坐以待毙,而是不停地平掉一部分反向订单,追随价格前进。当然,最终追随的效果还是取决于趋势强弱的程度和与之相关的参数设置。如果趋势太猛、太强或参数设置不当,反向订单的平仓速度远远跟不上,“套牢”的程度也会很深。
ForexHacked
谁会想到曾被“人人喊打”的Martingale EA 还会有商业的市场呢?ForexHacked 向人们证实了这一点:
Martingale绝不是一个小范围交流的私人空间,它有着广阔的大众市场。作为商业软件,以Martingale为核心策略的EA的出现或许有着更深刻的背景:市场环境变得越来越“Ranging”,传统的交易理念越来越无法适应市场。以2.3版本为例,作为一款双向度的Martingale
EA,看不出其与Hybrid有本质的区别,但它的距离、仓位、盈利目标的设置比Hybrid明晰多了。ForexHacked还设置了时间过滤器,这也是商业软件的普遍做法,用以选择有利交易时间,排除不利的交易时间,降低风险;此外,ForexHacked还可以自行设置Martingale的启动层数,在未达到启动层数以前,订单都将使用设定的初始仓位,不顺次加仓,要等达到启动层数之后再开始加仓,这样可以在一定程度上延展EA逆势前行的距离。另外,ForexHacked也尝试开出对冲仓位,来对冲由于逆势仓位过多造成的浮亏,等待市场的回调。不过,这一策略目前在测试中尚未得到成功的印证。
顺便一提的是,与ForexHacked师出同门的ForexEnvy(也是商业软件)无论在策略上还是在代码风格上都有着明显的雷同之处。ForexEnvy的最大优点是所有订单的距离和仓位都可以单独自由设置,从而具有了更大的灵活性。
Martingale EA
从诞生后几乎就是沿着一条复杂化的道路发展:为了解决“爆仓”问题,开发者不得不绞尽脑汁的想出各种过滤方法以及资金管理手段。Indo
Run把这种复杂化推向了极致:它的外部设置参数就多达近200项,要理解和掌握它确实很有难度。不过,大略观察,Indo
Run主要发展了各种过滤技术:(1)时间过滤器,包括星期一至五的交易日过滤,
交易小时过滤,交易时段(即亚洲盘、欧洲盘、美洲盘)过滤,非农之日过滤,非农后第一星期日过滤等等;(2)新闻过滤器,可以根据新闻发生时间、影响程度及被影响的货币进行选择交易;(3)指标过滤器,使用了ATR、CCI、Momentum、RSI、MA、Envelop等多种指标进行入场过滤。其默认的设置为等值加仓,不过,也有Martingale设置的选项。有趣的是,该EA还有一项设置,在资金每增长1万元后自动将仓位加倍;另外一项设置可在亚洲时段将仓位加倍,考虑到亚洲时段市场波动较小。其盈利模式也有好几种,第一种是采用全部订单固定金额盈利,在该模式下,每次平仓盈利的金额为固定值,与仓位的多少无关;第二种是递减盈利模式,在该模式下,随着仓位的增加,盈利目标将减少,以尽快平仓降低风险;第三种是根据ATR值来计算盈利,ATR值大则增大盈利目标,ATR值小则降低盈利目标。此外还有一些追踪止盈和保平的方法。Indo
Run也是属于单向度交易的Martingale EA,通常采用限价单的方式入场,交易同一方向的货币篮子。不过,独到的是,Indo
Run可以同时交易两个到三个货币篮子,这些订单设置有不同的MagicNumber,用同一款EA来进行管理,这是过去所有的EA中不曾用到的技术。总之,这款以复杂、深奥为特点的EA,虽然在一定程度上综合了过往Martingale
EA的技术,并有所创新,但也最终不能解决“爆仓”问题,只有在完全了解和掌握其用法并谨慎使用的情况下,才能把风险控制到最低。
在介绍了这么多款知名的Martingale
EA后,或许您会失望:没有一款EA真正解决了人们担心的“爆仓”问题!那么,Martingale是不是不能用,研究Martingale是否还有价值?
我的看法是:Martingale EA
的宿命就是“爆仓”,这一点过去、现在和未来都不会改变。就像人的宿命就是死亡一样。但人要死亡,并不妨碍人可以活得很精彩。同样,尽管Martingale的宿命就是爆仓,但一样可以好好利用,用得好,照样可以赚钱。Martingale EA
爆仓是一种必然,但何时、何地爆仓,又有一定的偶然性,与参数设置、入场位置等有很大的关系,这一点可以为我们所利用。
当前Martingale
EA从台下走到台面,从民间走向商业,正是市场环境变化的结果。记得一位投资大师回忆他年轻时代的市场环境的时候说:当时市场没有那么多波动,上涨就是持续的上涨,下跌就是持续的下跌。再来看看我们今天的外汇市场,可以说完全是两重天。现在的外汇市场几乎很难见到持续、明显、稳定的趋势了,几乎全部被震荡和“震荡型趋势”所取代。而震荡和震荡型趋势,恰恰就是Martingale
EA的天堂(也就是传统交易方法的地狱),难怪那些商业Martingale EA开始走红了!
很多人说:“Martingale 结合好的资金管理,可以战胜市场”。这话有一定道理,但似是而非。资金管理可以帮助Martingale
在市场上多存活一些日子,但无法战胜市场。除了资金管理,其他的技术也非常重要。今天的Martingale,已经不是人们想象中的那种盲目加码的机器狂人了,而是融入了更多的智能因素。这些因素在前面介绍的EA中均有所体现,比如:(1)限制加仓速度和总仓位;(2)多、空双向对冲;(3)多货币对冲;(4)部分仓位平仓或止损;(5)减少盈利目标或追踪止盈;(6)结合人工趋势判断;(7)信号过滤及交易时段过滤;(8)资金分仓管理;(9)智能网格设置;(10)交易策略对冲;等等。
笔者认为,Martingale
EA虽然注定要爆仓,但Martingale的策略却可以发挥作用,这并不矛盾。这其中一项关键的技术,就是要进行综合的资金管理和调配,从概率上取得对市场的优势,而不是一般意义上的“资金管理”。
比如说,对一个10万元资金的账户,用Martingale
EA来进行交易,按每个月10%的盈利率算,需要10个月时间(不进行复利交易),才能赚取一倍的利润,将这一倍的利润全部提取后,就可保本,脱离风险。因此,只有在10个月的交易期间内,不发生任何“极端行情”,才可以真正盈利,否则,就会发生亏损。在目前的市场状况下,这个条件不算苛刻,但也不算容易,在概率上看不出有明显的优势。
但是,如果将这个10万元资金的账户分拆为A、B两个账户,各自用一款Martingale
EA来交易,要求是:A、B两个账户在交易方向上必须完全相反。这样,在发生“极端行情”时,只会有一个账户发生爆仓,另一个账户会照常盈利,亏损率为50%。如果按每个月10%的盈利率来计算,只要之前连续盈利5个月,并把利润全部提取出来,就可保本,脱离风险。相比起前面的条件来说,这要容易多了。
再如果,我们将上述10万元资金拆分成A、B、C、D四个账户,分别用两款Martingale
EA来交易,其中A、B两个账户的交易方向相同,但设置的参数不同以及入场点不同;C、D两个账户的交易方向与A、B两个账户都是相反,但各自设置的参数以及入场点也不同。这样,在发生“极端行情”的情况下,A、B或者C、D账户会面临威胁。但是,由于参数设置及入场点的不同,在实践中通常会有不低于50%的“存活率”。因此,真正爆仓的只是其中的一个账户。风险降低为25%。也就是说,按照每月10%的盈利率,只要之前两个半月没有出现“极端行情”,就可以保本并盈利了。这在目前的市场状态下,明显具有概率上的优势,盈利前景好得多了。
也许有人说,每个月10%的盈利率,对Martingale
EA来说,目标太高,会放大风险。这就涉及到一个“资金调配”的问题。我们都很知道,Martingale
EA在大部分时候,由于其起始仓位很小,浮亏率非常低,资金利用率也很低。仓位里准备足够的资金,是为了防备“极端行情”的。为防备“极端行情”一直让账户资金闲置,大大的降低了Martingale
EA的盈利率。因此,对于具备条件的交易者,完全可以合理的调配资金,在浮亏率极低的情况下,将部分资金用于其他的交易策略(如剥头皮、趋势追踪、套利等);在极端行情来临、浮亏增大的时候,把这些资金调回来,通过减少资金占用的方式来提高盈利率,这种方法应该优于以增加仓位头寸或网格密度来提高盈利率的方法。
当然,真正要将Martingale用好,还是要结合人工趋势判断,适时进行参数调整,以适应市场的变化,减少“爆仓”的概率,提高在“极端行情”下的
“存活率”。总之,Martingale的“爆仓”并不可怕,只要这种“爆仓”发生的频率和发生的概率是在限定的范围内,其造成的损失远远低于在适宜交易期间的盈利所得,Martingale的策略是可以持续盈利的。
博主QQ:511616027

加载中…