请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  源码分享 帖子:3366781 新帖:20

过滤的魔力

舞蹈家发表于:4 月 17 日 19:59回复(1)

简介

大部分自动交易系统(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_H4PERIOD_H1PERIOD_M30PERIOD_M5
初始保证金10000.0010000.0010000.0010000.0010000.00
净利润4408.914036.334829.053852.904104.30
毛利润32827.1619138.7427676.5018133.7723717.68
毛亏损-28418.25-15102.41-22847.45-14280.87-19613.38
获利性1.161.271.211.271.21
预计获利1.342.922.203.592.02
绝对亏损273.17434.09762.3964.00696.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)
总成交量32841383219510732035
空头仓位(获利%)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.00201.00157.00204.0097.00
亏损交易-211.00-136.00-160.00-179.51-156.00
平均




可获利交易15.3023.7220.1027.0217.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)
平均




连续盈利55554
连续亏损33332


 

表 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.0010000.0010000.00
净利润4408.916221.185420.54
毛利润32827.1620762.6722069.48
毛亏损-28418.25-14541.49-16648.94
获利性1.161.431.33
预计获利1.345.473.77
绝对亏损273.171095.86826.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)
总成交量328411381439
空头仓位(获利%)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.00201.00157.00
亏损交易-211.00-159.00-154.00
平均


可获利交易15.3030.5324.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)
平均


连续盈利555
连续亏损333


选项卡。两个滤波器组合对比测试报告的对比图表: 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!


全部回复

0/140

量化课程

    移动端课程