使用MetaTrader 4的网格交易策略与EA分享

Mike 2016.07.01 18:40 16 0 0
附件

大家好,今天我们来聊聊一个激动人心的主题,那就是如何利用MetaTrader 4创建网格交易策略,甚至开发自己的交易系统(EA)。我最近受到启发,尝试了一个新方法,想与大家分享。

首先,我们需要从历史数据中提取N+M个K线,通过在N个K线中写入指标信号,并在M个K线中写入结果,最终生成一个名为[指标信号序列_N个K线].csv的文件。

这个文件将包含后续的历史结果。举个例子,我们可以这样写:

      int history [1000];
      for (int i = analiz_bars + poisk_fractals; i > poisk_fractals; i--)
         {
         history [i] = NormalizeDouble((tocnost * iMACD(NULL, 0, Per_MACD / 4, Per_MACD, 9, PRICE_CLOSE, MODE_MAIN, i) / (100 * Point)), 0);
         }

这段代码将输出一个数组,接下来我们将其应用于以下代码中:

      string posledovatelnost = shethik + "_";
      for (i = analiz_bars + poisk_fractals; i > poisk_fractals; i--)
         {
         posledovatelnost = posledovatelnost + history [i] + "_";
         }
      posledovatelnost = posledovatelnost + ".csv";

最后,我们将以[posledovatelnost]命名保存这个文件。

接下来,我们需要将一些调用次数(以确定统计权重)和以下代码块的结果写入该文件:

      double MaxHighPik = High[poisk_fractals]; //开始比较K线
      double MaxLowPik = Low[poisk_fractals];
      for (i = poisk_fractals; i >= 1; i--)
         {
         if (MaxHighPik < High[i])
             {
             MaxHighPik = High[i];
             }
         if (MaxLowPik > Low[i])
             {
             MaxLowPik = Low[i];
             }
         }

这里我们确定了接下来N根K线的运动方向和达到的最大值。结果以平均值的形式写入,能够根据zabyvaemost变量分配最近数据的增加或减少的统计权重。同时,指标值也通过tocnost变量进行平均。最小平均值仅给出方向 +1 或 -1。

不过,尽管结果看起来很美好,但实际效果并不理想。两个专家顾问(EA)作为示例提供,盈利能力很少超过1.1。

以下是使用移动平均线(MA)的示例:

如果有人能够制作出一个不错的EA,欢迎与我联系!

列表
评论 0