MQL4指示器将信号传递给EA

时间:2013-12-05 10:40:31

标签: indicator metatrader4 mql4

问题是,当我的指标发出信号时,我想打开订单。我怎么能这样做?

我一直在尝试使用 iCustom() ,但这并不令人满意。

我尝试在指标中使用 GlobalVariableSet() ,在EA中使用 GlobalVariableGet() 方法,但效果不佳。

请帮忙。

2 个答案:

答案 0 :(得分:1)

语法为:

int signal = iCustom(NULL, 0, "MyCustomIndicatorName",
...parameters it takes in...,
...the buffer index you want from the custom indicator...,
...shift in bars);

假设你写了一个名为“myMA”的自定义移动平均指标,它只将一段时间作为其外部变量之一。该指标根据用户提供的周期和每个柱的结束计算一个简单的移动平均线。此指标将其计算值存储在数组MAValues[]中,并将其分配给如下索引:SetIndexBuffer(0, MAValues);

要获得当前柱的移动平均值为200,那么您可以写:

double ma_current_bar = iCustom(NULL, 0, "myMA", 200, 0, 0);

然后,一旦您拥有此值,您就可以根据您确定的某些交易标准进行检查,并在满足时打开订单。例如,如果您想在当前柱的移动平均线等于当前卖出价时打开多头头寸,您可以写:

if (ma_current_bar == Ask){
    OrderSend(Symbol(), OP_BUY, 1, Ask, *max slippage*, *sl*, *tp*, NULL, 0, 0, GREEN);
}

这只是示例代码,请勿在实时EA中使用它。

答案 1 :(得分:1)

syntax是:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:background="#00ff0b"
        android:layout_weight="0.7" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:background="#00ff0b"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:background="#00ff0b"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:background="#00ff0b"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="2dp"
        android:background="#00ff0b"
        android:layout_weight="1"
        android:id="@+id/textView" />

  </LinearLayout>

以下是使用自定义Alligator指标的示例(在MT平台中默认为double iCustom( string symbol, // symbol int timeframe, // timeframe string name, // path/name of the custom indicator compiled program ... // custom indicator input parameters (if necessary) int mode, // line index int shift // shift ); )。

Alligator.mq4

其中double Alligator[3]; Alligator[0] = iCustom(NULL, 0, "Alligator", 13, 8, 8, 5, 5, 3, 0, 0); Alligator[1] = iCustom(NULL, 0, "Alligator", 13, 8, 8, 5, 5, 3, 1, 0); Alligator[2] = iCustom(NULL, 0, "Alligator", 13, 8, 8, 5, 5, 3, 2, 0); 是自定义指示符中定义的自定义Alligator的相应输入参数:

13, 8, 8, 5, 5, 3

//---- input parameters input int InpJawsPeriod=13; // Jaws Period input int InpJawsShift=8; // Jaws Shift input int InpTeethPeriod=8; // Teeth Period input int InpTeethShift=5; // Teeth Shift input int InpLipsPeriod=5; // Lips Period input int InpLipsShift=3; // Lips Shift 是指标中定义的相应行索引:

mode