供大家学习的外汇EA

资讯11个月前发布 admin
408 0 0

最近一个多月,又研究、测试了一些EA,这些EA有的很知名,有的名气小一些。
我选择的条件有两个:一是可以开仓回测;二是源代码可读。
那些用Ex4 TO MQ 破解的EA,原代码编程了一堆没有意义的代码,解读起来很难,我就暂时放到一边。

目前国内对EA的研究、开发和破译者很少,我大多到国外论坛去逛。

现在把这段时间测试的笔记、心得给大家分享一下,希望找到几个志同道合的研究者。

1、OM——2Way V3.6a_EN (推荐)

该EA默认入场信号是以当下时间框架内距700期均线60点作为首单入场点,逆势加码的Martingale。均线、偏离距离及时间框架均可调节。理论上大的时间框架似乎抗风险能力更强。但笔者测试,如果市场不回头走800点以上,也会爆仓。虽然起始手设置为0.2,加仓也不是翻倍,但增加速度依然很快。采用的不是一次全平仓的办法,而是部分盈亏单对冲。奇异的是,该EA似乎有选择性的对冲,并不一定是对冲最远的亏损单。该EA有几点值得关注和研究:(1)采用价格和均线的偏离(实际就是Bias指标)来作为入场过滤,可以在一定程度上避免逆势太多,Bias太大必然回回调。但Bias的回调并不意味着价格回调。因此,可以考虑和其他指标,如BB 或 TMA等结合起来过滤;(2)不是用固定盈利法出场,而是用固定点数的方法,因此,加仓越多,出场后盈利也越大,账户增加很快;(3)该EA在编程上呈现专业写手的风格,基本上用函数分别实现各项功能,函数的定义、调用灵活自如,可供编程参考。V3.6C 版本中增加了Profit$ 和 Loss$两个设置项,可将固定点盈利变为固定金额盈利,并可以设置固定金额的止损。盈利能力和风险都大大下降了。

2、SteadyWinnerV3(推荐)

SteadyWinner有UseMannul说明书,写得通俗易懂,因此不难理解其策略。作者坚持认为: 每次交易不能超过账户总资金的2%,因此,其资金管理严格遵照这一法则。笔者测试欧美2010年、2011年全年分别录得67%、61%的年增长率,胜率分别达到86%、88%,且资金回撤率不超过9%。当然,可能是因为欧美的测试点差为1,而用镑美来测2010年,情况就没那么乐观了,全年盈利仅为15%,因为镑美的测试点差为2。由于该EA已经用了自动增减仓位的方法,因此,盈利中已经包含了复利。10万账户的起始仓为4手。该EA出现很多0.01手仓位,或许正是盈利的秘密。作者解释,在三种情况下会出现0.01手仓:(1)如果出现亏损;(2)如果超过了周日上午(应该是避免周末持重仓);(3)如果时间在12月下半月(或许是因年底及圣诞节市场反复波动)。作者认为,当市场反复动荡的时候,该EA可以用0.01手来避免过度亏损。只有当出现反复盈一手、亏一手的情况,才会导致账户大幅亏损。该EA的标准是用在欧美1小时图上,本质上属于剥头皮程序,小止盈,大止损。不过,与多数剥头皮程序不同的是,该EA坚持顺势剥头皮,且不加仓。其入场条件为:(1)1分钟图的600期ATR值大于0.0001;(2)5分钟图的iStoch 55期、100期信号线发生穿越;(3)1分钟图的威廉指标155期威廉指标低于峰值;(4)1分钟、5分钟、15分钟、30分钟、1小时的700期EMA均低于/高于1分钟的最后收盘价;其出场条件为:(1)上述IStoch出现反穿;(2)1分钟威廉指标高于/低于-25/-75,且5分钟威廉指标高于/低于-35/-65, 15分钟威廉指标高于/低于-50。该EA内设硬止损50,止盈12,追踪止盈10点。实际盈亏比据作者说是1:2.5。相对于Steadwinner V3来说,V4作了重大改进,就是把原来的5个EMA改为只剩1、5、15期三个。如此以来,稳定性肯定不如以前,但开单量比以前增多。作者认为短期来看,V4也许不敌V3, 但长期而言,由于复利的原因,V4要优于V3。(该程序或可用作EA模板)

