比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

八款知名加码对冲EA的策略评价(含8款EA)

  [复制链接]
2031 17
danwan 发表于 2018-1-11 00:55:16 | 只看该作者 |阅读模式 打印 上一主题 下一主题
八款知名MartingaleEA 策略的评价
“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值为基础,默认设置为日线图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的策略是可以持续盈利的。
EA源码见附件:
  
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0

精彩评论17

跳转到指定楼层
沙发
akira00 发表于 2018-1-11 02:12:04 | 只看该作者
支持下~~
板凳
zhou5shan 发表于 2018-1-11 03:37:54 | 只看该作者






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
黄金圣旗 发表于 2018-1-11 04:13:48 | 只看该作者
总结,资料性的好文章
5#
yklt168 发表于 2018-1-11 05:52:36 | 只看该作者
谢谢楼主分享的好东西~
6#
aa98564 发表于 2018-1-11 07:27:32 | 只看该作者
沙发?。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
sm0958 发表于 2018-1-11 09:01:14 | 只看该作者
谢谢分享                 
8#
皮蛋来也 发表于 2018-1-11 10:23:28 | 只看该作者
其中好几款在国外论坛上有看到过,确认很不错,我偶尔也挂这EA做做小订单,基本上还是盈利为主
9#
sayyou 发表于 2018-1-11 11:31:08 | 只看该作者
虽然楼主总结中多次提到爆仓是必然的,我觉得楼主主要是为了时刻提醒逆势加码型的交易者要时刻牢记市场风险。其实掌握了原理,想爆仓也没那么容易,楼主在该领域的研究实践堪称国人交易先锋,该文总结也堪称加码EA经典!赞!
10#
kingsun100 发表于 2018-1-11 12:29:03 | 只看该作者
谢谢分享                  ,,,,,,,,,,,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1