大家好,今天我们来聊聊一个激动人心的主题,那就是如何利用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