3、Sophia_1

一款10万元起始单量为0.01的Martingale EA居然能一年翻一倍?是的,Sophial_1在2010年镑美、2011年欧美的测试中都获得了将账户增加到20万的业绩,资金回撤率在30%上下。当然,不幸的是,2010年的欧美测试最后还是爆仓。该EA盈利的奥秘在于,加仓层数越多,盈利数额越大。因此,设计者有意在诱使EA多加仓。默认的设置为手数倍增,加满11层后至5.12手(总仓位应为10.2手)不再加仓了,等待市场回调。默认的间隔设置为30点,11层加满,市场也走上了300多点了,显然属于长线型Martingale, 其敌人也是长线上不见回调。作为EA编程,可借鉴之处在于其很多函数模型如寻找最后订单价格、计算平均价格等有通用之处。

4、10Point3v0.04

这是一款带时间过滤器的EA, 默认的交易时间设在18点——13点。不用说,这是一款利用清淡市场剥头皮的EA。使用的指标为MACD。入场点未必很精准,为此它使用了加仓的办法。默认的加仓为5单,仓位倍增。超出5单后,就只有耐心的等待市场回调。若市场不见回调,则只好用大止损解决问题。用在不同时间框架里的测试结果会不一样。笔者在5分钟图上回测欧美全年数据,虽然录得了17%的利润,但伴随的是8次资金曲线的“跳崖”,大大的吞噬了利润。看来,这种“剥头皮+Martingale”的开发思路未必有效。当然,该EA程序写作简介明朗,可以用作开发模板参考。

5、Indo Run  1.5(推荐)

2011年镑美全年回测10万元账户0.1手起单,全年仅获得30%的利润,有效开单2000余次,从交易结果上,算不上是一款出色的Martingale EA。但考虑到其仅仅经历了2次大约为35%的资金回撤,其余交易风险均处在极低水平,这在Martingale EA中也颇难得。默认的设置为间隔15点的平均网格,本人在测试中打开了Martingale功能,但并非加倍增仓,而是每手增加0.2,这虽然一方面降低了仓位增加速度,但也容易把短线拖成长线,小问题搞成大问题。开仓采取价格两端同时设限价单的方法,一边成交,则另一侧的限价单立即删除。在编程风格上呈现大型商业EA的特性,程序庞杂,设置了众多的内容显示及时间、新闻、指标等过滤器。仅外部参数就有近200项,要掌握其使用方法实在很有难度。作为Martingale EA,这种过多的过滤设置是否有效,很值得怀疑;不过,该EA的低风险运行说明了很多时候确实成功的阻止了风险。也许它确实算得上这类软件的杰作,值得深入钻研。

6、EarlyBird3

也是一款“小盈利、大止损”的剥头皮EA。默认设置中首先将交易时间作了多重过滤,可交易的机会减少了很多。与别的剥头皮EA不同的是,该EA一次在同样的位置开三单,lot相同,设置不同的止盈距离。默认的分别为10点、20点、30点;止损均为60点。这样一来,如果其中两单止盈,一单止损,损失并不算大。但如果三单都同时止损,还是痛得流血。整体上看不出有何概率上的优势。算法上用了RSI,同时还用了近16期柱子的平均高度来判断波幅。

7、EarlyTopProrate V1

其交易信号是用的日线上高、低、及开盘价的差值比较:如果日线最高价与开盘价之差大于开盘价与最低价之差,则为上升趋势;反之,日线最高价与开盘价之差小于开盘价与最低价之差,则为下降趋势,其余则为震荡趋势。然而,实测显示以该逻辑确定多、空方向胜率上似乎并不占优势:日线内的反复波折往往会打掉止损。

8、FirebirdV1.0A

虽然胜率达到90%,但一年测试下来,基本也没有利润。这就是笔者用2011年镑美在1小时图上回测该EA的结果。作者声称:该EA的工作原理是计算10期SMA并将其分别上下移动2%,形成一个通道,当价格突破通道时反向开单,如果价格向相反方向前进,就继续开单。显然,这是一个反趋势交易系统。不过,虽然加仓,但并不是Martingale,各个单子还是独立工作的,并且也设有独立的止损点。默认止盈为30点,止损为300点。正因为盈亏太不成比例,纵然胜率很高,依然难以稳定盈利。EA的程序专业而复杂,有借鉴之处,但未必可取。

