“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,但仍有几点可取之处:
(1)设置了ReverseCondition参数,可以人为更改开仓方向。当ReverseCondition 设为1时,以前的做多方向变为做空,原来做空的方向变为做多,诚然,这也只适用于第一个订单;
(2)设置了账户保护,当AccountProtection设为1时,可以设置订单保护的规模,当订单胜过这个规模后,可以对最后一个订单单独平仓(但回测这一功能疑似没发挥作用);
(3)可以给每个订单设定止损,诚然,一般该种设置很难达到盈利,但也避免了民众诟病的“爆仓”困难。
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
Blessing努力于对传统的Martingale方法执行某些击穿。从其2.5版本中,我们发现了该种付出的方向:(1)达到资金分散策略。Blessing疑似意识到Martingale EA将全部资金运用于单种货币的风险,故意设置了将资金分成部分来管理,一个货币对可以得到其设定的一份资金。比如,假使10000美金的帐户,假使将其Portion设置为5, 该EA就将其管理的资金限定在2000美元, 再以此为基础来计算资金管理方式,风险疑似小了很多;(2)执行自动的仓位计算,即在运用资金管理设置为true的时机,程序会跟据分配的资金来计算开仓手数;(3)自动计算网格距离,其计算方法是以ATR值为基础,默认设置为日K图21期ATR值;(4)自动分析市场方向与人工强制做单方向相结合,当其MCbyMA设定为true时, 可以用MA来分析市场的行情, 进而决定首单的开仓方向;当MCbyMA设定为false时, 可以人工强制做单方向, 即MC=0 为做多, MC=1 为做空, MC=2为多/空皆可;默认的MC值为2。(5)长短网格相结合。Blessing疑似目睹了传统以短线网格为主的Martingale EA 尽管解套快,但加仓速度过快、逆势硬扛的距离太短的毛病,想把其做成一个结合中、长线的Martingale。这从其默认的参数设置就可以看出来:它将网格分成三个级别,每一个级别里可以设置最大订单数量、网格距离和止盈点数。第一级别的网格距离设置为25,止盈点数为50,订单数量为4;第二级别的网格距离设置为50,止盈点数为100,订单数量为4;第三级别的网格距离设置为100,止盈点数为150,订单数量为总共最大订单数减去第一、第二级别的订单数量。可见,第一级别的网格为短线网格,假使订单在这一级别没有达到全部平仓,往往代表着市场显现了愈加长的趋势,订单进入第二级别,运用更大的网格距离来等候市场更大的回调,第二级别的网格可以看成是中线网格;假使第二级别依然没有达到盈利并全部平仓,订单就进入第三级别,为等候市场更大的回调,其设置的网格距离就更大,可以看成是长线网格。 诚然,把短线的订单浮亏带入长线,账户的整体浮亏程度肯定是大暴涨加了。(6)运用UsePowerOutSL 参数来设定一个远距离的止损,以防止受于断电、断网或其余原因遭遇市场忽然大幅波动无法止损出局。
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变成了一件高难度的事情。
OM_2Way
这款EA值得指出的倒不是其影响有多大,而是在策略上也有所创新。它也算一款“单向度”的Martingale,其首单开仓的位置筛选器为:目前时间框架下离700期均线60点的位置(默认,可以人工设置)。假使在700期均线以下60点的地方,则做多;在700期上方60点的地方,则做空。这一筛选器的用意很显然:在偏离均线较远的地方,价格回调的概率更大,逆势行走的距离会很短,进而使回调盈利的几率放大,风险减小。这算不上是该款EA独到的地方。该款EA采取了“部分平仓”的策略,马上部分盈利单与部分亏损单对冲,获取少许利润,并非是等到价格回调到账户整体盈利的时机全部平仓。该种策略在以往的Martingale EA中很少见到,是其新颖之处。该种“部分平仓”的策略可以抓住市场最小的回调机会来减轻仓位,减弱风险;诚然,也有机会会“操之过急”,失去了全部平仓的可能,为将来留下后患。但总的上表达来,该种策略会将浮亏控制得更好,其承受市场风险的能力要强一部分。
OM_2Way在“部分平仓”的策略中,一般用已盈利的一个或两个订单,去对冲亏损最多的订单,对冲后的利润就是一次交易的盈利。比起“全部平仓”的策略来,这会增长开仓次数和交易次数,盈利速度会有所提升。值得注意的是OM_2Way确定下一订单的仓位不是从起始仓位开始计算,而是以“最后一个订单”的仓位,再加之随订单数量而增长的持仓量来计算,如此会致使,即使盘面上的订单数量并没有多,但受于“最后一个订单”的仓位很大,账户总的持仓量偏大的情形。
BK’s Grid EA Hybrid
这款EA之所以值得关注,是由于它更改了以往Martingale EA“单向度”的策略,发展出了“双向度”的Martingale。所谓“双向度”,就是多、空同期开仓,各自依照设定的Martingale 策略开仓、平仓,或者依据整体策略交叉平仓或全部平仓。双向度Martingale最大的优点就是其盈利的进展大大增强,通过账户余额的迅速上涨来对冲和减弱风险。Hybrid实施的是做多与做空分别平仓,在下单后,EA分别计算出做多、做空订单的平均价格,再加之设定的利润目标,分别将所有多单止盈线和空单止盈线,通过同期止盈的方式来达到多单全部平仓或空单全部平仓。
另外,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绝不会也拉出千点的网格来坐以待毙,而是不停地平掉一部分反向订单,追随价格前进。诚然,最终追随的效果依旧取决于趋势强弱的程度和与之有关的参数设置。假使趋势太猛、太强或参数设置不当,反向订单的平仓速度远远跟不上,“套牢”的程度也会很深。
凡事有利必有弊。PipMaker 该种交叉平仓的策略,在市场小幅震荡的时机可谓如鱼得水;在市场显现大趋势时,PipMaker 虽因其浮亏迟缓而不将对“暴仓”深感恐惧,但是,伴随“套牢”程度的加强,PipMaker会显著降低开仓和平仓获利的可能,盈利能力大大下滑。而且,其“解套”也不如一般的Martingale EA来得干净利落,要把套牢的单子一单单解掉, 往往需要市场经历多次反复震荡。恐怕是由于这个原因,后来的改编者干脆将其核心的策略删改得一干二净,增长了一部分所谓“筛选器”设置,如MA, CCI,Fish, ARSI等,用以作为开仓筛选, 把一款以“平仓策略”见长的EA,变成了一款以“开仓策略”多样化的“大路货”Martingale 了,让人颇感遗憾。
ForexHacked
谁会想到曾被“人人喊打”的Martingale EA 还会有商业的市场呢?ForexHacked 向民众确认了这一点: Martingale绝不是一个小规模交流的私人空间,它有着广阔的大众市场。作为商业软件,以Martingale为核心策略的EA的显现恐怕有着更深刻的背景:市场环境变得越来越“Ranging”,传统的交易理念越来越无法适应市场。以2.3版本为例,作为一款双向度的Martingale EA,看不出其与Hybrid有本质的区别,但它的距离、仓位、盈利目标的设置比Hybrid明晰多了。ForexHacked还设置了时间筛选器,这也是商业软件的广泛做法,用以选择有利交易时间,消除不利的交易时间,减弱风险;另外,ForexHacked还可以自行设置Martingale的起步层数,在未高达起步层数以前,订单全会运用设定的初始仓位,不顺次加仓,要等高达起步层数之后再开始加仓,如此可以在一定程度上延展EA逆势前行的距离。此外,ForexHacked也试图开出对冲仓位,来对冲受于逆势仓位过多产生的浮亏,等候市场的回调。然而,这一策略当前在试探中仍未得到成功的印证。
顺便一提的是,与ForexHacked师出同门的ForexEnvy(也是商业软件)无论在策略上依旧在代码风格上都有着显著的雷同之处。ForexEnvy的最大优点是所有订单的距离和仓位都可以单独自由设置,进而具有了更大的灵活性。
Indo Run
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的观点
在介绍了这么多款知名的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的策略是值得连续盈利的。