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

 

皆さん、こんにちは。皆さん、よろしくお願いします。

このタイプのバグ

配列Bar_data_D1 [][6]; new levelMin_D_Level で探しているLow_D1_Levelの相対行が存在します。

//---グローバル変数

double_D1_Level;

double Bar_data_D1 [][6]; //指定したチャートのバーデータを配列にコピーし、コピーしたD1バーの本数を返す。

配列の 1 次元目には,バーの本数が格納される.2次元目は6つの要素で構成され、その値は以下の通りです。

0 - 時間、
1 - 始値、
2 - 安値(low)、
3 - 高値(high)、
4 - 終値(close)、
5 - ボリューム。

//+------------------------------------------------------------------+
//|                        Функция Level 
//+------------------------------------------------------------------+
void Level() 
ArrayCopyRates(Bar_data_D1,_Symbol,PERIOD_D1); // Копирует в массив данные баров указанного графика и возвращает 
Low_D1_Level   = iLow (_Symbol,PERIOD_D1,1);   // Возвращает значение минимальной цены бара  D1
//--- Min_D_Leve  
 for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)
    {
     Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]);
     if( Bar_data_D1 [i][2] < Low_D1_Level)
       {
        Min_D_Level = Bar_data_D1 [i][2];break;
       }
    } 
//---

プリント プリント

2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 998 Bar_data_D1 [i][2] = 1.3364
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 999 Bar_data_D1 [i][2] = 1.33562
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1000 Bar_data_D1 [i][2] = 1.33532
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1001 Bar_data_D1 [i][2] = 1.33705
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1: array out of range in '_Test.mq4' (451,34)
2020.12.09 15:19:29.110 2016.12.16 00:00:00  Testing pass stopped due to a critical error in the EA
2020.12.09 15:19:29.110 EURUSD,H1: 136637 tick events (25 bars, 63904705 bar states) processed in 0:00:17.844 (total time 0:00:24.547)
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
Aliaksei Karalkou:
よろしくお願いします。いろいろ試しましたが、まだ

エラー130が 出ます。

エラーもなく、すべて正常に動作しています。

 

ストラテジーテスターで、2016.12.15から実行する。

2016.12.16
 
MakarFX:

私の場合は、エラーなしで動作しています。

最適化を実行 する。CriticalErrorメッセージで最適化が中断される

 
Aliaksei Karalkou:
よろしくお願いします。いろいろ試したのですが、まだ

エラー130が 出ます。

ファクトシートより

 
Dark Kchlyzov:

よくわからないのですが、ループはどこで終わるのですか?

for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)

配列の 最後の要素になるはずです。ダメ?

そして、不等号のチェックを行う

for(int i = 0; i<ArrayRange(Bar_data_D1,0) ;i++)
   {
   if(Bar_data_D1 [i][2]>=0)
      {
      
      }
   }
そうすれば、アレイの外に 出るというサプライズはなくなるはずです
 
Aliaksei Karalkou:

最適化を開始 する。CriticalErrorというメッセージで最適化が中断される

2016.12.01から今日までの最適化で、エラーなし。


 

もしよろしければ、https://www.mql5.com/ru/forum/357558。

一事が万事

Array out of range in Нужна Помощь
Array out of range in Нужна Помощь
  • 2020.12.09
  • www.mql5.com
Приветствую Всех ! Заранее всем спасибо...
 
Dark Kchlyzov:


を更新しました。
 
Aleksei Stepanenko:

よくわからないのですが、ループはどこで終わるのですか?

配列の 最後の要素になるはずです。ダメ?

そして、不等号のチェックを行う。

そうすれば、アレイの 外側に驚きを感じることはないでしょう
Aleksei Stepanenko:

すみません、ループの終わりはどこですか?

配列の 最後の要素になるはずです。ダメ?

そして、不等号のチェックを行う。

そうすれば、アレイの 外に出るというサプライズはなくなるはずです

わかった、今すぐやってみるよ

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