9、TheMindMaster 3

该EA估计是套用的别的EA模板,因为里面存在大量可以不使用的参数。有一些明显的问题,我稍微作了修改,有的有待修改。如:(1)原来一次开三单,现在我改为了一次开一单;(2)资金管理的设置很缺乏科学性和灵活性,等等。检测2010年欧美全年,5M图取得了最佳绩效,起始资金10万,净盈利19万,不过一上来就是用的是5手单,胜率67%。其他时间框架内效果不很理想,总体基本平衡,但胜率依然很高。该EA使用W%R作为唯一指标,WR接近零时做多,接近-100时做空,多空无缝衔接退场。上述检测均未用止盈、止损和平保。估计如果将WR指标与其他指标过滤使用,有选择性的进场和更灵活的出场,或许能有盈利前景。

10、BBScalper v1.3 

使用默认设置(最多三单)在5分钟测试2010年全年欧美,总计交易近1万单,10万账户默认起始交易量为1.88手,随账户净值而增减,最高出现过23手,全年总交易不下于30万手,是名副其实的“刷单王”。资金曲线图呈增-减-增凹线趋势,与TheMindMaster 3在5分钟图上的曲线非常相似。最后获利21万。该EA用BollBand && Envolope && RSI三种指标来确定首单开仓位置,后面可以自由设置10重Martingale。本人对该EA作了略微的修改,即在首单之外的单子,也加上指标过滤,并非一超过间距就开单。如此可以适当控制Martingale的层数。上述三种指标均未限定时间框架,因此,不同的时间框架其检测结果必然不一样。切换时间框架,也可以控制因连续加仓未获回调带来的风险。该Martingale自带止损设置,其检测结果多为连续小额盈利、偶然大额亏损,其盈亏因设置不同而各不相同。本人以为,该Martingale亏盈之关键在最后一层加码是否能获得足够回调。因此,可以考虑对最后一层加码设置平保,一旦回调不足打掉平保,可以到下一个适当的位置开单,多一次机会,或许能挽救很多大亏的风险。但做多层Martingale 必然把起始单调到很小,因此其盈利能力和刷单能力也大大下降。

11、MLTrend  EA(推荐) 

和众多趋势追踪EA一样,它的测试效果并不佳,但如果真正理解了其代码的内涵,完全可以把它变成一款依靠人工判断的半自动交易程序。它追踪趋势的条件很简单:如果前一个柱子的收盘价大于设定的均线(EMA),则做多;小于设定的均线,则做空,时间框架就用当前的图表时间。如果设定只允许交易一张订单,那这就完全是一款标准的趋势追踪EA。不过,它的不同之处在于:(1)可以强制做空或做多,这就是依靠人工判断了;(2)可以允许交易四张订单(同一方向),订单的手数可自由设置,这就意味着它在一定程度上具有了Martingale的特性了。程序中的SL 和TP也都采用了隐藏型的,跟得上潮流。可贵的在于其代码简洁流畅,稍加修改,就可变为一个得心应手的半自动交易工具。

12、MyPiramid Vo8 C

采用默认设置在15钟测试2011年全年镑美,仅获得了18%的收益,资金回撤率也不到17%,似乎是“风险低、收益低”类型的Martingale。但其实,可自由设置的仓位先采用了三倍增仓,随后变为二倍增仓,比通常的Martingale风险还大。首单入场要符合两个条件(1)当前价与布林带(默认为16,2)的中线的差值比前一个柱子与布林大的差值大/小,且前一柱的差值比上前一柱大/小, 入场做多/空:(2)当前柱的牛熊差值(即BullPower-BearPower,默认设置为14期)比前一柱的牛熊差值小/大,且前一柱的该差值比上前一柱小/大,入场做多/空。这似乎是在顺势的盘整位开单。之后的加仓多以等距离挂单的形式完成。如果说该EA有何可取之处,那就是(1)仓位设置可以自由调节;(2)入场条件方便更改,从而将其改造为另外一款不同的Martingale。

13、PipSo V4

