大部分自动交易系统(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,我们可以尝试找到可以提高其可获利性并减少亏损的滤波器。
这是一款最常用的简单滤波器,因为可以在测试结束后立即评估结果,而不用额外进行处理。 考虑可能的选项,在已测试的 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”,该滤波器获得利润最多。
最简单也是最易于理解的离散滤波器是按时间交易。 合理地假设当日内,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!
本社区仅针对特定人员开放
查看需注册登录并通过风险意识测评
5秒后跳转登录页面...
移动端课程