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

 

皆さん、こんにちは。2週間前のアップデート後のMT5のバグについて、どこに書けばいいのかアドバイスいただけないでしょうか?


要はこういうことです。ポジションを開いて SLやTPにカーソルを合わせると、データウィンドウ(SLやTPの事実を表示するウィンドウ)が表示されなかったり、開くのが非常に遅くなったりします。異なるアカウントの複数のコンピュータで試しました。ターミナルに複数のウィンドウがあるときだけ発生する気がします。以前はこのようなことはなかったのですが。

使い方がよくわからないし、どうしたらいいのかわからない。

ファイル:
 
Artyom Trishkin:

新しいグローバル変数を 作成します。入力パラメーターInp_element_2542795の 値を設定 する。

で、Inp_element_2542795という 文字列のエントリ全体を、この新しい変数g_element_2542795で 置き換えます( Ctrl + H )。

それでも疑問は変わらない。EAが独自に動いている。このグローバル変数が役立つ点が つかめません。変えてみたが、400は変わらない。200に変更してみたところ、200に一定です。しかし、どのポイントを適用するかはEAが判断できるようにしてほしい。

 
jaffer wilson :

それでも問題は変わらない。EAが独自に動いている。このグローバル変数が役立つ点がつかめません。変えてみたが、400は変わらない。200に変更してみたところ、200に一定です。しかし、どのポイントを適用するかはEAが判断できるようにしてほしい。

もし、アドバイザーが変数を変更したいのであれば、g_element_2542795変数を変更する必要があります。初期化時に変数Inp_element_2542795の値を取得し、その後アドバイザーで好きなように変更することができます。

 

なぜ、そのようにならないのでしょうか?

int massiv[OrdersTotal()];
 
igrok333:

なぜ、そのようにならないのでしょうか?

ストロストラップもリッチーも、そう望んでいた。
 
igrok333:

なぜうまくいかないのか?

そうだとしたら、驚きです。

 
igrok333:

なぜ、そのようにならないのでしょうか?

arrayresizeを 使用するとうまくいきます。
 

助けてください、これからです...。
条件付きで敷地面積を決定するにはどうすればよいですか?と書いたのですが、うまくいきません。

double lot()
{
if((Ask <= L0a3 || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1 || (Bid >))= L2b1) ||
(Bid >= L5b1) || (Bid >= L8b1))
lot=(NormalizeDouble(Lots, 2))

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
(Bid >= L5b) || (Bid >= L8b)))
lot=(NormalizeDouble((ロット*1.5), 2))

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >))= L0b3) ||
(Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2));
return lot;
}.

 
wolder1:

助けてください、これからです...。
条件付きで敷地面積を決定するにはどうすればよいですか?これを書いたが、何かうまくいかない。

ダブルロット
{
if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid >= L2b1) || のいずれかである。
(Bid >= L5b1) || (Bid >= L8b1)).
lot=(NormalizeDouble(Lots,2))である。

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) || のいずれかである。
(Bid >= L5b) || (Bid >= L8b)).
lot=(NormalizeDouble((ロット*1.5), 2))

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||)
(Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3)] のようになります。
lot=(NormalizeDouble((ロット*2.5), 2))
リターンロット
}

変数と関数を混同しているようですが、関数であれば、このように試してみてください。

ALT + Sでコードを挿入

double _LOTS()
  {
   double lot=0;
   if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid > = L2b1) ||
      (Bid >= L5b1) || (Bid >= L8b1))
      {
       lot=(NormalizeDouble(Lots, 2));
       Print(" lot = ", lot); 
       return(lot);
      }
      
    if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
      (Bid >= L5b) || (Bid > = L8b))
      {
       lot=(NormalizeDouble((Lots*1.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
     
    

   if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
      (Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))      
      {
       lot=(NormalizeDouble((Lots*2.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
  } 
 
素朴な疑問です。フクロウがコンパイルされない。コードの末尾にエラーがあります。 + __FUNCSIG__
+ ": "+Market_Err_To_Str(errIndex)
+ "; オーダーチケット = " + (文字列)OrderTicket()
+ "; 注文タイプ = " + (文字列)OrderType()
+ "; 注文ストップロス= " + DoubleToStr(OrderStopLoss(), Digits())
+ "; 新しいストップロス = " + DoubleToStr(newStopLoss, Digits())
+ "; ビッド = " + DoubleToStr(Bid, Digits())
+ "; Ask = " + DoubleToStr(Ask, Digits())
);
}
}
lastSetNonlosTryTime = TimeLocal();
}


コンパイル時のエラーを投げる。可能であれば、ご協力ください。ありがとうございました。