无论在15钟还是1小时框架下,在2011年的欧美、镑美测试中,该EA均获得了60%以上的胜率,让人不得不重视它。其实它的开、平仓条件很简单:在设定的期间内(默认为36), 价格大于该期内最高价的一定幅度(默认为0),则多单出场,做空;反之,在设定期间内价格小于该期内最低价格的一定幅度,空单出场,做多;如此多、空连续,每次实际只持有一个单子。从性质上看,这属于一种反趋势交易系统,在震荡行情中表现得更好,在趋势行情中,输、赢相间,占不了什么便宜。如果能和其他的反趋势信号结合,如布林带、TMA、Bias等,再辅以人工判断,恰当地设置期间参数(period)和高低幅度参数(Highemargin, Lowmargin) ,或许能得到更好的结果。

14、Pipstaker

和所有趋势追踪EA一样,尽管在趋势行情中抓到了一段大盈利,但震荡一来,就被打得稀里哗啦。采取的进出策略极其简单,上一根柱子的最高价与更前一根柱子的最高价的连线如果下穿了EMA(默认14期),则多单出场,做空;反之,上一根柱子的最低价与更前一根柱子的最低价的连线如果上穿了EMA,则空单出场,做多。代码极其简单,作为纯粹概率性策略的测试模板,应该速度很快吧。

15、VBS-VeryBlondSystem

没什么特别的,一款Martingale而已,虽然采用了X期最高点与当前价的价差来作为入场的过来信号,且将最高开仓为设在5层,但超出这个范围的风险仍然存在。单子设置了止损,自然就更难盈利了。编程程序看似简洁,但采用一次性设置正反全部限价订单的做法,似乎太耗资源,平台商肯定也不欢迎。

16、XMT-Scalper V2.3.4(推荐)

用默认的设置测试2010年的欧美,尽管取得65%的盈利,但却是在大起大落中度过的。92%的胜率很迷人,但并不意味着该EA盈利能力稳定。2011年欧美的测试就很糟。这是一款专门用于欧美的剥头皮EA,可以放在任何时间框架下工作,但读取的都是1M下的数据。作者声称其核心策略来自著名的剥头皮软件MillionDollor Pips,但代码是自己一手重写的。该EA对点差非常敏感,只能在低点差平台上才有盈利的可能,点差超过3点就失去了意义。其基本工作原理就是在价格即将突破的时候用Buystop和Sellstop订单入场。至于价格的突破,可以用两条MA,或者布林带,或者Envelop指标,或者两个ATR值来识别。除ATR外,其他几个指标都要计算一个“通道”,用“通道”的宽度与预设的VolatilityLimit进行比较。当Stop单触发后,及时添加止损、止盈,并进行跟踪止损。总之,这几乎都是短线剥头皮软件必备的套路。虽然这款EA未必真有使用价值,但它毕竟来带有正统商业剥头皮软件的血统,况且其开发者曾为大学的计算机专业的教师,在代码研究上具有极高的价值。

17、V1+V2

该EA与10point3有点类似,属于止损型Martingale,测试看不出有很可靠的盈利能力。不过,其特别之处在于买卖各自独立开单,并可设置不同的盈利目标和开单距离。也就是说,可以通过人工判断来进行多空仓位的对冲,从而在一定程度上降低风险。可以作为代码学习软件。

18、BBand CounterTrend

一款使用布林带和envelope指标的反趋势剥头皮EA,测试没有盈利。但用Band 和 evolope来作为逆势交易的指标,方法并没错。只是要辅以人工判断,纯粹靠EA太难盈利了。

19、WSFR D2HL(推荐)

这是一个据称是WallStreet Forex Robot 的克隆版,源码具有可读性,不过由于是俄罗斯人编写的,注解的俄文成为乱码,给理解带来不少难度。我还是下决心弄透它。这是一款对点差及其敏感的剥头皮EA,在以一个点差测试欧美2011年,全年获得了惊人的200倍收益。当点差扩大到2点时,收益降低到170倍左右;当点差上升到3点时,收益则剧降至22倍,且大起大落。不过,总的说来,还是一款表现出色的剥头皮EA。

入场条件:做多

