简介
大部分自动交易系统(ATS)的开发人员或多或少都会使用某种形式的信号滤波。 尽管这并非提高系统特性的唯一途径,但却被认为是最有效的。 新手“圣杯建造者”经常对滤波器的魔力推崇备至。 采取一些交易策略很简单,往上放一打滤波器,一个盈利的 Expert Advisor 便出现了。
但是,使用滤波器也有反对声音。 滤波器大幅降低(有时可达 2-3 倍)交易次数,而且无法保证滤波器在未来会和过去一样有效。 诚然,还有一些其他令人信服的原因。
因此,让我们一步步地深入探究这些因素。
滤波器无意义的假说
如果 Expert Advisor 不盈利的话(“消磨机”),那么某种类型的滤波可能毫无帮助,- 滤波在此失去魔力了。
因此,我们不会在本文中讨论此类 Expert Advisor。 尽管如此,我们必须了解,有关于量子频率滤波器的研究有能力将任何近乎“消磨机”的 Expert Advisor 转变为
伪圣杯。
滤波器危险的假说
如果 Expert Advisor 的特性接近理想的自动交易系统,那么滤波只会进一步恶化。
我们应明确理想的自动交易系统的含义。 它指的是仅生成盈利交易,即不带来亏损的交易策略。 在这个系统内,不盈利交易的数量 = 0。
什么是滤波器?
最简单的交易信号滤波器,是一种逻辑限制,比如:如果 A 大于等于 B A> = B),则跳过该信号,如果 A 小于 B (A <B) - 则不跳过该信号。因此信号的一部分将去除。 滤波术语是由交易机器人开发人员所确定。 为建立趋势的部分类型,我们需要分析多种因素对 ATS 特性的影响。 而这种因素又是多种多样的。 因此,我们必须凭借直觉,来选择最有关联和最一致的因素。
示例。ATS 交易结果和 Kukushkino 村落的大气压力之间可能有关联,即你可以创建合适的滤波器并提高 Expert Advisor 的可获利性,它会把这个俄国小镇的天气因素考虑在内。 但是,有人可能不会赞同使用这种创新方法来滤波,尽管这种方法确实提高了系统的可获利性。
滤波器分类
尽管有多种用于 ATS 的滤波器,他们仍可以分为两个主要类别:
带通滤波器(P-滤波器) - 传输信号频带;
离散滤波器(D-滤波器) - 通过掩码(模板)选择性传输信号。
从哪里开始?
让我们先通过一个示例来讨论滤波器机制。让我们使用
DC2008_revers Expert Advisor (参见附带文件),它专为本文开发,然后探索其特性(在不使用任何滤波器的情况下)。 这是测试期间获得的报告。
报告
交易品种: EURUSD (欧元 vs 美元)
时段 1 分钟 (M1) 2009.09.07 00:00 - 2010.01.26 23:59 (2009.09.07 - 2010.01.27)
模型 所有价格变动(最准确的方式基于所有可用性最低的时间范围)
参数 Lots = 0.1; Symb.magic = 9001; nORD.Buy = 5; nORD.Sell = 5;
历史记录中的柱体 133967 已建模的价格变动 900848 建模质量 25.00%
不匹配的流量错误 0
初始保证金 10000.00
净利润 4408.91 毛利润 32827.16 毛亏损 -28418.25
获利性 1.16 预计获利 1.34
绝对亏损 273.17 最大亏损 3001.74 (20.36%) 相对亏损 20.36% (3001.74)
总成交量 3284 空头仓位(获利%) 1699 (64.98%) 多头仓位(获利%) 1585 (65.68%)
盈利交易(总交易次数百分比) 2145 (65.32%) 亏损交易(总交易次数的百分比) 1139 (34.68%)
最大 可获利交易 82.00 亏损交易 -211.00
平均 可获利交易 15.30 亏损交易 -24.95
最大次数 连续获利(盈利) 29 (679.00) 连续亏损(亏损) 16 (-290.34)
最大 连续收益(盈利次数) 679.00 (29) 连续亏损(亏损次数) -1011.00 (10)
平均 连续盈利 5 连续亏损 3
图 1. 历史记录回测结果。 初始 Expert Advisor 不含滤波器
结果分析:
Expert Advisor 是可盈利的,而且获利交易占比超过 60% - 这很不错。
最大 20% 的保证金亏损和超过 3000 美元的亏损(手数最低) - 这很糟糕。
总成交量足以使用滤波(> 3000)。
当然,这些结论仅与当前提供的历史记录时期有关。 我们不知道 Expert Advisor 在不同位置的交易会如何。 但是,这不会影响我们使用滤波对其特性进行调整。
因此,对此 Expert Advisor,我们可以尝试找到可以提高其可获利性并减少亏损的滤波器。
带通滤波器(P-滤波器)
这是一款最常用的简单滤波器,因为可以在测试结束后立即评估结果,而不用额外进行处理。 考虑可能的选项,在已测试的 Expert Advisor 内使用滤波器。 作为一个参数,让我们使用跳过频带,然后比较不同时段内的开盘价和收盘价。
H4 时段
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && iOpen(NULL,PERIOD_H4,1)<iClose(NULL,PERIOD_H4,1) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && iOpen(NULL,PERIOD_H4,1)>iClose(NULL,PERIOD_H4,1) ) { //---- Signal.Sell=true; }
图 2. 历史记录回测结果。 Expert Advisor 含 P- 滤波器 (H4 时段)
H1 时段
//+---------------------------------------------------------------------------------+ // BUY Signal //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && iOpen(NULL,PERIOD_H1,1)>iClose(NULL,PERIOD_H1,1) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signal //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1) ) { //---- Signal.Sell=true; }
图 3. 历史记录回测结果。 Expert Advisor含 P- 滤波器 (H1 时段)
M30 时段
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && iOpen(NULL,PERIOD_M30,1)>iClose(NULL,PERIOD_M30,1) ) { //---- Signal.Sell=true; }
图 4. 历史记录回测结果。 Expert Advisor含 P- 滤波器 (M30 时段)
M5 时段
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && iOpen(NULL,PERIOD_M5,1)>iClose(NULL,PERIOD_M5,1) ) { //---- Signal.Sell=true; }
图5 余额变更安排。M5 时段的 P-滤波器
为简化收到报告的分析,这些报告总结到以下表中。
无滤波 PERIOD_H4 PERIOD_H1 PERIOD_M30 PERIOD_M5
初始保证金 10000.00 10000.00 10000.00 10000.00 10000.00
净利润 4408.91 4036.33 4829.05 3852.90 4104.30
毛利润 32827.16 19138.74 27676.50 18133.77 23717.68
毛亏损 -28418.25 -15102.41 -22847.45 -14280.87 -19613.38
获利性 1.16 1.27 1.21 1.27 1.21
预计获利 1.34 2.92 2.20 3.59 2.02
绝对亏损 273.17 434.09 762.39 64.00 696.23
最大亏损 3001.74 (20.36%) 2162.61 (17.48%) 2707.56 (17.22%) 2121.78 (16.38%) 1608.30 (12.46%)
相对亏损 20.36% (3001.74) 17.48% (2162.61) 17.22% (2707.56) 16.38% (2121.78) 12.46% (1608.30)
总成交量 3284 1383 2195 1073 2035
空头仓位(获利%) 1699 (64.98%) 674 (54.01%) 1119 (60.59%) 547 (60.51%) 1046 (63.48%)
多头仓位(获利%) 1585 (65.68%) 709 (62.48%) 1076 (64.96%) 526 (64.64%) 989 (66.63%)
盈利交易(总交易次数的百分比) 2145 (65.32%) 807 (58.35%) 1377 (62.73%) 671 (62.53%) 1323 (65.01%)
亏损交易(总交易次数的百分比) 1139 (34.68%) 576 (41.65%) 818 (37.27%) 402 (37.47%) 712 (34.99%)
最大
可获利交易 82.00 201.00 157.00 204.00 97.00
亏损交易 -211.00 -136.00 -160.00 -179.51 -156.00
平均
可获利交易 15.30 23.72 20.10 27.02 17.93
亏损交易 -24.95 -26.22 -27.93 -35.52 -27.55
最大次数
连续获利(盈利) 29 (679.00) 27 (817.98) 36 (1184.32) 36 (1637.38) 44 (912.03)
连续亏损(亏损) 16 (-290.34) 12 (-636.34) 13 (-367.07) 14 (-371.51) 15 (-498.51)
最大
连续收益(盈利次数) 679.00 (29) 884.08 (16) 1184.32 (36) 1637.38 (36) 912.03 (44)
连续亏损(亏损次数) -1011.00 (10) -686.00 (10) -758.00 (7) -894.85 (10) -589.00 (5)
平均
连续盈利 5 5 5 5 4
连续亏损 3 3 3 3 2
表 1 P-滤波器测试报告的对比表
结果分析:
仅有 P-滤波器”PERIOD_H1”的净收益上升 (4408.91 => 4829.05)。
期望收益排第一的是P-滤波器”PERIOD_M30” (1.34 => 3.59)。
所有滤波器的最大亏损均下降。 最低亏损值出现在”PERIOD_M5”滤波器中 (3001.74 => 1608.30)。
滤波将总成交量降低了 1.5 -3 倍。
结论
P-滤波器可以提高 ATS 特性。
进一步分析,我们将选择 P-滤波器”PERIOD_H1”,该滤波器获得利润最多。
离散滤波器(D-滤波器)
最简单也是最易于理解的离散滤波器是按时间交易。 合理地假设当日内,Expert Advisor 交易系统的交易不稳定。 在特定时段内,系统盈利更好,而在其他时段内则刚好相反,只会亏损。 为此,让我们来研究这种滤波器对交易结果的影响。 必须将额外的外部变量提前加入到 expert 代码内:
extern int Filter.Hour=0; // D-filter: trade by hour//----extern double Lots=0.1;extern int Symb.magic=9001, nORD.Buy = 5, // max buy orders nORD.Sell = 5; // max sell orders
滤波器本身:
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && Hour()==Filter.Hour ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && Hour()==Filter.Hour ) { //---- Signal.Sell=true; }
所以,如果当前时段和 D 滤波器的离散值相吻合,则我们生成(允许)买入或卖出信号,否则 - 我们不生成信号。
我们在优化模式下启动测试程序(输入参数在图中显示)。 保证金必须指定为最大额度,以避免出现“缺乏资金建仓”的情况,以及避免损失成交数。
图 6 输入参数以搜索 D 滤波器特性
因此,我们获取了滤波器反馈特性:利润、成交数量和亏损(Y 轴),作为当日(X 轴)某个时段内的函数。
图 7. 滤波器反馈特性。 按时间的 D 滤波
因此我们假设 Expert Advisor 在不同时间可带来不同利润得到印证。
... 在这个假设得到验证后,现在我们应该如何处置它呢? 首先想到的是禁止 Expert Advisor 在只会带来亏损的时段内进行交易。 这看似很有逻辑。那么,我们将改变 D 滤波器,仅允许其在盈利时段内交易。 换言之 - 我们将创建一个滤波器掩码。 现在我们可以将完成的 D 滤波器插入代码中,然后查看测试报告。
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... && (Hour()==0 || Hour()==6 || Hour()==9 || Hour()==10 || Hour()==11 || Hour()==12 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... && (Hour()==0 || Hour()==6 || Hour()==9 || Hour()==10 || Hour()==11 || Hour()==12 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Sell=true; }
交易品种: EURUSD (欧元 vs 美元)
时段 1 分钟 (M1) 2009.09.07 00:00 - 2010.01.26 23:59 (2009.09.07 - 2010.01.27)
模型 每次价格变动(最准确的方式基于所有可用性最低的时间范围)
参数 Filter.Hour = 0; Lots = 0.1; Symb.magic = 9001; nORD.Buy = 5; nORD.Sell = 5;
历史记录中的柱体 133967 已建模的价格变动 900848 建模质量 25.00%
不匹配的图形错误 0
初始保证金 10000.00
净利润 6567.66 毛利润 24285.30 毛亏损 -17717.64
获利性 1.37 预计获利 4.13
绝对亏损 711.86 最大亏损 3016.21 (18.22%) 相对亏损 18.22% (3016.21)
总成交量 1590 空头仓位(获利%) 832 (61.30%) 多头仓位(获利%) 758 (63.85%)
盈利交易(总交易次数的百分比) 994 (62.52%) 亏损交易(总交易次数的百分比) 596 (37.48%)
最大 可获利交易 194.00 亏损交易 -161.00
平均 可获利交易 24.43 亏损交易 -29.73
最大次数 连续获利(盈利) 40 (1096.16) 连续亏损(亏损) 15 (-336.45)
最大 连续收益(盈利次数) 1289.08 (20) 连续亏损(亏损次数) -786.51 (8)
平均 连续盈利 5 连续亏损 3
图 8. 余额图表。 按时间的 D 滤波器
滤波结果分析:
减少亏损 - 未达成。 不仅没有减少,反而略微上升了(3001.74 => 3016.21)!?
净收益增长约 50% (4408.91 => 6567.66)。 但成交量却下降了近 2 倍 (3284 => 1590)。
D 滤波器的预期增益 (4.13) 高于所有已调查的 P 滤波器的最佳值 (3.59)。
获利交易量下降(64.98% => 62.52%),即,滤波器不仅消除了非获利交易,还有许多获利交易。
结论
离散滤波较之 P 滤波更加有效,但需要更精确的调试和选择最佳的输入条件。
使用两种或以上滤波器进行信号滤波。
仅使用一种滤波器,并不总是能令 ATS 的性能得到显著提高。 更常见做法是用设置多个滤波器。 因此,我们将面对如何整和这些滤波器的问题。
出于本次研究目的,我们将采用以上滤波器,并为省事,将他们做以下标记:1 号滤波器(P 滤波器 ”PERIOD_H1”)和 2 号滤波器(D 滤波器)。 一开始我们将通过简单添加来进行整合。 为此,我们要更改 Expert Advisor 的代码。
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)>iClose(NULL,PERIOD_H1,1) //---- filter №2 && (Hour()==0 || Hour()==6 || Hour()==9 || Hour()==10 || Hour()==11 || Hour()==12 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1) //---- filter №2 && (Hour()==0 || Hour()==6 || Hour()==9 || Hour()==10 || Hour()==11 || Hour()==12 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Sell=true; }
然后,我们测试已创建的滤波器组合并获得以下报告。
余额
交易品种: EURUSD (欧元 vs 美元)
时段 1 分钟 (M1) 2009.09.07 00:00 - 2010.01.26 23:59 (2009.09.07 - 2010.01.27)
模型 所有价格变动(最准确的方式基于所有可用性最低的时间范围)
参数 Lots = 0.1; Symb.magic = 9001; nORD.Buy = 5; nORD.Sell = 5;
历史记录中的柱体 133967 已建模的价格变动 900848 建模质量 25.00%
不匹配的图形错误 0
初始保证金 10000.00
净利润 6221.18 毛利润 20762.67 毛亏损 -14541.49
获利性 1.43 预计获利 5.47
绝对亏损 1095.86 最大亏损 3332.67 (20.13%) 相对亏损 20.13% (3332.67)
总成交量 1138 空头仓位(获利%) 584 (58.39%) 多头仓位(获利%) 554 (61.19%)
盈利交易(总交易次数的百分比) 680 (59.75%) 亏损交易(总交易次数的百分比) 458 (40.25%)
最大 获利交易 201.00 亏损交易 -159.00
平均 获利交易 30.53 亏损交易 -31.75
最大次数 连续获利(盈利) 28 (1240.15) 连续亏损(亏损) 16 (-600.17)
最大 连续收益(盈利次数) 1240.15 (28) 连续亏损(亏损次数) -883.85 (10)
平均 连续盈利 5 连续亏损 3
图 9. 余额变更图。两个滤波器: P 滤波器 + D 滤波器(简单添加)
但是,这两种滤波器可通过另一种方式连接。 假设 1 号滤波器的配置优于 2 号滤波器。 则我们需要建立一个全新的 D 滤波器。 Expert Advisor 代码将查看以下方式。 我们在优化模式下启动测试程序,并获得 2 号滤波器的特性(按时间交易)。
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)>iClose(NULL,PERIOD_H1,1) //---- filter №2 && Hour()==Filter.Hour ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1) //---- filter №2 && Hour()==Filter.Hour ) { //---- Signal.Sell=true; }
图 10. 根据两种 D 滤波器的时间产生的利润变化。 对比分析
确实,滤波器的反馈特性已更改。 并且,考虑到我们通过添加 1 号 滤波器至 Expert Advisor,我们更改了其属性就不奇怪了。 最终,需要为 2 号滤波器更改掩码。
图 11. 2 号滤波器反馈特性。 按时间的 D 滤波(已优化)
Expert Advisor 代码的最终视图。
//+---------------------------------------------------------------------------------+ // BUY Signals //+---------------------------------------------------------------------------------+ if(true && High[0]<iLow(NULL,PERIOD_H1,1) && ORD.Buy<nORD.Buy //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)>iClose(NULL,PERIOD_H1,1) //---- filter №2 && (Hour()==0 || Hour()==1 || Hour()==6 || Hour()==7 || Hour()==9 || Hour()==10 || Hour()==12 || Hour()==14 || Hour()==15 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Buy=true; } //+---------------------------------------------------------------------------------+ // SELL Signals //+---------------------------------------------------------------------------------+ if(true && Low[0]>iHigh(NULL,PERIOD_H1,1) && ORD.Sell<nORD.Sell //.........................................Filters................................... //---- filter №1 && iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1) //---- filter №2 && (Hour()==0 || Hour()==1 || Hour()==6 || Hour()==7 || Hour()==9 || Hour()==10 || Hour()==12 || Hour()==14 || Hour()==15 || Hour()==18 || Hour()==20 || Hour()==22 || Hour()==23 ) ) { //---- Signal.Sell=true; }
余额
交易品种: EURUSD (欧元 vs 美元)
时段 1 分钟 (M1) 2009.09.07 00:00 - 2010.01.26 23:59 (2009.09.07 - 2010.01.27)
模型 所有价格变动(最准确的方式基于所有可用性最低的时间范围)
参数 Lots = 0.1; Symb.magic = 9001; nORD.Buy = 5; nORD.Sell = 5;
历史记录中的柱体 133967 已建模的价格变动 900848 建模质量 25.00%
不匹配的图形错误 0
初始保证金 10000.00
净利润 5420.54 毛利润 22069.48 毛亏损 -16648.94
获利性 1.33 预计获利 3.77
绝对亏损 826.86 最大亏损 2141.24 (14.06%) 相对亏损 14.06% (2141.24)
总成交量 1439 空头仓位(获利%) 758 (61.87%) 多头仓位(获利%) 681 (64.46%)
盈利交易(总交易次数的百分比) 908 (63.10%) 亏损交易(总交易次数的百分比) 531 (36.90%)
最大 可获利交易 157.00 亏损交易 -154.00
平均 可获利交易 24.31 亏损交易 -31.35
最大缺陷数 连续获利(盈利) 30 (772.70) 连续亏损(亏损) 16 (-562.17)
最大 连续收益(盈利次数) 1091.32 (22) 连续亏损(亏损次数) -926.15 (15)
平均 连续盈利 5 连续亏损 3
图 12. 余额图形由于两个滤波器特性的优化而产生变化。
为更方便制作报告分析,我们创建了以下图表。
无滤波 添加 优化
初始保证金 10000.00 10000.00 10000.00
净利润 4408.91 6221.18 5420.54
毛利润 32827.16 20762.67 22069.48
毛亏损 -28418.25 -14541.49 -16648.94
获利性 1.16 1.43 1.33
预计获利 1.34 5.47 3.77
绝对亏损 273.17 1095.86 826.86
最大亏损 3001.74 (20.36%) 3332.67 (20.13%) 2141.24 (14.06%)
相对亏损 20.36% (3001.74) 20.13% (3332.67) 14.06% (2141.24)
总成交量 3284 1138 1439
空头仓位(获利%) 1699 (64.98%) 584 (58.39%) 758 (61.87%)
多头仓位(获利%) 1585 (65.68%) 554 (61.19%) 681 (64.46%)
盈利交易(总交易次数百分比) 2145 (65.32%) 680 (59.75%) 908 (63.10%)
亏损交易(总交易次数的百分比) 1139 (34.68%) 458 (40.25%) 531 (36.90%)
最大
可获利交易 82.00 201.00 157.00
亏损交易 -211.00 -159.00 -154.00
平均
可获利交易 15.30 30.53 24.31
亏损交易 -24.95 -31.75 -31.35
最大次数
连续获利(盈利) 29 (679.00) 28 (1240.15) 30 (772.70)
连续亏损(亏损) 16 (-290.34) 16 (-600.17) 16 (-562.17)
最大
连续收益(盈利次数) 679.00 (29) 1240.15 (28) 1091.32 (22)
连续亏损(亏损次数) -1011.00 (10) -883.85 (10) -926.15 (15)
平均
连续盈利 5 5 5
连续亏损 3 3 3
选项卡。两个滤波器组合对比测试报告的对比图表: P 滤波器和 D 滤波器
结果分析:
如果我们基于收入、利润和预期利润标准进行对比,则我们会在添加两个滤波器时获得最佳结果。
如果我们聚焦亏损,则滤波器优化选项是最后赢家。
在任何情况下,滤波都会提高 ATS 特性。
总结
那么,什么是滤波器魔力呢? 滤波器魔力在于其简单性和改变任何 Expert Advisor 特性的能力。
创建滤波器的所述技术不是用于简单复制。 它仅显示了 P 滤波器和 D 滤波器可以如何为特定的 Expert Advisor 进行开发。 适合某个 Expert Advisor 的滤波器可能会阻碍另一个 Expert Advisor。
请记住,理想状态下的 ATS 并不需要滤波器! ... 你梦想打造这样一个系统,不是吗?
我明白这个 Expert Advisor 的代码和滤波器并未优化,当然也不是最理想的。 但在本文中,我们选择了这种特有的编程方式。 我们这样做,可让任何“菜鸟”都可以重复以上步骤,并创造属于他们自己的专属滤波器。
注意! 请勿在真实的交易中使用本文所述 Expert Advisor!