FRAS-中文版和English版,三年实盘稳定盈利,亚盘头皮策略深度解析,外汇EA经典巨作
本帖最后由 朱大飞 于 2020-12-20 17:04 编辑FRAS是一款非常优质的亚盘头皮外汇EA,我从2018年实盘交易至今表现还不错,算是在曲折中“稳定盈利”。我将会把这个策略毫无保留的分享出来,为了让很多小白同学也能听的懂,有些地方可能会有些啰嗦,高手请略过。
一、什么是策略?什么是EA?
策略是一个抽象的概念,一般指的是交易模型。而EA是策略的一种载体,例如把头皮策略具体化成一款EA,我们就可以通过这款EA实现剥头皮交易了。有的时候,是可以把“策略”=“EA”的。不过策略的用法更广,例如我们得到一个观摩/信号,我们会问“什么策略的啊?”,就是就是在问,该观摩/信号用的什么交易模型/手法。
二、头皮策略和亚盘头皮
头皮策略指的就是剥头皮策略,简单点来说就是只赚一点点就跑。圈子里面对头皮策略的定义比较模糊,一般把盈利点数少,持仓时间段的都称作头皮策略。在国外有些人也把头皮策略,叫做短线策略。头皮策略明显特征是:一般持仓几秒到几个小时。
亚盘头皮是头皮的一种,因为在亚盘的时候,交易量小,波动性差。很多货币对都处于一种来回震荡,滞涨的状态,在这种情况下,高点买,低点买胜率非常高。
亚盘头皮的“亚盘”只是个统称,这种头皮EA的精髓就是找到合适的时间段精准有效地剥头皮。一般的时间都是在夜里,所以该种头皮,也叫夜间头皮,午夜头皮,凌晨头皮等。
三、FRAS的策略原理
1、在布林带上轨的时候开空单,在布林带下轨的时候开多单。
部分判断代码如下:
if ( Bid <= iBands(NULL,BandsTimeFrames,BandsPeriod,BandsDeviation,0,PRICE_MEDIAN,MODE_UPPER,0)) return;
代码的意思是:当Bid价小于上轨价格时,则不进行开空单。
布林带上下轨开仓,中轨平仓是一个非常经典的震荡交易策略。当然震荡交易策略,还有很多,例如根据RSI,Soch随机震荡指标,MA均线背离,CCI,R%,裸K,箱体等方式,都可以开发出震荡策略。
说到这里很多小伙伴,肯定心里面会想,那我不用bands布林带行不行,我就用RSI,超卖时我开买单,超买时我开空单,当RSI达到一个平衡的值例如50,我再平仓。很遗憾,效果比布林带差很多。其实各种各样的指标或者方法笔者都用过,但是效果都没有用布林带效果好(笔者个人经验),似乎布林带就为剥头皮而生。
2、波动性过滤
波动性过滤,主要时为了防止波动性过大或者过小。
过小的波动性,利润空间很小,根本没有做单的必要,毕竟成本摆在那;
过大的波动性,有悖于剥头皮策略的初衷,因为咱们在夜间交易,就是不希望波动性太大。更不希望有较大的趋势行情。
在EA中,我们对波荡性的判断主要依赖ATR指标。默认2pips<ATR<15pips。(1pips=10points)
判断代码如下:
if (iATR(NULL,ATRTimeFrames,ATRPeriod,0) >= 10*ATRMax*Point || iATR(NULL,ATRTimeFrames,ATRPeriod,0) <= 10*ATRMin*Point) return;
3、时间的过滤
时间的过滤是夜间头皮重要的设置之一。
时间的设置是比较令新手朋友们迷惑的,因为涉及外汇平台商的时间比较多,甚至专业的平台商客服人员都不清楚。
GMT时间:格林尼治标准时间,请记住它是标准时间,下面的任何时间,都是以它为基准。它是一个参考物。
北京时间=电脑时间=本地时间:GMT+8。针对我们大陆而言。
平台时间:平台商(经纪商)很多,他们都有自己的时间标准。大多数都是GMT+2。但是到夏天的时候,天变长了,太阳早早的就升起了。为了节省日光,平台商会提前一个小时开盘,对应的平台商的时间就变成了GMT+3了。因此就有了绝大多数平台,冬令时GMT+2,夏令时GMT+3的说法了。
也有GMT+0的平台,根据笔者的经验,这类平台,不适合做头皮EA,因为成本有点高。自动忽略该平台。下面讲的时间设置都是针对GMT+2的平台,而且都是讲的平台商时间。
GMT+2的这些平台商每天开盘的时间是0点(平台商时间),0点是一个极其重要的时间点。因为0点时,平台商的点差会大幅拉大,然后在0点后的几个小时内,逐步恢复至正常。
根据笔者的大量经验,市面上绝大多数亚盘头皮的时间设置都在21-3点之间。有的可能在0点之前例如22-0;有的可能横跨0点,例如22-2。如果大家用了笔者的这款FRAS外汇EA,时间段的设置,我也建议设置在21-3之间。
鉴于很多小伙伴对平台商时间不敏感,我把平台商时间和北京时间对应起来:
冬令时(GMT+2):平台商0点开盘,就对应北京时间6点;平台商22-2,对应北京时间4-8
夏令时(GMT+3):平台商0点开盘,就对应北京时间5点;平台商22-2,对应北京时间3-7
上面讲的时间设置是开仓时间设置,平仓的话根据行情可能在任何时间被平仓。
四、FRAS的参数介绍
市面上的经纪商基本上都是5位报价的经纪商,以EURUSD为例,当前bid价格是1.21929,小数点后保留了5位,该平台都是5位报价的经纪商。下面的介绍,都是针对5位报价的经纪商。
平台商的最小波动单位是点point,例如价格由1.21929上涨到了1.21940,我们就说上涨了11点。但是,如果按照point来计算波动点数,实在不方便,因为最后一位的波动对行情的影响微乎其微,可以忽略不计。
于是我们引入了一个新的单位pips,1pips=10point。pips也叫点,为了与point有所区别,在中文上,我们把pips叫大点,把point叫小点或者微点。在日常生活中我们常说的点是pips,下列的参数设置点相关的设置,也是针对pips设置的。
=========介绍=========
版本:当前的版本号,FRAS经过了很多版本的升级,越来越稳定。注意每个版本的功能可能会有所不同,建议使用最新版本。
适用品种:适合交易的外汇品种,这里列出的品种,只是推荐的品种。但是笔者能力有限,大家也可以开拓其他品种的玩法,没有列上的品种,并不是说肯定就不行。
适用时间轴:就是时间框架,例如M15,M5等
参数与教程链接:本文的链接
实盘信号:MQL5的实盘信号展示
=========点差和滑点=========
允许最大点差:进场的时候,如果点差高于该值就不开单。出场时为了能够更好地抓住机会出场,不进行点差过滤。在点差过滤上,新版本比之前的老版本有较好的优化,出场更及时。
允许最大滑点:滑点的控制
=========交易时间=========
时间设置说明:时间的设置都是针对平台商时间的,不是针对本地电脑时间,也不是针对GMT时间
开始开仓(小时):几点可以开仓
开始开仓(分钟):几分可以开仓,和上一个参数是一起的。
停止开仓(小时):几点不可以开仓了,注意该时间后是可以平仓的
停止开仓(分钟):几分不可以开仓了,和上一个参数是一起的。
周五停止开仓(小时):周五几点后不可以开仓了。
周五停止开仓(分钟):几分不可以开仓了,和上一个参数是一起的。
=========交易暂停=========
亏损点数:亏损多少点后,暂停交易。暂停交易可以避免大行情导致的连续止损。但也会错失有些行情,止损后的快速反弹。
暂停分钟数:亏损后,暂停多少分钟。
=========资金管理=========
参考净值:账户资金是“参考净值”的多少倍,则开单手数就是“净值适应手数”的多少倍。
净值适应手数:和参考净值对应,最终开单手数与该值成正比。
固定手数(净值适应手数为0时有效):默认是固定手数
允许开多单:留有只开多和只开空的参数设置,是因为K线是bid价产生的,对于多空的判断其实不是对称的。有时候我们只做多,或者只做空,会有奇效。还有库存费的影响,我们可以只做正向库存费/低库存费的方向。或者在3倍库存费那天只做正向库存费/低库存费的方向。
允许开空单:同上
关联品种最大开仓数:像EURAUD,EURNZD就是关联品种,如果EUR走势不好,可能会同时亏损。所以,关联品种的同时持仓数不能太多,默认是2。
止损:每一笔订单的止损点数
止盈:每一笔订单的止盈手数
订单识别码/魔术码(请与其他EA设置不同):魔术号码
订单注释:每一笔订单订单上留有的注释
=========布林带指标=========
时间轴:布林带的时间轴,时间框架,默认是当前图表的时间框架
时间周期:周期Period
偏差:就是布林带的偏差值,不清楚的大家可以看看布林带指标
=========ATR指标=========
时间轴:ATR指标的时间轴,时间框架,默认是当前图表的时间框架
ATR周期:ATRPeriod
允许的ATR值最大值:ATR值高于该值,不开单。把ATR值换成点,就可以进行对比了。
允许的ATR值最小值:ATR值低于该值,不开单。把ATR值换成点,就可以进行对比了。
英文版参数
中文版参数
四、FRAS的复盘
FRAS复盘我只复盘一个品种,加上一个复盘图,显着整篇文章完整些。其他的品种大家自己复盘,复盘都是稳定盈利的。这里我主要想讲讲复盘和实盘的区别。
1、什么是复盘。
复盘就是拿历史数据在MetaTrader软件上测试自己的EA。EA有了,MetaTrader软件有了,历史数据从哪来?
2、关于历史数据,我们需要知道
历史数据的来源:我们想在A平台使用FRAS,想先用A平台的历史数据复盘测试下。但是A平台今年刚成立,成立以前的历史数据都不是它自己的。而且只有D1和W1的数据。这是没法满足我们的要求的。举这个例子就是为了引出:我们复盘用的历史数据一般都是第三方的,不是自己本平台的。这就带来了一个坑:你用其他平台的数据测试,然后在A平台实盘交易,结果能100%一致吗?
数据的精度:我们在实时交易时,每一tick都有一组数据,每一秒又有多少tick,数据是海量的。只有傻子才会保存这些数据。有一些服务商,会保存一些关键性的数据,然后再借助这些关键数据生成所谓99.9%精度的tick数据。但是它依旧是通过一些随机算法生成的数据。和真实的数据能比吗?在普通策略上够用了,头皮策略仿真测试上还差一大截。不过数据能够达到99.9%精度已经很不错了。
数据的时间:对于像FRAS这样的亚盘头皮策略,数据的时间显得尤为重要。很多工具都支持设定数据的时间,把数据的时间设定和自己要交易的平台商时间一致就行。(GMT+2,夏令时开启日光节省)
3、什么是拟合
给你两个点,你用一个直线穿过这俩点,就是拟合,而且是适度的拟合。如果你的直线穿歪了,那就是欠拟合;如果你的用曲线穿过这俩点,就是过度拟合。
其实我们做交易就是在做拟合。大家所研究的历史K线就是给定的样本点,大家脑中思考的策略,就是“拟合方程”。
如果你开发了一款EA,它复盘是不稳定的或者亏损的,那么你的EA是欠拟合的;说明拟合的还不到位。
如果你开发了一款EA,它复盘是稳定盈利的,那么你的EA是适当拟合或者是过度拟合的;
这就意味着:如果一个复盘稳定盈利的EA,也很有可能是过度拟合导致,这样的EA,在实盘中表现会很糟糕。
4、如何判断一个EA是过度拟合还是适当拟合的。
拟合这个概念在神经网络算法中很常用,关于模型拟合程度地判断,是有着很专业的判断标准的,但是不适合绝大多数不同神经网络算法的交易者。我只能把我的经验告诉大家,方便大家做出更好的理解和判断。
策略是否好理解。
策略是否简约,而不是大量的过滤器堆积。
策略是都具有较为普遍的适用性。
策略参数是否有较高的弹性,就是参数不会变一点点就对EA效果产生非常大的影响。
开发时,是否先根据部分样本数据进行策略开发,开发结束后,用另外一部分样本数据进行验证。
也欢迎大家补充。
五、FRAS的实盘信号分析
1、100%算法交易:说明没有手工单,全是EA交易。如果账户的整个生命周期有手工单,则算法交易将<100%.
2、盈利交易70%,亏损交易30%。这里点题了,前面提高到了,亚盘头皮的胜率很高。
3、交易活动25%,其实挺低的,因为亚盘头皮一般只在夜间和早晨有单。
4、最大入金加载21.2%,风险控制的还可以。入金加载的意思就是你的总入金被占用了多少的意思。一般来说,入金加载越大,说明风险越大,一不小心就会爆仓。像很多马丁策略,和重仓策略,最大入金加载都会大的惊人,他们都是游离在爆仓边缘。
5、最大跌幅,33%。就是最大净值回撤。注意:mql5的最大回撤统计是宇宙最精准的,由于太过真实也导致了很多人不敢把信号挂到mql5。其他的我就不多说了,要么统计的是余额回撤(没有意义),要么统计不精准,例如真实最大回撤是60%,有些跟单网站,显示10%。关于净值回撤的统计,其实是挺麻烦的,如果想做到精准统计,最完美的方式就是实时统计,不过这多浪费资源,怕信号社区服务器烧不起,都得倒闭。一般的做法就是1小时统计一次,或几小时统计一次。一天统计一次的就过分了。
6、14天内获得80%的增长。这相当于信号整个生命周期781天中的1.79%天。这句话的意思就是整个交易的生命周期,在赚钱的时间很少,绝大多数时间都在打平或者亏损。其实一点不用惊讶,因为这就是所有交易员的现状。除非你玩马丁,爆仓前基本每月都在赚钱。
7、每周交易25单,单不多。
8、平均持有时间8个小时。其实这个统计无法反应真实持仓时间。因为FRAS有很多跨越周六日的单子。一般来说,FRAS平均持仓时间应该在2小时左右。
9、从资金曲线来看,大部分的月份都是盈利,但是曲线有点曲折,不够完美。总体来说是一款很优秀的策略。
10、上图的某些统计数据,虽然很专业,但是不讲人话,对于新手也不好理解。对于判断系统,影响也不大,不用在意。
11、上图显示了,信号中我交易的货币对。有一些货币对是赚钱的,也有些是亏钱了。后面我会将为什么亏损的货币对,我还在交易着。
六、实盘信号的运行状态,及EA参数优化建议
其实自从FRAS在2018年挂上后,我基本上就没动了。虽然FRAS版本更新了很多次,我也有很多更好的优化方案,但是我并没有更换新的EA,也没有进行参数的优化。最终的结果,就是信号展示那样。也就是说大家使用这个EA,最烂也就是我信号展示那样,如果按照我的建议好好优化,肯定比信号展示的好很多。
说一下,为什么我没有更换新的EA。
1、我特别注重EA交易整个生命周期的策略完整性。如果中途改变策略,调整参数,最终的统计数据就乱了。如果EA升级,或者有大的改动,我会新开一个账户。旧的账户和EA都不动,即使是稳定亏损的。
2、我比较懒,改来改去的真的很麻烦。账户也没多少资金。
对于新手,想要做出和信号差不多的效果
1、打开EURAUD、AUDCAD、AUDCHF、EURCAD、CADCHF、GBPCAD、GBPAUD、GBPCHF、EURNZD、GBPNZD的M15图表。每一个图表都加载一个FRAS。
2、设定这些EA的参数“周五停止开仓(小时)”为24,就是让周五夜间也交易,但这样做是危险的,只是为了让你的交易结果我信号的接近一致。
3、设定带有GBP的货币对的EA参数“允许最大点差 ”为3;设定带有EUR的货币对的EA参数“允许最大点差 ”为2.5;其他的货币对的EA参数“允许最大点差 ”为2;
4、设置EA参数“允许的ATR值最小值”为0,这样做是危险的,可能导致在没有利润空间的时候开单,而导致白白损失成本;这样做只是为了让你的交易结果我的信号接近一致。
对于高手,想要做出比信号更好的效果
1、选择我信号中盈利的品种进行交易
2、对于亏损的品种和我没有交易的品种,进行深入的测试与研究。不要放弃每一个可能会产生盈利的品种。
3、周五夜间禁止交易,EA默认就是禁止的,该设置保持默认即可。周五交易的了,周六日如果有什么大新闻,很容易造成跳空止损。当发生跳空时,设置的止损是没用的。
4、时间段的设置,默认是22-2,其实这是个很粗略的时间设置。大家可以把开仓时间设置在某1小时内,甚至某半小时内。如果能够在0点之前结果战斗,那是最好的,一方面不需要库存费了,另一方面不用经受0点后的巨大点差了。
5、方向的设置,一方面可以只交易正库存费的方向,另一方面K线对于多空交易的不对称性,只交易一个方向,有时候会有奇效。
6、波动性的过滤,每一个品种的波动性都是不同的。如果每个品种都设置相同的波动性过滤明显是不合理的,建议针对不同品种的波动性进行不同的ATR值限制。例如GBPNZD的波动性肯定比AUDCAD的要大。
7、止损止盈设置,特别是止损。我们应该给行情留有一定的波动空间!所以止损不应该太小。特别是0点时,点差会大幅拉大,如果你的止损太小,点差拉大后,直接给止损了,这样亏钱了就很可惜。我再重申一遍,高胜率EA,千万不要当成高盈亏比EA那样玩!也如上一点所说,每一个品种的波动性是不同的,如果每个品种都设置一样的止损,也明显是不合理的。最好是单独设置。
8、不同的品种可以设置不同的时间段,不同的交易方式。反正看似简单的策略,需要大家开拓的地方还有很多,我仅仅是抛砖引玉。
七、交易设置,及注意事项
1、我在参数中列出来的品种,以及前文提到的品种,都是可以尝试的。
2、交易时间轴:M15和M5都行;M15单会少一些,相对稳一些;M5单多一些,相对激进一点。
3、经纪商的选择:请务必选择低成本,ECN账户。并不是所有平台都适合做头皮策略。请先用模拟盘测试数周-数月。
4、该EA没有参数设置文件。自己简单设置下就行了,一点都不麻烦。
5、分享的EA是无限制文件,完全纯净,没有任何限制。
6、大家自己也要多研究,我写的已经够细了。授人以渔,希望能够帮助到大家。
7、文章我写了很久,下载EA就是对我的支持,如果你觉得本篇文章不错,对你有帮助,也可以分享出去。如果你已经有这个EA了,还愿意支付金币下载EA,我会视为捐助,谢谢你,好人好报[咖啡]。
这篇介绍对于刚接触外汇ea不久的我真是学到了不少东西 不错支持一下 感谢楼主分享 支持楼主的外汇ea 这个介绍真详细 仔细看完了 对这个ea的原理也了解了 多谢楼主 感谢分享 介绍的好详细啊 就冲这个也下载了 多谢分享 不错支持