第一种情况,要同时满足:

 (1)15分钟图的前一柱子的收盘价 与 15分钟图前一柱子第N期(默认为55期)SMMA(Price_Mode=High) 价的差值大于设定的的MA过滤值A(默认为18点);

 (2)15分钟图的前一柱子的收盘价 与 当前的Bid的差价大于系统默认的误差值(略低于1point)

 (3)15分钟图的前一柱子的第N期(默认值为11期)的Istoch主线值小于设定的做多过滤值A(默认值为1);

第二种情况,要同时满足:

 (1)15分钟图的前一柱子的收盘价与 15分钟图前一柱子第N期(默认为55期)SMMA(Price_Mode=High) 价的差值大于设定的的MA过滤值B(默认为39点);

 (2)同以上第(2);

 (3)15分钟图的前一柱子的第N期CCI值(默认为18期)小于设定CCI过滤值的负值(默认为170);

第三种情况,要同时满足:

 (1)同第二种情况(1);

 (2)同第二种情况(2);

 (3)15分钟图的前一柱子的第N期(默认值为11期)的Istoch主线值小于设定的过滤值B(默认值为5);

第四种情况,要同时满足:

 (1)15分钟图的前一柱子的第1期MFI值大于第3期的MFI值;

 (2)15分钟图的前一柱子的第N期(默认值为11期)的Istoch主线值小于设定的FilterWL过滤值(默认值为5);

 (3)FilterWL过滤值大于0;

第五种情况,要同时满足:

 (1)15分钟图的前一柱子的第N期CCI值(默认为18期)小于设定的FilterCL过滤值的负值(默认为250);

 (2)FilterCL过滤值大于0;

做空条件与上述条件相反,但要注意,有一些默认的设置,做空与做多的参数可能略有一点差别。纵观上述条件,可以观察到,该EA在入场时同时选择两方面的条件(1)价格处于顺势方向;(2)某一指标处在低位,有较好的入场价格。

出场条件:

第一种情况:

 (1)订单入场价格与Bid的价差小于设定的亏损点数(默认为65);

 (2)设定时间框架内(默认15分钟)、设定期间(默认为15期)的Istoch主值大于设定的iWPR平仓过滤值(默认为90);

 (3)1分钟图的上一个柱子的收盘价格与Bid的价差小于设定的误差值;

 (4)订单为市价单;

第二种情况:

 (1)1分钟图的上一个柱子的开盘价大于收盘价;(价格回调了)

 (2)Bid 价与订单入场价格大于设定的价格过滤值(默认为14点);(也就是说,盈利目标实现了)。

 (3)订单为市价单。

由此可以看出,该EA的盈亏比默认为65:14。但实际上,止损、止盈有可以对此进行调整和限制。默认TakeProfit 设为36点,Stoploss设为35点。

对资金管理,有以下几种方法:

 (1)如果AutoMM>0 而RecoverMode==false时, 直接用一种计算公式求出LotSize来:

LotSize = MathMax(MinLot, MathMin(MaxLot,MathCeil(MathMin(AutoMM_Max, AutoMM) / LotPrice / 100.0 * AccountFreeMargin() /LotStep / (LotValue / 100)) * LotStep));

 (2)如果AutoMM>0 而RecorverMode==true时, 则调用CalcLots()函数来计算。而CalcLots的计算方法十分复杂,也是该EA最出色的部分,

 (3)当AutoMM=0时,不论RecoverMode如何设置,都按固定的Size入场,默认是0.01手。

20、Blessing

Blessing在Martingale类EA中也算是大名鼎鼎,然而,其表现实在不怎么样,不论是早前的2.5版本还是随后的3.0版本,在市场回测中很快就败下阵来:输得精光。究其原因,我想还是开发者思路的问题:其一,想做一个中长线的Martingale系统,来对付长时间单边的市场,殊不知网格间隔越长,浮亏越大,而市场短期的回调尽被错过;其二,试图用一些过滤器来限制入场,以图减少风险,殊不知Martingale做的就是逆势,“搞错方向”乃其必然,一旦入场,就迫不得已,再多的过滤器又有何作用?其三,更有甚者,试图用“止损”来避免爆仓,殊不知频繁的“止损”根本没有可能盈利,最后的结果仍然是爆仓。Blessing的弱点把Martingale系统的弱点暴露无遗,却根本没有找到解决的办法,不知是如何浪得虚名的。从2.5到3.0,交易思路并没有多少变化,但程序语言的变化却天翻地覆,从简洁轻盈的风格一变为复杂庞大的架势,就是专业程序员也难以理出头绪。也许这就是许多“程序疯子”把EA带入了死路。

