SuperTrend超级趋势3.3中文/English版本-稳定3年的一单一结趋势EA,经典回调策略深度解析,人人成为策略专家
本帖最后由 朱大飞 于 2020-12-22 15:22 编辑SuperTrend又叫超级趋势,是一款非常优质的趋势外汇EA,这款EA我做了3年了,中途也有回撤期,总体来说表现还不错。这款EA是裸K的,EA内部没有使用任何指标,虽然讲解起来不太容易,但这样的回调策略太过经典,我会尽最大的努力给大家讲清楚,方便大家优化参数和后续使用。
一、什么是策略?什么是EA?
策略是一个抽象的概念,一般指的是交易模型。而EA是策略的一种载体,例如把某趋势策略具体化成一款EA,我们就可以通过这款EA实现趋势交易了。有的时候,是可以把“策略”=“EA”的。不过策略的用法更广,例如我们得到一个观摩/信号,我们会问“什么策略的啊?”,就是就是在问,该观摩/信号用的什么交易模型/手法。
二、趋势策略和回调策略
我们喜欢给策略进行分类,但是很难做到分类的互斥,而策略本身又是复杂的,它可能有多个分类属性。那我们怎么给它归类呢?只能是选择它最突出的策略成分进行分类。例如一款EA,它根据均线顺势开仓,亏损后加仓,然后总体盈利平仓。这样一款EA我们把它叫做什么策略呢?趋势策略?马丁策略?趋势马丁策略?每个人的分类习惯不同,我更愿意把它叫做马丁策略。
对于趋势策略我没法给出它的定义,我只能说对于一个EA,它的趋势成分策略,在整个策略中起着至关重要的作用,我可能会把它叫做趋势策略。判断趋势的方法太多了,比如最简单的MA均线指标,甚至像RSI这样的震荡指标也能用来判断趋势。当然MA这样的经典趋势指标,也能判断震荡。指标是死的,用法是活的。
下文中,我会介绍SuperTrend中的如何不使用任何指标,直接借助K线判断趋势。
回调策略还是很好理解的,就是在多头趋势或者空头趋势的回调位置,做单。如果你也有大量的EA经验的话,你会发现这样策略的EA很多。如下图,开多单时,行情正处于小级别上涨趋势中。
策略千千万,为啥在我仅有的几篇文章中,我讲到了回调策略。因为赚钱的策略就那几种。不知道怎么讲才能让大家理解:“赚钱的策略就那几种”这句话。这样吧,我列出一些事实大家自己分析:
1、早年间我给很多人写过EA,基本上大家自己想出来的都是亏钱的。复盘都通不过。传统的技术分析理论,真的只是小学水平。
2、早年间我除写EA之外,我也研究别人的EA,谁没研究过几千个EA呢?我研究的结果就是,那些复盘稳定盈利的策略类型就那么几种。碍于精力和时间,我没法给大家“娓娓道来”是哪几种,肯定包含我发布的这几种。
3、多年持续分析MQL5的流行EA和信号。刨去去马丁、网格、对冲的,能赚钱的策略也只是那几种。
4、以我自己的技术水平,如果脱离已经成熟策略框架,我也很难写出稳定盈利的EA。也就是说真正能赚钱的策略很有限,基本就那几种以及他们的变种。想开发出完全原创的策略,非常难。
当然回调策略的实现方法也有很多,不同的方法就对应了不同的EA。如果你的方法好,效果也会好;如果方法普通,也是赚不到钱的。我发布的EA为什么我介绍这么细,我是希望大家能够理解策略,不理解策略,我换一套参数,换个名字,你又得多研究一个新EA,多么的费时费力。理解策略,万变不离其宗。
三、SuperTrend超级趋势的策略原理
1、判断趋势
我们定义一个箱体(定义箱体主要是为了方便大家理解),箱体包含最近的66(可设置)根K线。这66根K线的最高点就是箱体的顶,这66根K线的最低点就是箱体的底。只要当前价格距离底部大于60点(可设置),EA就判定,当前处于多头趋势;只要当前价格距离顶部大于60点(可设置),EA就判定,当前处于空头趋势。
参数-“趋势箱体的周期”,就是调整箱体的判断的K线数的。如果保持判断点数不变,减小“趋势箱体的周期”,那么只有更加笔直的趋势才能满足要求了。
参数-“当前价与顶/低的距离”,就是调整当前价距离顶/底的点数。如果判断的K线数不变,减小“当前价与顶/低的距离”。那么不太明显的趋势也能满足要求了。
2、找到回调点
通过以上的趋势判断,我们可以找到一些上涨点位或下跌点位。但这些位置并不都适合我们开单。
这里我们就用到了第二个箱体,第二个箱体只包含9根K线(数字可以设置)是一个很小的箱体。为了方便描述箱体的各个位置,我们定义箱体顶部的水平位是100;箱体底部的水平位是0;那么中间的水平位就是50了。
参数中的“开仓水平位”、“平仓水平位”说的就是箱体的水平位了。一般我们都是在水平位小的时候开多单;水平位大的时候开空单;
3、开仓
当行情满足前两步的判断,就可以开仓了,例如:
趋势判断为“多头趋势”,价格又处于震荡箱体的“低水平位”,那么我们就开多单;表现出来就是,在上涨行情的回调处,开了一个多单;
趋势判断为“空头趋势”,价格又处于震荡箱体的“高水平位”,那么我们就开空单;表现出来就是,在下跌行情的回调处,开了一个空单;
4、平仓
平仓的话,可以有两种出场时机选择:
第一种就是“立即出场”,当行情满足机会就出场,优势是出场比较迅速,果断。
第二种就是“下根K线出场”,就是只有当每根K线开盘时候,才检测是否满足出场条件。优势是,节省电脑资源,有时候利润会拿的多一些。缺点是,有时候出场不够果断。
两种对比,通过复盘表现来看,总体效果差不多。
平仓的话,有三种出场方式,哪种符合要求,按照哪种出场:
第一种是按照震荡箱体的“水平位”出场。上面已经讲过,就是在“高水平位”的时候,我们平多单;在“低水平位”的时候我们平空单。
第二种是按照“盈利点数”出场。
第三种是按照止损出场,根据止损周期,判断最近66根K线的最大值和最小值作为止损点。如果你觉得止损太大了,你可以把66减少一点;如果你觉得止损太小了,也可以把66增大点。当然,参数中的最小止损点数和最大止损点数也可以把止损限定在一定范围内,防止过大/过小。
四、SuperTrend超级趋势的参数介绍
市面上的经纪商基本上都是5位报价的经纪商,以EURUSD为例,当前bid价格是1.21929,小数点后保留了5位,该平台都是5位报价的经纪商。下面的介绍,都是针对5位报价的经纪商。
平台商的最小波动单位是点point,例如价格由1.21929上涨到了1.21940,我们就说上涨了11点。但是,如果按照point来计算波动点数,实在不方便,因为最后一位的波动对行情的影响微乎其微,可以忽略不计。
于是我们引入了一个新的单位pips,1pips=10point。pips也叫点,为了与point有所区别,在中文上,我们把pips叫大点,把point叫小点或者微点。在日常生活中我们常说的点是pips,下列的参数设置点相关的设置,也是针对pips设置的。如果针对有的品种1pips=100point,我们可以设置参数“大点与小点比值”=100。
=========介绍=========版本号:当前版本号适用品种:XAUUSD,EURUSD,GBPUSD,GBPJPY,USDJPY,NZDJPY,AUDNZD...,除了这里列出的一些,其他的大家也可以多尝试,“尽信书不如无书”,希望大家多开拓自己的玩法。适用周期:时间轴,时间框架。建议加载在M15时间轴参数与教程链接:本文的链接信号链接:MQL5信号链接=========基本设置=========参考净值:账户资金是“参考净值”的多少倍,则开单手数就是“净值适应手数”的多少倍。净值适应手数:和参考净值对应,最终开单手数与该值成正比。开仓手数:固定手数,“净值适应手数”为0时有效允许的最大点差:点差高于该值不开单大点与小点比值:默认1pips=10point。这里填10就行。有些汇友,交易指数的话,可能这里需要改为100.========趋势箱体=========趋势箱体周期:趋势箱体由多少根K线构成。当前价与顶/底的距离:判断多头时,就代表当前价与底的距离;判断空头时,就代表当前价与顶的距离;========震荡箱体=========震荡箱体周期:震荡箱体由多少根K线构成。允许的最小箱体:如果箱体顶和底的距离小于该值,就不开仓,因为利润空间太小了。========进场=========多单开仓水平位:震荡箱体的水平位,一般需要<50;空单开仓水平位:震荡箱体的水平位,一般需要>50;========出场=========出场时机:默认是立即出场,也可以选择下一根K线出场(出场会慢一些),他俩总体效果差不了太多。多单平仓水平位:震荡箱体的水平位,一般需要>50;空单平仓水平位:震荡箱体的水平位,一般需要<50;盈利点数:盈利多少点平仓止损周期:计算动态止损用的,用最近若干根K线的最高点和最低点做为止损。最小止损点数:计算的动态止损点数如果小于该值,就采用该值。最大止损点数:计算的动态止损点数如果大于该值,就采用该值。=========交易时间=========时间设置说明:说明文字,无须设置开始开仓(小时):几点可以开仓,对于时间设置不了解的,可以查看FRAS的介绍,用法类似:https://www.eabook.cn/ea-179-1-1.html
开始开仓(分钟):几分可以开仓,和上一个参数是一起的。
停止开仓(小时):几点不可以开仓了,注意该时间后是可以平仓的
停止开仓(分钟):几分不可以开仓了,和上一个参数是一起的。
周五停止开仓(小时):周五几点后不可以开仓了。
周五停止开仓(分钟):几分不可以开仓了,和上一个参数是一起的。=========颜色标记=========多单颜色:多单的标记颜色空单颜色:空单的标记颜色=========其他=========订单识别码/魔术码(请与其他EA设置不同):魔术码订单注释:每一笔订单上的注释
中文版
英文版
四、SuperTrend超级趋势的复盘
SuperTrend超级趋势我只复盘了三个品种。复盘是我用新的参数复盘的,新的参数我单独拿出来了,需要大家单独下载,因为我也花了很多时间测试,会收20金币,望大家理解。有需要的可以下载。旧的参数也还不错,与新的参数差别没有太大,我会和EA放在一个文件包中。其他的品种大家自己复盘,复盘都还不错。这里我主要想讲讲复盘和实盘的区别。
1、什么是复盘。
复盘就是拿历史数据在MetaTrader软件上测试自己的EA。EA有了,MetaTrader软件有了,历史数据从哪来?
2、关于历史数据,我们需要知道
历史数据的来源:我们想在A平台使用SuperTrend,想先用A平台的历史数据复盘测试下。但是A平台今年刚成立,成立以前的历史数据都不是它自己的。而且只有D1和W1的数据。这是没法满足我们的要求的。举这个例子就是为了引出:我们复盘用的历史数据一般都是第三方的,不是自己本平台的。
数据的精度:我们在实时交易时,每一tick都有一组数据,每一秒又有多少tick,数据是海量的。只有傻子才会保存这些数据。有一些服务商,会保存一些关键性的数据,然后再借助这些关键数据生成99.9%精度的tick数据。这个99.9%的数据精度,对于绝大多数普通策略已经完全够用了。但是测试头皮策略会差一些。
3、什么是拟合
给你两个点,你用一个直线穿过这俩点,就是拟合,而且是适度的拟合。如果你的直线穿歪了,那就是欠拟合;如果你的用曲线穿过这俩点,就是过度拟合。
其实我们做交易就是在做拟合。大家所研究的历史K线就是给定的样本点,大家脑中思考的策略,就是“拟合方程”。
如果你开发了一款EA,它复盘是不稳定的或者亏损的,那么你的EA是欠拟合的;说明拟合的还不到位。
如果你开发了一款EA,它复盘是稳定盈利的,那么你的EA是适当拟合或者是过度拟合的;
这就意味着:如果一个复盘稳定盈利的EA,也很有可能是过度拟合导致,这样的EA,在实盘中表现会很糟糕。
4、如何判断一个EA是过度拟合还是适当拟合的。
拟合这个概念在神经网络算法中很常用,关于模型拟合程度地判断,是有着很专业的判断标准的,但是不适合绝大多数不同神经网络算法的交易者。我只能把我的经验告诉大家,方便大家做出更好的理解和判断。
策略是否好理解。
策略是否简约,而不是大量的过滤器堆积。
策略是都具有较为普遍的适用性。
策略参数是否有较高的弹性,就是参数不会变一点点就对EA效果产生非常大的影响。
开发时,是否先根据部分样本数据进行策略开发,开发结束后,用另外一部分样本数据进行验证。
也欢迎大家补充。
五、SuperTrend超级趋势的信号分析
1、100%算法交易:说明没有手工单,全是EA交易。如果账户的整个生命周期有手工单,则算法交易将<100%.
2、盈利交易69.5%,亏损交易30.5%。说明SuperTrend是一个高胜率EA。
3、交易活动44.4%,中规中矩,说明经常有单。
4、最大入金加载2.8%,风险控制的相当不错了。入金加载的意思就是你的总入金被占用了多少的意思。一般来说,入金加载越大,说明风险越大,一不小心就会爆仓。像很多马丁策略,和重仓策略,最大入金加载都会大的惊人,他们都是游离在爆仓边缘。
5、最大跌幅,13.8%。就是最大净值回撤,做了3年才这么点回撤,很不错了。注意:mql5的最大回撤统计是宇宙最精准的,由于太过真实也导致了很多人不敢把信号挂到mql5。其他的我就不多说了,要么统计的是余额回撤(没有意义),要么统计不精准,例如真实最大回撤是60%,有些跟单网站,显示10%。关于净值回撤的统计,其实是挺麻烦的,如果想做到精准统计,最完美的方式就是实时统计,不过这多浪费资源,怕信号社区服务器烧不起,都得倒闭。一般的做法就是1小时统计一次,或几小时统计一次。一天统计一次的就过分了。
6、21天内获得80%的增长。这相当于信号整个生命周期1038天中的2.02%天。这句话的意思就是整个交易的生命周期,在赚钱的时间很少,绝大多数时间都在打平或者亏损。其实一点不用惊讶,因为这就是所有交易员的现状。除非你玩马丁,爆仓前基本每月都在赚钱。
7、每周交易21单,单不多。
8、平均持有时间7个小时。其实这个统计无法反应真实持仓时间。因为SuperTrend也有很少跨越周六日的单子。一般来说,FRAS平均持仓时间应该在5小时左右。
9、从资金曲线来看,大部分的月份都是盈利,但是曲线任然有点曲折,不够完美。总体来说是一款很优秀的策略。
10、上图的某些统计数据,虽然很专业,但是不讲人话,对于新手也不好理解。对于判断系统,影响也不大,不用在意。
11、上图显示了,信号中我交易的货币对。有一些货币对是赚钱的,也有些是亏钱了,还有一些货币对是盈利的主要来源。大家可以尽量选择盈利能力强的货币对来交易。
六、SuperTrend超级趋势参数优化建议
对于新手,想要做出和信号差不多的效果
1、打开XAUUSD,EURUSD,GBPUSD,GBPJPY,USDJPY,NZDJPY,AUDNZD的M15图表。每一个图表都加载一个SuperTrend。
2、加载附件中提供的参数。
先把SuperTrend Presets参数文件夹放入MQL4\Presets\文件夹内
加载EA的时候导入参数就行了
注意set文件中的手数是0.1手,加载完参数后,可以重新调下手数。建议先从0.01手做起。
对于高手,想要做出比信号更好的效果
1、选择我信号中盈利的品种进行交易
2、对于亏损的品种和我没有交易的品种,进行深入的测试与研究。不要放弃每一个可能会产生盈利的品种。
3、时间段的设置默认是给关闭的,但是这个功能非常有用,如果时间设置好,会有奇效。
4、趋势箱体的参数,应该作为第一调整参数。即“趋势箱体周期”,“当前价与顶底的距离”,这俩参数对ea效果的影响较大,可以先调好这俩参数后,再调整其他参数。
5、震荡箱体中,震荡箱体的周期越大,就是判断的K线根数变多,捕捉的回调就越深。如果你觉得现在的回调位置不好,可以尝试调整这里;允许的最小箱体越大,捕捉的回调也会越深,理论上波动性大的品种允许的最小箱体也应当大些。以上两者都会造成单量的减少。
6、不同的品种需要设置不同的参数,需要大家开拓的地方还有很多,我仅仅是抛砖引玉。
七、交易设置,及注意事项
1、我在参数中列出来的品种,以及前文提到的品种,都是可以尝试的。
2、交易时间轴:建议M15;有些朋友说想试试H1,也是可以的,单会少一些。
3、经纪商的选择:请务必选择低成本账户,推荐ECN账户。羊毛出在羊身上,成本越低越好。
4、该EA如果仅仅使用默认参数测试,效果可能不那么明显,建议参考set文件进行优化参数。
5、分享的EA是无限制文件,完全纯净,没有任何限制。
6、大家自己也要多研究,我写的已经非常详细了。授人以渔,希望能够帮助到大家。
7、文章我写了很久,下载EA就是对我的支持,如果你觉得本篇文章不错,对你有帮助,也可以分享出去。如果你已经有这个EA了,还愿意支付金币下载EA,我会视为捐助,谢谢你,好人好报[咖啡]。 很好的EA,介绍超级详细 楼主介绍的好详细啊 学习了[微笑] 不错的EA 发源者耐心教导 已经购买,希望可以稳定盈利 楼主对外汇ea的理解真实透彻,就冲这个也得支持一下楼主的ea 楼主是大神[呲牙] 感谢分享 很喜欢一单一结的外汇ea,风险小 介绍的确实不错 学习了