在 MetaTrader 4 中比较基因演算方法和简单搜索

Andrey Khatimlianskii | 18 四月, 2008


1. 什么是基因演算方法?

在 MetaTrader 4 交易平台中提供基因演算优化智能交易的输入数据。这样做能够避免任何无意义的测试且减少优化的时间 。基因演算的主要作用描述在文章 基因演算方法: 数学运算 中提供。

本文提及到的内容,使用基因演算优化智能交易输入数据与直接简单搜索获取值进行比较。

2. 智能交易

在文章定单管理就是这样简单中,我通过智能交易 CrossMACD完成了实验:

现在基本上是个完整的智能交易。这个智能交易的优化和在交易中的使用都很方便。您可以下载智能交易 CrossMACD_DeLuxe.mq4 到您的 PC并且进行独立测试。

3.优化智能交易

现在我们来优化智能交易。 三个测试将使用不同的优化搜索总数进行。这样能够帮助我们对比在不同状况下使用基因演算方法获取的盈利。

在每个测试结束后,我会手动移除 测试储存 ,这样做是为了下一次的测试不使用这些已经找到的数据。 移除测试储存是为了试验的结果更加精确 - 通常,自动存储的结果会增加反复优化。

对比测试结果,使用基因演算优化将分为两次: 第一次- 按照命令查找最大赢利 (盈利),第二次– 查找最高的赢利因素(赢利因素)。 另外,两种优化方法的三个最好的结果将会在总结报告表格中列出。

本文的优化是纯粹的实验。文章的目的在于找到输入数据创造更大的赢利。

测试 1


变量名称

初始值

阶段

最终值

StopLoss

0

10

100

TakeProfit

0

10

150

TrailingStop

0

10

100

OpenLuft

0

5

50

CloseLuft

0

5

50

搜索数量

234256


需要注意的是在使用基因演算时,优化的预期时间 大致要与优化使用的直接输入数据搜索相同。 不同的是基因演算会在屏幕上连续地显示不成功的字样。这样,需要几次减少测试的总量(可能是几十次,百次,千次)。这就是当使用基因演算时,你不应该确定预期时间的原因。在真实的优化过程中时间总是较短:

直接搜索

基 因 演算

正如我们看到的,使用基因演算的少于4分钟代替了预期时间的5个半小时。



使用基因演算的优化图表同样不用于直接搜索的图表。 因为不好的组合已经筛出,随后的测试组合被默认为更有盈利的输入数据。这是图表差额走高的原因:




让我们来仔细看看两个优化结果的细节。

结果表格:


直接搜索

基因演算

总优化时间

4 小时 13 分28秒

3 分 50 秒


SL

TP

TS

Open Luft

Close Luft

Profit

SL

TP

TS

Open Luft

Close Luft

Profit

1

70

140

0

20

30

1248.08

70

140

0

20

30

1248.08

2

70

140

0

20

35

1220.06

70

140

0

20

35

1220.06

3

70

150

0

20

30

1176.54

70

150

0

20

30

1176.54


SL

TP

TS

Open Luft

Close Luft

Profit Factor

SL

TP

TS

Open Luft

Close Luft

Profit Factor

1

100

50

40

50

5

4.72

0

50

40

50

5

4.72

2

90

50

40

50

5

4.72

90

50

40

50

5

4.72

3

80

50

40

50

5

4.72

80

50

40

50

0

4.72

从图表的对比中我们明显地看到,使用基因演算的优化要比直接搜索的结果快十倍! 其优化结果也相同。这几个结果的最大赢利为 4.72。这就就是不同输入数据的组合报告, 但是不重要了。

现在我们来尝试减少搜索的总数,但是增加测试的时间。我们这次将使用 "全部替克"模式。

测试 2


变量名称

初始值

阶段p

End Value

StopLoss

0

10

100

TakeProfit

0

10

150

TrailingStop

0

10

100

OpenLuft

0

10

50

Number of searches

11 616


结果表格:


直接搜索

基本运算

优化时间总数

32 小时 32 分 37秒

1 小时18 分 51秒


SL

TP

TS

Open Luft

Profit

SL

TP

TS

Open Luft

Profit

1

50

0

0

20

1137.89

50

0

0

20

1137.89

2

70

0

0

20

1097.87

70

0

0

20

1097.87

3

60

0

0

20

1019.95

60

0

0

20

1019.95


SL

TP

TS

Open Luft

Profit Factor

SL

TP

TS

Open Luft

Profit Factor

1

50

90

60

50

4.65

50

90

60

50

4.65

2

50

140

60

50

4.59

50

140

60

50

4.59

3

100

90

60

50

4.46

70

90

60

50

4.46


对于这样的搜索总数,优化的比率的差别在 25 倍 不算是个坏结果。其测试结果百分百重合,唯一不同的是第三次通过的止损。赢利因素依然最大。 赢利因素依然最大。

现在我们来尝试增加搜索总数,减少测试时间。这次我们使用 "控制点"模式。

测试 3


变量名称

初始值

阶段

最终值

StopLoss

0

10

100

OpenLuft

0

5

50

CloseLuft

0

5

50

搜索总数

1 331

结果表格:


直接搜索

基本运算

优化时间总数

33 分 25 秒

31 分55 秒


SL

Open Luft

Close Luft

Profit

SL

Open Luft

Close Luft

Profit

1

0

0

45

1078.03

0

0

45

1078.03

2

70

20

15

1063.94

70

20

15

1063.94

3

70

20

25

1020.19

70

20

25

1020.19


SL

Open Luft

Close Luft

Profit Factor

SL

Open Luft

Close Luft

Profit Factor

1

80

50

15

2.73

80

50

15

2.73

2

70

50

15

2.73

70

50

15

2.73

3

90

50

15

2.65

90

50

15

2.65

这次的情况有所改变。 优化周期吻合并且结果也是一致的。这个结果可以通过优化搜索仅 1331组成来解释。使用基因演算这些通过总量是远远不够的。基因演算没有时间"快速启动" - 优化快速是由于已经筛出不好的组合。但在上面的组合总数中,基因演算不能区分“父母”(输入数据组合)而生成差的“子代”。所以,没有想法使用它们。


4. 结论

在МТ 4 策略优化中添加基因演算是个不错的工具。 优化有了显著的提高。如果搜索的总数超大,结果会定期进行优化。



现在我们有理由相信没有必要使用全面的数据搜索。使用基因演算将更快得到结果并且质量没有差别。



5.编后记

写完这篇文章之后,好奇心驱使我开启优化

CrossMACD_DeLuxe 全部收入数据。

总数的组合接近

一个亿(103 306 896)。

使用基因演算优化仅用17小时

使用搜索数据的方法需要将近 35 年

(301 223 小时).



您这样可以自己的结论。