2

問題は、インジケーターがシグナルを発したときに注文を開始したいということです。どうやってやるの?

私はやろうとしてきましiCustom()たが、満足のいくものではありません。

EAGlobalVariableSet()でインジケーターとメソッドを使用しようとしましたが、正しく動作しません。GlobalVariableGet()

助けてください。

4

2 に答える 2

1

構文は次のとおりです。

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

「myMA」と呼ばれるカスタム移動平均インディケータを作成し、外部変数の 1 つとしてピリオドのみを使用するとします。このインジケーターは、ユーザーが指定した期間と各バーの終値に基づいて単純移動平均を計算します。この指標は、計算された値を次の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 では使用しないでください。

于 2013-12-15T00:02:15.743 に答える
1

構文は次のとおりです。

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、MT プラットフォームのようにデフォルトで使用できるはずです)。

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);

インジケータ自体で定義されて13, 8, 8, 5, 5, 3いるカスタム Alligator の対応する入力パラメータは次のとおりです。

//---- 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、インジケータで次のように定義された対応するライン インデックスです。

SetIndexBuffer(0, ExtBlueBuffer);
SetIndexBuffer(1, ExtRedBuffer);
SetIndexBuffer(2, ExtLimeBuffer);
于 2015-06-19T12:31:42.597 に答える