过滤的魔力

Sergey Pavlov | 8 四月, 2016

简介

大部分自动交易系统(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 不含滤波器

结果分析:

  1. Expert Advisor 是可盈利的,而且获利交易占比超过 60% - 这很不错。
  2. 最大 20% 的保证金亏损和超过 3000 美元的亏损(手数最低) - 这很糟糕。
  3. 总成交量足以使用滤波(> 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-滤波器测试报告的对比表

结果分析:

  1. 仅有 P-滤波器”PERIOD_H1”的净收益上升 (4408.91 => 4829.05)。
  2. 期望收益排第一的是P-滤波器”PERIOD_M30” (1.34 => 3.59)。
  3. 所有滤波器的最大亏损均下降。 最低亏损值出现在”PERIOD_M5”滤波器中 (3001.74 => 1608.30)。
  4. 滤波将总成交量降低了 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 滤波器

滤波结果分析:

  1. 减少亏损 - 未达成。 不仅没有减少,反而略微上升了(3001.74 => 3016.21)!?
  2. 净收益增长约 50% (4408.91 => 6567.66)。 但成交量却下降了近 2 倍 (3284 => 1590)。
  3. D 滤波器的预期增益 (4.13) 高于所有已调查的 P 滤波器的最佳值 (3.59)。
  4. 获利交易量下降(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 滤波器

结果分析:

  1. 如果我们基于收入、利润和预期利润标准进行对比,则我们会在添加两个滤波器时获得最佳结果。
  2. 如果我们聚焦亏损,则滤波器优化选项是最后赢家。
  3. 在任何情况下,滤波都会提高 ATS 特性。


总结

  1. 那么,什么是滤波器魔力呢? 滤波器魔力在于其简单性和改变任何 Expert Advisor 特性的能力。
  2. 创建滤波器的所述技术不是用于简单复制。 它仅显示了 P 滤波器和 D 滤波器可以如何为特定的 Expert Advisor 进行开发。 适合某个 Expert Advisor 的滤波器可能会阻碍另一个 Expert Advisor。
  3. 请记住,理想状态下的 ATS 并不需要滤波器! ... 你梦想打造这样一个系统,不是吗?
  4. 我明白这个 Expert Advisor 的代码和滤波器并未优化,当然也不是最理想的。 但在本文中,我们选择了这种特有的编程方式。 我们这样做,可让任何“菜鸟”都可以重复以上步骤,并创造属于他们自己的专属滤波器。
  5. 注意! 请勿在真实的交易中使用本文所述 Expert Advisor!