Hatalar, hatalar, sorular - sayfa 1437

 
Документация по MQL5: Математические функции / MathIsValidNumber
Документация по MQL5: Математические функции / MathIsValidNumber
  • www.mql5.com
Математические функции / MathIsValidNumber - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MQL5 kodu için daha agresif bir optimize edici nedeniyle davranış farklıdır.
 
Ilyas :
MathIsValidNumber
Teşekkürler, bilmiyordum
 
Ilyas :
MQL5 kodu için daha agresif bir optimize edici nedeniyle davranış farklıdır.
Ve MT4'ün daha akıllı olduğu ortaya çıktı ve MT5 sessiz kalırken "bütünsel sabit taşma" uyarısı verdi.
 
Ilya Malev :

1. Bu kod neden MT4 ve MT5'te farklı sonuçlara yol açıyor (MT4'te daha mantıklı)?

Belgeleri okuyun

MQL4'te EMPTY_VALUE nedir?

Прочие константы - Документация на MQL4
  • docs.mql4.com
Прочие константы - Документация на MQL4
 
Сергей Таболин :

Aşağıdaki satırın neden "menzil dışı" hatası verdiğini söyleyin (ilk aramada):

Duyuru - duyuruldu, ancak buf_ldn[ldn] arabelleğini kim dolduracak?
 
Сергей Таболин :

İlk erişildiklerinde pr_open ve pr_close değerlerinin neler olduğunu görün.
 
Сергей Таболин :

Sonuçta, bu doldurma:

Yoksa bir şey mi kaçırdım?

Bir dizi ilan ettiniz ama dizinin boyutunu belirtmediniz...

Statik örnek int buf_lup[1000], buf_ldn[20000];

 
Сергей Таболин :

Sonuçta, bu doldurma:

Yoksa bir şey mi kaçırdım?

Hayır, bu bir diziyi doldurmuyor. Ayrıca ldn = 0 ise; daha sonra [ ] yerine 0 koyarak dizide 0 eleman bildirdiniz, yani tek bir unsur bile yok. MQL5 Programlama Temelleri - Diziler makalesinde diziler hakkında bilgi edinin.
 
Сергей Таболин :

Sonuçta, bu doldurma:

Yoksa bir şey mi kaçırdım?

Doldurmadan önce dizinin boyutunu ayarlamanız gerekir. (ArrayResize). Basit örnek:

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property script_show_inputs
input bool show_error= true ; // true - выполнить с ишибкой
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   int buf_ldn[]; // объявили динамический массив.
   Print ( "Размер массива buf_ldn[]=" , ArraySize (buf_ldn)); // выведем на печать размер массива
   if (show_error)
     {
       //--- попытка присвоить значение элементу массива с индексом "0" вызовет ошибку:
       //--- Test (EURUSD,M15)   array out of range in 'Test.mq5' (22,14)
      buf_ldn[ 0 ]= 1 ;
     }
   else
     {
       //--- установим новый размер массива:
       ArrayResize (buf_ldn, 1 );
       //--- попытка присвоить значение элементу массива с индексом "0" НЕ вызовет ошибку:
      buf_ldn[ 0 ]= 1 ;
       //--- выведем на печать размер массива и значение элемента с индексом "0"
       Print ( "Размер массива buf_ldn[]=" , ArraySize (buf_ldn), ", элемент с индексом " "0" " имеет значение:" ,buf_ldn[ 0 ]);
     }
  }
//+------------------------------------------------------------------+
Dosyalar:
Test.mq5  2 kb