Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1317

 

Saluti a tutti! Grazie a tutti in anticipo!

Bug di questo tipo:

C'è una linea Low_D1_Level relativa alla quale stiamo cercando nell'arrayBar_data_D1 [][6]; nuovo livelloMin_D_Level

//---variabili globali

doppio_D1_livello;

double Bar_data_D1 [][6]; //copia i dati delle barre del grafico specificato nell'array e restituisce il numero di barre D1 copiate

La prima dimensione della matrice contiene il numero di barre. La seconda dimensione ha 6 elementi con i valori:

0 - ora,
1 - prezzo aperto,
2 - prezzo più basso (low),
3 - prezzo più alto (high),
4 - prezzo di chiusura (close),
5 - volume.

//+------------------------------------------------------------------+
//|                        Функция 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;
       }
    } 
//---

Stampa Stampa

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:
Per favore, aiutatemi.

Ho provato di tutto e ottengo ancora l'errore 130.

Tutto funziona per me, nessun errore

 

Nel tester di strategia, eseguire dal 2016.12.15.

2016.12.16
 
MakarFX:

Funziona per me, nessun errore

Eseguire l'ottimizzazione. L'ottimizzazione è interrotta da un messaggio CriticalError

 
Aliaksei Karalkou:
Per favore, aiutatemi.

Ho provato di tutto e ottengo ancora l'errore 130.

dalla scheda informativa

 
Dark Kchlyzov:

Non capisco, dove finisce il ciclo?

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

Dovrebbe essere l'ultimo elemento dell'array. No?

E poi fare un controllo della disuguaglianza

for(int i = 0; i<ArrayRange(Bar_data_D1,0) ;i++)
   {
   if(Bar_data_D1 [i][2]>=0)
      {
      
      }
   }
Allora non ci saranno sorprese di andare fuori dalla matrice
 
Aliaksei Karalkou:

Iniziare l'ottimizzazione. L'ottimizzazione è interrotta dal messaggio CriticalError

Nessun errore, con ottimizzazione dal 01.12.2016 a oggi


 

se volete andare su https://www.mql5.com/ru/forum/357558

è tutto lì in dettaglio

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


aggiornato il mio post
 
Aleksei Stepanenko:

Non capisco, dove finisce il ciclo?

Dovrebbe essere l'ultimo elemento dell'array. No?

E poi fare un controllo della disuguaglianza.

Allora non ci saranno sorprese al di fuori dell'array
Aleksei Stepanenko:

Mi scusi, dove finisce il ciclo?

Dovrebbe essere l'ultimo elemento dell'array. No?

E poi fare un controllo della disuguaglianza.

Allora non ci saranno sorprese di andare fuori dalla matrice

Ok, ho capito, ci provo subito.

Grazie!