首页 技术指标 帖子

优化移动平均交叉指标 - MetaTrader 4 的实用指南

附件
9528.zip (6.69 KB, 下载 0次)

更新版本。

以下是详细说明。



我一直相信移动平均交叉指标,作为一名程序员,我总是在寻找最简单的解决方案。我曾看到一句话:“没有魔法设置适用于交叉移动平均。”这个指标每当时间框架或符号变化,甚至每个新蜡烛时,都会尝试很多设置。它通过“平淡的交易”过去 100 根蜡烛来工作,并选择成功率最高的设置。它仅仅测量短期和长期信号之间的距离,就好像任何人都在没有止损的情况下进行交易。它还考虑了点差的影响。

下方窗口显示短期和长期移动平均之间的距离,正值表示适合做多,负值则适合做空,单位为点(pips)。利用“盈利振荡器”,您可以在短/长交易之间的最大差异之前结束交易,从而实现盈利。

上方的提示显示:“今天的盈利来自 MA 5/19,共计 60 点。”该指标或用户选择了 5 作为快速 MA 和 19 作为慢速 MA。接下来的文本框显示了昨天的结果,以及“做多”或“做空”的信号。交易者可以在图表上放置两个移动平均线,并将其设置为给定值。

我正在搜索更多不同的 MA 推荐文献。

参数设置

  • PeriodShort=6;
    快速 MA 的周期。如果优化为真,则忽略此项。
  • PeriodLong=40;
    慢速 MA 的周期。如果优化为真,则忽略此项。
  • Method=0;
    iMA 的计算方法。
  • Optimize=true;
    指标会自动选择快速和慢速 MA 的值。
  • DrawTringles=true;
    在图表中绘制三角形。
  • MinShortMA=2;
    MaxShortMA=20;
    MaxLongMA=100;
    优化的最小和最大值,快速 MA 的值将在 2 到 20 之间,慢速 MA 的值将在 7 到 100 之间尝试。
  • StepLongMA=5;
    StepShortMA=5;
    为了加快搜索速度,每隔 3 个值尝试一次。
  • CountOptimize=200;
    分析过去 200 根蜡烛。分析的蜡烛越多,速度越慢,较大的数字可能会导致较差的结果。
  • OptimizeOnNewCandle=false;
    在每个新蜡烛上开始优化。注意:优化可能需要一些时间并减慢您的终端。
  • Alarm=true;
    如果出现新信号,则发出警报。

接下来,我想基于此创建一个专家顾问,然而我仍在思考如何检测不应在交叉 MA 下交易的横盘趋势。到目前为止,我的 EA 基于优化的交叉 MA 有时能获得丰厚的收益,但第二天又会亏损。

更新版本

新特性:



- 该指标现在在图表中绘制移动平均线,“盈利振荡器”则在另一个指标 (MAProfit2) 中,二者通过全局变量相互通信。


- 支持 MA 通道(请参阅 www.vnchanger.org 的电子书),慢速移动平均线被分为两条线,分别代表低值和高值,这应该可以避免在横盘市场中的损失。


- 不再测试所有组合,而是可以测试文献中找到的某些 MA 范围。为此,请将 OptimizeAll 设置为 false,将 OptimizeSystems 设置为 true。


您可以添加或修改系统表。确保以 0,0,0,0,0,0 结束。



extern bool OptimizeAll=false;
extern bool OptimizeSystems=true;

int Systems[] = {PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,200,
PRICE_MEDIAN,MODE_SMA,50,
PRICE_MEDIAN,MODE_SMA,100, // 死亡交叉
PRICE_MEDIAN,MODE_SMA,10, PRICE_MEDIAN,MODE_SMA,40,
PRICE_MEDIAN,MODE_SMA,13, PRICE_MEDIAN,MODE_SMA,26,
PRICE_MEDIAN,MODE_SMA,5, PRICE_MEDIAN,MODE_SMA,10,
PRICE_CLOSE, MODE_EMA,5, PRICE_OPEN, MODE_EMA,6,
PRICE_MEDIAN,MODE_SMA,3, PRICE_MEDIAN,MODE_SMA,8,

0,0,0,0,0,0};

- 新的警报可以以语音形式发出,为了支持这一点,您需要从 https://www.mql5.com/en/code/8621 下载 gspeak。



如果您不想使用语音,则需要修改代码。删除从 #import "speak.dll" 到 #import 的行,并取消注释 gSpeak 函数。感谢作者提供这个出色的 DLL。



#import "speak.dll"
void gRate(int rate);
void gVolume(int rate);
void gPitch(int rate);
void gSpeak(string text);
#import

// 如果您没有(或不想要)speak.dll,请取消注释此行
/*
void gSpeak(string x)
{
}
*/

如果您不删除语音,在盈利后,您可能会开始喜欢“山姆叔叔”的声音。



- 在首次启动或参数更改时,它会记住第一次交易的蜡烛,这应该避免用不同的蜡烛重绘旧交易。



- 三角形现在有三种颜色:绿色表示做多,红色表示做空,紫色表示亏损(无论是做多还是做空)。颜色可以在源代码中修改:

int ColorLongTrade = MediumSpringGreen;
int ColorShortTrade = Red;
int ColorBadTrade = Violet;

- MA 优化的步骤已设置为 5。


- 该指标的内部名称已更改为 SMA(智能助手……它显示您应如何进行后续交易)。



MA 优化器


相关帖子

评论 (0)