下载MetaTrader 5

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

18 四月 2008, 11:52
Andrey Khatimlianskii
4
1 471


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

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

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

2. 智能交易

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

  • 添加止损和赢利到仓位。
  • 添加追踪止损
  • 使用 OpenLuft 参量为过滤信号:如果零线在总点数中间穿过信号将到来。
  • 添加 CloseLuft参量位同样关闭的过滤信号。.
  • 在较快的时间周期上放入外部变量并且使用快速移动平均数计算 MACD 。

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

3.优化智能交易

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

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

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

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

测试 1

  • 图表货币对– EURUSD;
  • 图表时间周期 – Н1;
  • 测试周期 – 2 年;
  • 模式化 – "只限开盘价";
  • 在输入数据中查找:

变量名称

初始值

阶段

最终值

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

  • 图表货币对 – EURUSD;
  • 图表时间周期– Н1;
  • 测试周期 – 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

  • 图表货币对 – EURUSD;
  • 图表时间周期 – Н1;
  • 测试周期 – 2 年;
  • 模式化 – "控制点";
  • 在输入数据中查找:

变量名称

初始值

阶段

最终值

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 小时).



    您这样可以自己的结论。


    本文译自 MetaQuotes Software Corp. 撰写的俄文原文
    原文地址: https://www.mql5.com/ru/articles/1409

    附加的文件 |
    最近评论 | 前往讨论 (4)
    tuzi
    tuzi | 18 6月 2008 在 08:48
    我看不懂
    Di
    Di | 18 6月 2008 在 10:11

    请问哪里看不懂啊?


    laoyee
    laoyee | 29 8月 2010 在 11:09

    整个就是机器翻译的,怎么能懂?

    俄语-->英语-->中文,经过两次“基因优化”之后,就变成现在这个样子了

    MQL4 Comments
    MQL4 Comments | 25 3月 2013 在 15:28
    我用start()函数调用时,用print看不到#property indicator_chart_window /int init() { return(0); } /int deinit() { return(0); } /int start() { double buffer1; double buffer2; buffer1=iMA(NULL,0,5,0,MODE_SMMA,PRICE_MEDIAN,0); buffer2=iMA(NULL,0,8,0,MODE_SMMA,PRICE_MEDIAN,0); if(LineCrossedLine(buffer1,buffer2)==true) {Print("穿过"); Alert("穿穿"); } bool LineCrossedLine(double ExtBuffer1,double ExtBuffer2) //均线ExtBuffer1上穿均线ExtBuffer2(这个上穿是确定性的穿过) { double ma1=iMAOnArray(ExtBuffer1,0,0,0,MODE_SMA,0); double ma2=iMAOnArray(ExtBuffer2,0,0,0,MODE_SMA,0); double ma3=iMAOnArray(ExtBuffer1,0,0,0,MODE_SMA,1); double ma4=iMAOnArray(ExtBuffer2,0,0,0,MODE_SMA,1); IF(MA3小于MA4 && MA1大于等于MA2) return(true); else return(false); } 不知道错在哪。 请帮忙看看,我的邮箱是uosd321@sina.cn再次谢谢
    基因演算规则:数学运算 基因演算规则:数学运算

    基因演算使用于智能交易的数据优化。这些用途的范例是一个神经网络的学习,即, 这样的值得到的误差最小。基因演算是以随机搜索的方法为基础的。

    Strategy Tester:交易策略测试中模式化的方式 Strategy Tester:交易策略测试中模式化的方式

    技术分析的很多程序允许在历史数据上测试交易策略。在大多数情况下, 测试被连接到已经完成的数据上,在价格柱内这些数据不带有任何试图模式化的趋势。测试会快速进行,但是不精确。

    在 MQL4.Community上轻松简单地公布影音图像 在 MQL4.Community上轻松简单地公布影音图像

    通常通过展示总是会比文字描述收益更多。我们在本文中提供一个简单的方法。通过使用CamStudio创建影音图像在上 MQL4.community 论坛公布。

    MetaTrader 4 客户端内的智能交易测试: 内部模式 MetaTrader 4 客户端内的智能交易测试: 内部模式

    在您点击 "开始"按钮后会怎样? 本文将告知您答案并解答其他问题。