21、RAVI 

这款EA在2010年欧美1小时图的回测中取得了不错的成绩,但2011年就差强人意:大部分时间在亏损中度过,最终也没有将账户扳平。这是一款趋势追踪的EA,引用了客户指标RAVA indicator来识别趋势。这个RAVA指标很奇妙,其实就是一条长期均线和一条短期均线的差值,再与长期均线相除(默认为65期和7期,即(MA65-MA7)/MA65,这个值形成的曲线与标准的MACD曲线很相似,但比MACD曲线有更好的过滤性,在趋势中能把那些更大的回调信号过滤掉,有利于长久持单。因此,这款EA也没有什么秘密:在RAVA值上穿0.3时空单出场,入场做多;在RAVA值下穿-0.3时多但出场,入场做空。能不能盈利,就看市场是否出现趋势了。该EA一次在不同位置开多张正手单,盈利起来可观,亏损起来也可观。虽然看不出该EA比起同类EA有多大的优势,但用RAVI指标来作为出入场的指示,确有独到之处。这个指标虽然不常用,但却非常简洁,笔者也情有独钟,对RAVI指标作了一些改动,就是将其取值与当前框架下的平均柱长相除,这样得到的参数就可以在不同时间框架下通用,方便多了。

22、Forex Envy 2.0

如果说,Martingale类的EA经历过从“人人喊打”到“敬而远之”的历程的话,那么,Forex Envy的登场就标志着这类EA取得了冠冕堂皇的地位了。不错,以往的商业EA中也有用到Martingale加仓手法的,但它们毕竟不敢堂以Martingale自居,只算是Scalper类中以大博小的策略之一。而Forex Envy居然作为商业软件占有了一定的市场份额,还受到了一批拥趸者的追捧,说明了“市易时移”,市场环境变了,过去看上去高风险的策略正在成为盈利的利器。

Forex Envy 一踏入商业化的大门,就操作得十分商业化,除了过度的宣传和包装外,还尽可能的把传播、复制、解码它的网站帖子全部封死,连一本操作指南也难以找到,让人觉得十分神秘。不过,我好歹还是找到了一款别人破解了的2.0版,可以回测开仓,不过由于是机器转译,其原代码难以卒读,我花了整整一天时间才将其变成能理解的代码,对其策略也了解了大概。

说实话,这款EA在程序上有点“耍花招”,弄了许多让人费解却没有实际意义的代码。就其最终结果来看,与其他Martingale的手法是一样的:逐步加码,一起平仓。略有些不同的是,它给每一个订单设置了止盈、止损。默认的止损为180点,如果碰到了也基本暴仓了。其回测表现也因设置不同而有天壤之别:设置得好,盈利很快,一年做2-3倍不是问题,且未有大的“跳崖”或爆仓;设置得不好,瞬间就可以爆仓。这也是martingale EA的共性:爆仓是必然的,但在何时、何地爆仓,却很偶然,跟运气关系很大。

过去由于Martingale策略被边缘化甚至妖魔化,因此,Martingale EA的原代码大多是公开的,随处可得,像著名的Blessing,Indo Run等。现在看来,这种随处可得的EA将来可能都会包装后卖钱,建议大家留心收集,用心甄别。Martingale并非绝对不能用,但要在了解的情况下用,可掌控的情况下用,还是有控制风险可能的。

上面即为全部EA测评笔记。即使不用EA做盘,但作者在设计EA时的策略对我们也会有所帮助。

© 版权声明

相关文章

暂无评论

暂无评论...
Ads Blocker Image Powered by Code Help Pro

检测到广告拦截程序!!!Ads Blocker Detected!!!

我们检测到您正在使用扩展来屏蔽广告。请通过禁用这些广告屏蔽程序或者把网站加入白名单来支持我们。

We have detected that you are using an extension to block advertisements. Please support us by disabling these advertising blocking programs or adding the website to the whitelist.