MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 491

 
Nikolay Gaylis:
こんにちは、"market overview" ウィンドウでプログラム的に特定のシンボルを表示/削除する方法を教えてください。

SymbolSelect 機能を参照してください。

 

こんにちは、このコードスニペットのどこにエラーがあるのか、教えてください。

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

皆さんこんにちは、私は以下のような問題に直面しています。

ストップロス、テイクプロフィットなしでトレードを開始しました。

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

この注文をキャンセルしたい

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

次のエラーが発生しました:OrderClose error 131

OrderOpenPrice() の代わりに 0.1 または OrderLots() を指定した場合、OrderClose error 138 というエラーが発生します。

何が問題なのか?

 
labvic:

皆さんこんにちは、私は以下のような問題に直面しています。

ストップロス、テイクプロフィットなしでトレードを開始します。

この注文をキャンセルしたい

次のエラーが発生しました:OrderClose error 131

OrderOpenPrice() の代わりに 0.1 または OrderLots() を指定した場合、OrderClose error 138 というエラーが発生します。

何が問題なのか?

間違った価格で決済してしまう
 
Artyom Trishkin:
あなたは間違った価格で閉じている

具体的にどうすればいいのか、教えてください。ありがとうございました。

 
labvic:

具体的にどうすればいいのか、教えてください。ありがとうございました。

これは基本中の基本です。
買いはAskで始まり、Bidで終わります。
売りはBidで始まり、Askで終了します。
 

こんにちは。

インクルードファイルについてのチュートリアルをよく読みましたが、インクルードファイルがEA内で2回「インクルード」できないとはどこにも書いてありません。

1つ目は「トリガー」、2つ目(同名)は「スキップ/無視」にしています。

私はどうするか - 私は含まれているファイルのコピーを作成し、ファイル名とEA行に文字/数字を追加し、すべてが動作します。

質問:mql4言語のせいなのか、私のせいなのか?

ありがとうございました!!!

 
Roni Iron:

こんにちは。

インクルードファイルについてのチュートリアルをよく読みましたが、インクルードファイルがEA内で2回「インクルード」できないとはどこにも書いてありません。

1つ目は「トリガー」、2つ目(同名)は「スキップ/無視」にしています。

私はどうするか - 私は含まれているファイルのコピーを作成し、ファイル名とEA行に文字/数字を追加し、すべてが動作します。

質問:mql4言語のせいなのか、私のせいなのか?

ありがとうございました!!!

なぜ、同じものを2回掲載するのですか?

インクルードファイルに関数f()がある場合、それを2回インクルードすると、すでに宣言された関数f()についてのコンパイルエラーが 発生します。

 
Artyom Trishkin:

なぜ、同じものを2回掲載するのですか?

インクルードファイル内にf()関数がある場合、それをコード内に2回インクルードすると、すでに宣言されたf()関数に関するコンパイルエラーと なります。

インクルードファイルをユーザー定義関数としてではなく、例えば、最後のオーダーをそのシンボルで検索する(あるいはオーダーの存在を示す)ような単純なコード断片の「置換」/挿入として使用する場合、そのようなことはできません。そして、この検索はプログラムの中で何度も使用することができます。そして、そのような「古典的な操作」がたくさんある場合もあるのです。
 
Roni Iron:
もし私がインクルードファイルをカスタム関数としてではなく、私のシンボルによる最後の注文の検索(または注文の存在)のような単純なコード断片の「置換」/挿入として使用する場合。そして、この検索はプログラムの中で何度も使用することができます。そして、そのような「古典的な操作」がたくさんある場合もあるのです。

ここが迷うところです。インクルードファイルには、このような便利な関数がたくさんあることがあります。一度ファイルをインクルードし、そのファイルから利用可能な関数を使用します。