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

 

Good day !

問題は突然発生し、Expert Advisorは問題なく動作していましたが、新しい関数(トレーリングストップ)を挿入した途端、EA全体でOrderSelectが 動作せず、エラー4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of function parameters.となりました。最初はよくわからず、どこかを変えたのかと思い、トレーリングストップを外してすべてそのまま返しましたが、OrderSelectはまだエラーが発生します。

念のため、コードをご紹介しておきます。

         for(int i = OrdersTotal(); i > 0; i--)
           {
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
              {
               if(OrderType() == OP_SELL)
                 {
                  if(!OrderClose(OrderTicket(), Lots, Ask, slippage, clrRed))
                    {Print("Error Order Close SELL = ", GetLastError());}
                 }
              }
            else
              {Print("Error order select, try order close SELL = ", GetLastError());}
           }


 
Vitaliy Sendyaev:

Good day !

問題は突然発生し、Expert Advisorは問題なく動作していましたが、新しい関数(トレーリングストップ)を挿入した途端、EA全体でOrderSelectが動作せず、エラー4051 ERR_INVALID_FUNCTION_PARAMVALUE - Invalid value of function parameters.となりました。最初はよくわからず、どこかを変えたのかと思い、トレーリングストップを外してすべてそのまま返しましたが、OrderSelectはまだエラーが発生します。

念のため、コードをご紹介しておきます。



これはフルコードではありません。どこかで括弧が削除された可能性が高い。
 
Vitaliy Sendyaev: OrderSelect はエラー 4051 ERR_INVALID_FUNCTION_PARAMVALUE を生成しました - 関数パラメータの無効な値です。

以下は念のためのコードです: for(int i = OrdersTotal(); i > 0; i--)

(int i =OrdersTotal() -1; i>=0; i--) オーダーは0から始まるので、最大の数字は1より小さい数字となります。

 
STARIJ:

(int i = OrdersTotal()-1; i>=0; i--) オーダーは0から始まるので、一番大きい数字が1つ小さい数字となります。

そのとおりです。気がつかなかった...。もっと寝たい


 
STARIJ:

(int i = OrdersTotal()-1; i>=0; i--)注文は0から始まるので、最も高い数字は1より小さい数字である必要があります。


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

 
Valerius:

これは本気じゃない...。では、それらは(inputとexternは)何のためにあるのか...。

何が本気じゃないのか?コードブランチで質問して、適切な回答が得られたのですね。
さて、もしあなたが端末を再起動しようと思わなかったのなら、すでに答えは出ています - servicedesk。

 
Valerius: 例えば、今日EAで設定した後、翌日には一部の設定が空白になっている場合はどうすればいいのでしょうか?

どうやったのか、推して知るべしですね。Expert Advisorのコードを見せるつもりはないし、全部に目を通すのは億劫だ。別の名前でコピーを作成し、パラメータと空の関数 OnTick(または Start ???) 以外はすべて削除してください。効果はまだあるのでしょうか?結果のコードを表示する

 
Vitaliy Sendyaev: ありがとうございました。

役に立ちましたか?以前はどうだったのでしょうか?

 

申し訳ありませんが、なぜoncalculateが定義済み 変数の値を渡す必要があるのか、それがグローバルで利用可能である場合は理解できません。

 
ijonhson:

こんにちは、私は指標に基づいてEAを作りたい、私はontickに指標のコードをコピーした、私はonCalculate関数から 変数が不足している、私はcopytime copyhigh copylowなどを通してそれをすべて取得する必要がありますまたはより簡単で速い方法があるのだろうか。

アイカスタムで救われる

iCustom - Технические индикаторы - Справочник MQL4
iCustom - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.