二十二款外汇EA测试心得分享
最近一个多月,本人又研究、测试了一些外汇智能交易系统,这些EA有的名气较大,有的相对小众。筛选过程中,我主要关注两点:一是能否正常开仓回测;二是源代码是否便于阅读。那些通过特殊工具破解、代码混乱难懂的版本,暂时搁置一边。
目前,国内从事EA研究、开发和解析的人员较少,我大多到海外论坛交流学习。
现将这段时间的测试笔记和心得整理出来,希望能找到志同道合的朋友一起探讨。
1、OM——2Way V3.6a_EN(推荐)
该EA默认入场信号是以当前时间框架内距700期均线60点作为首单入场点,采用逆势加仓的网格策略。均线周期、偏离距离及时间框架均可调节。理论上,较大的时间框架似乎抗风险能力更强,但根据笔者的测试,如果市场单边运行超过800点,仍存在爆仓风险。虽然起始手数设置为0.2,且加仓并非翻倍,但仓位增速依然较快。平仓方式并非一次性全平,而是采用部分盈亏单对冲。值得注意的是,该EA的对冲具有一定的选择性,并不一定优先对冲最远的亏损单。其值得关注和研究的几个特点:(1)以价格与均线的偏离度(即Bias指标)作为入场过滤,一定程度上可避免过度逆势,因为偏离过大时市场大概率会回调,但偏离回调并不等同于价格必然回调,因此可考虑结合布林带、TMA等其他指标综合过滤;(2)出场方式并非固定盈利法,而是采用固定点数出场,因此加仓越多,出场后盈利越大,账户增长较快;(3)该EA编程风格专业,各功能模块化清晰,函数定义和调用灵活,具备较高参考价值。V3.6C版增加了Profit$和Loss$设置项,可将固定点数盈利改为固定金额盈利,并支持设定固定金额止损,盈利能力和风险均有所下降。
2、SteadyWinnerV3(推荐)
SteadyWinner附带了通俗易懂的英文使用手册,策略理解门槛较低。作者反复强调,每次交易资金占用不超过账户总资金的2%,并严格执行这一资金管理纪律。笔者测试欧美货币对2010年和2011年全年数据,分别录得67%和61%的年增长率,胜率高达86%和88%,资金回撤控制在9%以内。不过,该结果基于欧美点差为1的假设;若以镑美测试2010年,情况则明显逊色,全年盈利仅为15%,因为镑美点差设为2。该EA已内置自动增减仓位机制,因此盈利中已包含复利效果。以10万美元账户为例,起始仓位为4手。测试中观察到大量0.01手小仓位,这或许正是其盈利稳健的关键。作者解释,在三种情况下会使用0.01手交易:(1)出现亏损时;(2)超过周日上午时段(避免周末持重仓);(3)12月下半月(因年底及圣诞节市场波动加剧)。作者认为,当市场处于反复震荡时,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或低于-50。EA内置硬止损50点,止盈12点,追踪止盈10点,实际盈亏比据称达1:2.5。相比V3,V4版本做了较大改进,将原先的5条EMA简化为1、5、15周期三条,稳定性有所下降但开单频率增加。作者认为短周期V4可能不及V3,但长期来看,复利效应下V4更具优势。(该程序可作为EA开发模板参考)
3、Sophia_1
一款起始手数0.01的网格型EA,竟然能让10万美元账户一年翻倍?没错,Sophia_1在2010年镑美和2011年欧美的回测中均实现账户翻倍,最大回撤约30%。不过,2010年欧美测试最终以爆仓告终。该EA盈利核心在于加仓层数越多,最终盈利越大,因此设计上刻意鼓励加仓。默认手数倍增,加满11层后至5.12手(总仓位约10.2手)停止加仓,等待市场回调。默认间隔为30点,11层满仓时市场已运行300多点,属于长线型网格策略,其最大风险在于市场长期不回调。从编程角度看,其订单遍历、均价计算等函数模块具有一定通用性,值得借鉴。
4、10Point3v0.04
这是一款带时间过滤的EA,默认交易时段为18点至次日13点,显然是一款利用清淡行情进行剥头皮的策略。指标使用MACD,入场点并不精准,因此采用加仓方式补救,默认最多加仓5单,仓位倍增,超出后只能等待回调,若市场持续单边,则只能依靠大止损解决问题。在不同时间框架下测试结果差异较大。笔者在欧美5分钟图全年回测中,虽录得17%利润,但伴随8次资金曲线的明显回撤,严重吞噬盈利。可见“剥头皮+网格”的混合思路未必有效。不过该EA程序结构清晰,适合作为开发模板参考。
5、Indo Run 1.5(推荐)
2011年镑美全年回测,10万美元账户0.1手起步,全年仅获30%利润,有效开单2000余次,从收益角度看并不出众。但考虑到全年仅经历2次约35%的回撤,其余交易风险都处于极低水平,这在网格类EA中难能可贵。默认设置为间隔15点的平均网格,笔者的测试中打开了加仓功能,但并非翻倍加仓,而是每次增加0.2手,CMC Markets 外汇官网这虽然延缓了仓位增速,但也容易使短线变成长线,小亏损拖成大问题。开仓方式为在价格两端同时挂限价单,一边成交则另一边立即删除。编程风格呈现大型商业EA的特征,程序庞杂,包含大量显示设置以及时间、新闻、指标等过滤器,外部参数近200项,掌握起来相当困难。此类EA中过多的过滤设置是否有效仍存疑问,但低风险运行确实证明了其风险控制能力,或许值得深入研究。
6、EarlyBird3
这也是一款“小止盈、大止损”的剥头皮EA。默认设置中,交易时间被多层过滤,可交易机会大幅减少。与其他剥头皮EA不同,该EA会在同一位置同时开三单,手数相同,止盈距离分别设为10点、20点、30点,止损均为60点。若两单止盈、一单止损,损失不大;但三单同时止损则亏损较重。整体来看,策略并无明显概率优势。算法上使用了RSI,并结合近16根K线的平均高度来判断市场波动幅度。
7、EarlyTopProrate V1
其交易信号基于日线最高价、最低价与开盘价的差值比较:若日线最高价与开盘价之差大于开盘价与最低价之差,认定为上升趋势;反之则为下降趋势;两者相近则视为震荡。然而实测显示,该逻辑在判断多空方向上胜率并不占优,日内反复波动容易触发止损。
8、FirebirdV1.0A
虽然胜率高达90%,但一年测试下来利润几乎为零,这是笔者用2011年镑美1小时图回测的结果。作者表示,该EA原理是计算10期简单移动平均线,并将其上下移动2%形成通道,当价格突破通道时反向开单,若价格继续沿原方向运行则持续加仓。这明显属于反趋势交易系统,但加仓并非网格模式,各订单独立运作并设有独立止损。默认止盈30点,止损300点,盈亏比严重失衡,导致高胜率下依然难以稳定盈利。程序专业且复杂,有借鉴意义,但未必实用。
9、TheMindMaster 3
该EA可能套用了其他模板,内部存在大量空闲参数,部分逻辑明显可优化。笔者做了一些调整,如将原一开三单改为一单一单,资金管理方面也做了改进。在2010年欧美5分钟图上测试,起始资金10万,净盈利19万,但初始单量即为5手,胜率67%。其他时间框架下效果一般,整体基本平衡但胜率较高。该EA仅使用W%R指标,当W%R接近0时做多,接近-100时做空,多空无缝切换。以上测试未设置止盈止损及保本。若能将W%R与其他指标结合过滤,并优化进出场时机,或许能带来更稳定的盈利前景。
10、BBScalper v1.3
采用默认设置(最多三单)在5分钟图上测试2010年全年欧美数据,共成交近1万笔,10万账户默认起始手数1.88手,并随净值变化调整,最大持仓曾达23手,全年累计交易量超过30万手,堪称“刷单王”。资金曲线呈现增-减-增的波浪形走势,与TheMindMaster 3在5分钟图上的曲线颇为相似,最终获利21万。该EA基于布林带、Envelope和RSI三种指标确定首单入场点,后续最多可加仓至10层网格。笔者做了小幅修改,给除首单外的订单也加上指标过滤,避免单纯按间距盲目加仓,从而控制网格层数。上述三种指标均未限制时间框架,因此不同周期测试结果差异明显,切换周期也可能降低连续加仓未回调的风险。该EA自带止损设置,测试结果多为连续小盈利偶发大亏损,盈亏表现因参数设置而异。笔者认为,其盈亏关键取决于最后一层加仓后市场能否出现足够回调,可考虑对最后一单设置保本止损,若回调不足被扫掉,可等待更合适位置再入场,或许能有效规避部分大额亏损风险。但多层网格必然要求起始手数极小,盈利能力也会有所下降。
11、MLTrend EA(推荐)
与许多趋势跟踪EA类似,其回测表现一般,但若真正读懂其代码逻辑,完全可以将其改造为依靠人工判断的半自动交易工具。该EA跟踪趋势的条件非常简洁:若前一根K线收盘价高于设定的均线(EMA),则做多;低于均线则做空,时间框架直接采用当前图表。若限定只允许持有一张订单,它就是标准的趋势跟踪EA。其特别之处在于:(1)可强制做多或做空,这便引入了人工判断;(2)最多可同时持有四张同向订单,手数可自由设置,一定程度具备网格属性。程序中的止损和止盈均采用隐藏式,较符合行业趋势。其代码简洁流畅,稍作修改即可变成实用的半自动交易工具。
12、MyPiramid Vo8 C
默认设置下,在15分钟图测试2011年全年镑美,仅获得18%收益,最大回撤不足17%,看似“低风险低收益”型网格策略。但实际上,其仓位序列为先三倍增仓后二倍增仓,风险远高于常规网格。首单入场需同时满足两个条件:(1)当前价格与布林带(默认周期16,偏差2)中轨的差值,较前一根K线对应的差值更大或更小,且前一根的差值也较再前一根更大或更小,顺势开多或开空;(2)当前K线的牛熊力量差值(即BullPower与BearPower之差,默认周期14)较前一根更小或更大,且前一根也较再前一根更小或更大,顺势开多或开空。后续加仓多以等距离挂单完成。该EA的可取之处在于:仓位设置灵活,入场条件易于修改,便于改造为其他策略。
13、PipSo V4
在15分钟和1小时框架下,2011年欧美和镑美的测试中,该EA均取得60%以上胜率,值得关注。其开平仓条件很简单:在设定周期内(默认36),若价格高于该周期内最高价一定幅度(默认0),则平多开空;反之,若价格低于该周期内最低价一定幅度,则平空开多,如此循环,每次只持有一个订单。从策略性质看,属于反趋势交易系统,在震荡市中表现更佳,在趋势行情中则输赢参半。若能结合布林带、TMA、Bias等其他反趋势信号,并辅以人工判断,合理设置周期和幅度参数,或许能进一步优化表现。
14、Pipstaker
和多数趋势跟踪EA一样,在趋势行情中能捕获较大利润,但震荡市中则回撤明显。进出场策略极为简单:若前两根K线最高点连线向下穿越EMA(默认14期),则平多开空;反之,若最低点连线向上穿越EMA,则平空开多。代码异常简洁,作为纯概率策略测试模板,其运行速度较快。
15、VBS-VeryBlondSystem
该EA本质是一款网格策略,虽以特定周期内最高点与当前价的价差作为入场过滤信号,并将最大开仓层数限制在5层,但超出此范围的风险依然存在。订单设置了止损,这反而增加了盈利难度。程序看似简洁,但一次性设置正反全部限价单的做法较为消耗资源,平台商可能不太欢迎。
16、XMT-Scalper V2.3.4(推荐)
默认设置下测试2010年欧美数据,虽取得65%收益,但过程波动剧烈,92%的胜率看似诱人,实则稳定性不足,2011年欧美测试表现则较差。这是一款专为欧美设计的剥头皮EA,可在任意时间框架下运行,但数据读取均基于1分钟图。作者声称其核心策略源自知名的MillionDollor Pips,但代码为完全重写。该EA对点差极为敏感,仅在低点差平台上有盈利可能,点差超过3点便失去意义。其基本原理是在价格即将突破时通过Buy Stop和Sell Stop订单入场,突破识别可通过双均线、布林带、Envelope指标或两个ATR值完成。除ATR外,各指标均需计算“通道”宽度,并与预设的波动限制值比较。Stop单触发后,EA会及时添加止损止盈并进行跟踪止损。整体来看,这符合剥头皮EA的常见套路。虽然该EA未必具有实际使用价值,但因其开发者曾为高校计算机教师,其代码研究价值极高。
17、V1+V2
该EA与10point3类似,属于带止损的网格策略,测试显示其盈利能力并不可靠。但其独特之处在于买卖订单独立开立,并可分别设置不同止盈和开单距离,这意味着可通过人工判断进行多空对冲,从而降低单边风险。适合作为代码学习素材。
18、BBand CounterTrend
这是一款利用布林带和Envelope指标的反趋势剥头皮EA,回测结果未能实现盈利。但使用布林带和Envelope作为逆势入场依据的思路本身没有问题,关键在于人工判断的辅助,纯粹依赖EA难以稳定盈利。
19、WSFR D2HL(推荐)
这款EA据称是WallStreet Forex Robot的克隆版,源码可读性较好,但由于作者为俄罗斯人,注解俄文出现乱码,增加了理解难度。我花了较多精力才彻底弄懂。这是一款对点差极为敏感的剥头皮EA,以1点差测试欧美2011年数据,全年获得惊人的200倍收益;点差扩大至2点时,收益降至约170倍;点差升至3点时,收益锐减至22倍且波动剧烈。但总体而言,它仍是一款表现出色的剥头皮EA。
做多入场条件:
第一种情况,需同时满足:
(1)15分钟图前一根收盘价与15分钟图前一柱期数(默认55)的SMMA(价格模式为High)之差大于设定的MA过滤值A(默认18点);
(2)15分钟图前一根收盘价与当前Bid的差价大于系统默认误差值(略低于1点);
(3)15分钟图前一根柱子上周期为11的随机指标主线值小于做多过滤值A(默认1)。
第二种情况,需同时满足:
(1)15分钟图前一根收盘价与15分钟图前一柱期数(默认55)SMMA(价格模式为High)之差大于设定的MA过滤值B(默认39点);
(2)同上第(2)条;
(3)15分钟图前一根柱子的周期为18的CCI值小于设定CCI过滤值的负值(默认170)。
第三种情况,需同时满足:
(1)同第二种情况(1);
(2)同第二种情况(2);
(3)15分钟图前一根柱子的周期为11的随机指标主线值小于设定的过滤值B(默认5)。
第四种情况,需同时满足:
(1)15分钟图前一根柱子的周期为1的MFI值大于周期为3的MFI值;
(2)15分钟图前一根柱子的周期为11的随机指标主线值小于设定的过滤值(默认5);
(3)过滤值大于0。
第五种情况,需同时满足:
(1)15分钟图前一根柱子的周期为18的CCI值小于设定的过滤值CL(默认250)的负值;
(2)过滤值CL大于0。
做空条件与做多条件相反,但部分默认参数可能略有差异。综观上述条件,该EA入场时同时关注两方面:(1)价格顺应趋势方向;(2)指标处于超卖或超买区域,寻求较好的入场价位。
出场条件:
第一种情况:
(1)订单入场价与Bid的价差小于设定的亏损点数(默认65);
(2)设定周期内(默认15分钟、15期)的随机指标主线值大于设定的平仓过滤值(默认90);
(3)1分钟图上一根K线收盘价与Bid的价差小于设定误差值;
(4)订单为市价单。
第二种情况:
(1)1分钟图上一根K线开盘价大于收盘价(即价格出现回调);
(2)Bid价与入场价之差大于设定的盈利过滤值(默认14点),即盈利目标已达到;
(3)订单为市价单。
由此可看出,该EA默认盈亏比约为65:14,但实际止损止盈可调整,默认止盈36点,止损35点。
资金管理方式包括:
(1)当AutoMM大于0且RecoverMode为假时,直接按公式计算手数大小;
(2)当AutoMM大于0且RecoverMode为真时,调用复杂的CalcLots()函数计算,这是该EA的亮点之一;
(3)当AutoMM等于0时,无论RecoverMode设置如何,均按固定手数入场,默认0.01手。
20、Blessing
Blessing在网格类EA中较为知名,但实际表现平平。无论早期2.5版还是后期3.0版,回测中均快速亏损出局。分析原因,可能在于开发思路存在偏差:其一,试图以长线网格应对长时间单边行情,但网格间隔越长,浮亏越大,而市场短期回调却被错过;其二,加入过多过滤器以降低风险,但网格策略的本质是逆势交易,方向判断错误实属必然,一旦入场便难以摆脱,过滤器作用有限;其三,甚至试图通过“止损”避免爆仓,但频繁止损几乎不可能实现盈利,最终仍难逃爆仓结局。该EA充分暴露了网格策略的弱点,却未能找到有效解决方案,实在名不副实。从2.5到3.0,交易逻辑变化不大,但代码风格从简洁轻快变为复杂庞大,连专业程序员都难以梳理。
21、RAVI
该EA在2010年欧美1小时图回测中表现尚可,但2011年则差强人意,大部分时间处于亏损状态,最终未能收复失地。这是一款趋势跟踪EA,引用RAVI指标识别趋势。RAVI指标本质为长期均线与短期均线的差值再除以长期均线(默认周期65和7),即(MA65-MA7)/MA65,其曲线与MACD相似,但过滤性更强,能剔除趋势中的较大回调,有利于长期持单。该EA的交易逻辑并不复杂:当RAVI上穿0.3时平空做多,下穿-0.3时平多做空。盈利与否完全取决于市场是否出现明显趋势。该EA会同时在不同位置开出多张等量订单,盈利时收益可观,亏损时同样放大。虽然该EA相比同类产品并无明显优势,但RAVI指标作为出入场依据确有其独到之处,该指标简洁实用,笔者对其进行了改进,将其值与当前时间框架的平均K线高度相除,使得参数在不同周期下具有通用性。
22、Forex Envy 2.0
如果说网格类EA经历了从“人人喊打”到“敬而远之”的过程,那么Forex Envy的出现则标志着这类策略开始走向主流。以往商业EA中虽也有用到网格加仓手法,但大多不敢明言,只作为剥头皮策略中的一种辅助手段。而Forex Envy竟然作为商业软件占据一定市场份额,并受到部分交易者追捧,说明市场环境已发生变化,以往被视为高风险的策略正逐渐成为盈利工具。
Forex Envy自商业化以来,运作极为商业化,除过度宣传和包装外,还尽可能封杀传播、复制、破解其软件的渠道,连操作指南都难以寻觅,显得颇为神秘。不过笔者最终找到了一款破解版2.0,可进行回测,但由于是机器转译,代码难以阅读,花了整整一天时间才将其理解,对其策略也有了大致认识。
坦白说,这款EA在程序上有些“故弄玄虚”,包含大量无实际意义的代码。但就其最终逻辑而言,与其他网格策略并无本质区别:逐步加仓,统一平仓。略有不同的是,它为每笔订单设置了止盈止损,默认止损180点,若触发则基本等于爆仓。其回测结果因参数设置差异极大:设置得当,年化收益可达2-3倍且回撤可控;设置不当,则可能瞬间爆仓。这也是网格类EA的共性:爆仓或许难以避免,但何时发生却充满不确定性,与运气相关。
过去,由于网格策略被边缘化甚至妖魔化,其EA源代码大多是公开的,如Blessing、Indo Run等。但如今,这类原本公开的代码可能会被包装后出售,建议大家提早收集、仔细甄别。网格策略并非完全不可用,关键在于充分了解、可控使用,并做好风险控制。
以上即为全部EA测试笔记。即便不直接使用EA进行交易,其设计策略与思路依然能为我们提供有益参考。
