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

 

同僚よ、私は困っている。助けてほしいんです。

正常に動作するインジケーターがあるので、2個から作りましたが、そんなことはどうでもいいんです。最初のブロックの外部変数を非表示にしたいのですが、コンパイル後にこのブロックの入力を削除すると、チャートにインジケータをインストールしたターミナルがハングアップしてしまいます。

76行目から86行目までのコード断片

input string     01 = "••  Channel:";   // ------------------------------------------------------------
input string     02 = "";       //  

input ENUM_TF_MINUTES   TMA_TimeFrame = TF_CURR;                        // Time Frame
input uint              TMA_Half_Length = 55;                                                                   // Averaging Period
input ENUM_APPLIED_PRICE        TMA_Price = PRICE_CLOSE;        // Applied _Price
input double    TMA_ATR_Multiplier = 3;                                                         // ATR Multiplier
input uint              TMA_ATR_Period = 100;                                                                   // ATR Period
input double    TMA_Band_Deviation_Percent = 50;                        // Band Deviation Percent
input bool              TMA_Interpolate = true;                                                         // Interpolate?
input uint Bars_Limit=1000;

また、このブロックをすべて他の変数より下に移動しても、一番外側の変数を上下に動かしてもハングします。

ブロック内の変数の順番を変えると、正常にコンパイルされます。端末がフリーズすることはありません。

何が起こっているのか理解できない。私の目が曇っているのか、明らかなものが見えません(( コードを添付します。

追伸:この問題は解決され、コードは削除されました。
 
Andrey Kaunov #:

同僚よ、私は困っている。助けてほしいんです。

正常に動作するインジケーターがあるので、2個から作りましたが、そんなことはどうでもいいんです。最初のブロックの外部変数を非表示にしたいのですが、コンパイル後にこのブロックの入力を削除すると、チャートにインジケータをインストールしたターミナルがハングアップしてしまいます。

76行目から86行目までのコード断片

また、このブロックをすべて他の変数より下に移動しても、一番外側の変数を上下に動かしてもハングします。

ブロック内の変数の順番を変えると、正常にコンパイルされます。端末がフリーズすることはありません。

何が起こっているのか理解できない。もしかしたら、私の目がかすんでいて、明らかな何かを見逃しているかもしれません((( コードを添付します。

入力を const で置き換える

と喜びます。

 
Maxim Kuznetsov #:

入力を const に置き換える

と喜びます。

チャートにインジケータを追加するとターミナルがハングアップしてしまうのですが、どうにもなりません。

 
Andrey Kaunov #:

チャートへのインジケータの追加時にターミナルがハングアップしてしまいます。

コンパイルはできますか?

つまり、パラメータにinput属性がある場合は動作するが、constの場合はハングアップする?

奇蹟はない

 
Andrey Kaunov #:

シャイターンだから、何もわからない。私の目が曇っているのか、明らかなものが見えません((( コードを添付します。

379行目以降では、インジケータ(呼び出しそのもの)への再帰があります。そこにパラメータがあるので、パラメータの順番を変えた上で、それらも合わせる必要があります。

 
Nikolay Ivanov #:

379行目以降では、インジケータへの再帰(自分自身を呼び出す)をしています。そこにはパラメーターがあり、パラメーターの順番を変えた後に、それらも調整する必要があります。

ニコライさん、どうもありがとうございました。

そうですね、もっと掘り下げるべきでしたね。パラメータに引っかかる。

 

このサイクルでは、なぜインナーループが機能しないのか、教えてください。

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


サイクル2」は印刷されません。サイクル1」のみ。

 
OBJ_RECTANGLE_LABELのサイズを、異なるモニターで同じになるように固定する方法を知っている人はいますか?内蔵のOneClickTradingパネルのサイズ(ピクセル単位)に合わせて小さなパネルを作ったのですが、モニターが違うと私のはサイズが変わるのに、内蔵のは変わりません。
 
Ivan Butko #:

このサイクルでは、なぜインナーループが機能しないのか、教えてください。

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


サイクル2」は印刷されません。"サイクル1 "のみ

プリントやアラートなど、あらゆるものが印刷されます。

void OnStart()
  {
//---
for (int Try=0; Try<1;) 

  { Alert("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Alert("цикл 2"); Try=1; Try2=1;
        }}
   
  }
//+------------------------------------------------------------------+

2022.03.20 10:28:29.373 スクリプト qqq EURUSD,M1: 削除されました。
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alert: Cycle 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alert: Cycle 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: 初期化されました。

 
Valeriy Yastremskiy #:

全印刷、アラート

2022.03.20 10:28:29.373 スクリプト qqq EURUSD,M1: 削除されました。
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit reason 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alert: Cycle 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alert: Cycle 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: 初期化されました。

チェックありがとうございましたを見ることにします。