Yardım Gerekiyor'da dizi aralık dışında - sayfa 14

 
Dark Kchlyzov :

Yetkiliden MT4 yüklemek ve bir test yapmak istedim.

Tünaydın. ile bir problemin var   terminal kurulumu   MT4. Siteden sürüm 4'ü indiriyorum, kurulum başlıyor ve sonuç olarak kurulum bittikten sonra MT5 terminali çıkıyor. Tam olarak MT4 nasıl kurulur?

Cevap: Hayır. Önceki sürüm için destek durduruldu. MT5'te çalışın.

Yapabilir


 

Mevcut tüm süre boyunca test edildi

2016.01.01'den beri AUDUSD

2011.01.01'den beri EURUSD

GBPUSD 2011.01.01'den beri

kullanılmış ve

 for ( int i = 1 ;  ;i++)

ve

 for ( int i = 1 ; i< ArrayRange (Bar_data_D1, 0 ) ;i++)
hata günlüğü eklenmemiş
Dosyalar:
AUDUSD.log  305 kb
EURUSD.log  612 kb
GBPUSD.log  612 kb
 

Karar

 for ( int i = 1 ; i< ArrayRange (Bar_data_D1, 0 ) ;i++)
   {
   if (Bar_data_D1 [i][ 2 ]!=Bar_data_D1 [i+ 1 ][ 2 ]&&Bar_data_D1 [i][ 2 ] < Low_D1_Level)
      {Min_D_Level = Bar_data_D1 [i][ 2 ];
       break ;}
      
   if (Bar_data_D1 [i][ 2 ]==Bar_data_D1 [i+ 1 ][ 2 ])
      {Min_D_Level = Low_D1_Level;
       break ;}
    } 
 

Hindi yaptım herşey doğru çiziyor


 
MakarFX :

Karar

Yazının ilk sayfasına geri dön!

2020.12.14 14:23:44.222 Uzman Test_Seviyesi AUDUSD,H1: kaldırıldı

2020.12.14 14:23:44.234 Expert Test_Level AUDUSD,H1: başarıyla yüklendi

2020.12.14 14:23:44.365 TestGenerator: akım yayılımı 20 kullanıldı

2020.12.14 14:23:45.263 2020.01.24 00:00:00 Test_Level testi başladı

2020.12.14 14:24:29.044 2020.02.10 00:05:00 Test_Level AUDUSD,H1: 'Test_Level.mq4' içinde dizi aralık dışında (39,40)

2020.12.14 14:24:29.044 2020.02.10 00:05:00 EA'daki kritik bir hata nedeniyle test geçişi durduruldu

2020.12.14 14:24:29.044 AUDUSD,H1: 0:00:43.781 (toplam süre 0:00:44.766) içinde işlenen 245717 tick olayı (265 bar, 9638212 bar durumu)

Gereksiz her şey kaldırıldı, işlevi gövdeye taşıdı, çözümünüzü ekledi ve tekrar 'Test_Level.mq4' (39,40) - :)

tamam

Ve burada aslında aralık dışı dizi


 //+------------------------------------------------------------------+
//|                                                   Test_Level.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "3.0"
#property strict
double     Bar_data_D1 [][ 6 ]; // Копирует в массив данные баров указанного графика и возвращает количество скопированных баров D1
double     Low_D1_Level;       // Возвращает значение минимальной цены бара  D1
double     Min_D_Level ;       // ближайшей минимальный  D уровень
int        A_C_R;             // возвращает количество скопированных баров D1
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   DestroyObject();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
 A_C_R = ArrayCopyRates(Bar_data_D1, _Symbol , PERIOD_D1 ); // Копирует в массив данные баров указанного графика и возвращает количество скопированных баров
 Low_D1_Level   = iLow ( _Symbol , PERIOD_D1 , 1 );           // Возвращает значение минимальной цены бара  D1
 
 //--- Min_D_Leve V 1.2
 for ( int i = 1 ; i< ArrayRange (Bar_data_D1, 0 ) ;i++)
    {
     if (Bar_data_D1 [i][ 2 ] != Bar_data_D1 [i+ 1 ][ 2 ] && Bar_data_D1 [i][ 2 ] < Low_D1_Level)
       {
        Min_D_Level = Bar_data_D1 [i][ 2 ]; break ;
       }
      
     if (Bar_data_D1 [i][ 2 ] == Bar_data_D1 [i+ 1 ][ 2 ])
       {
        Min_D_Level = Low_D1_Level; break ;
       }
    }
/* 
 //--- Min_D_Leve V 1.0 
 //for(int i = 1; i<ArrayRange(Bar_data_D1,0) ;i++) // так ошибки нет и линия не перерисовывается 
   for(int i = 1; ;i++)                             // а так выход за массив 
    {
     Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]);
     if(Bar_data_D1 [i][2]>=0)
       {
        if( Bar_data_D1 [i][2] < Low_D1_Level)
          {
           Min_D_Level = Bar_data_D1 [i][2];break;
          }
       }   
    } 
*/
 //+-------------------------Low_D1_Level----------------------------+ 
 if ( ObjectFind ( "Low_D1" )!=Low_D1_Level) 
   {
     ObjectDelete ( "Low_D1" );
     if ( ObjectFind ( "Low_D1" )!= 0 )
      {
       ObjectCreate ( "Low_D1" , OBJ_HLINE , 0 , Time[ 0 ],Low_D1_Level);
       ObjectSet( "Low_D1" , OBJPROP_COLOR , clrMaroon );
       ObjectSet( "Low_D1" , OBJPROP_WIDTH , 1 );
      }
   } 
   
 if ( ObjectFind ( "Low_D1_label" )!=Low_D1_Level)
   {
     ObjectDelete ( "Low_D1_label" ); 
     if ( ObjectFind ( "Low_D1_label" ) != 0 )
      {
       ObjectCreate ( "Low_D1_label" , OBJ_TEXT , 0 , Time[ 13 ], Low_D1_Level);
       ObjectSetText( "Low_D1_label" , "Low_D1: " + DoubleToStr(Low_D1_Level, _Digits ), 8 , "Verdana" , Brown);
      }
   } 
   
 //+-------------------------Min_D_Level----------------------------+ 
 if ( ObjectFind ( "Min_D" )!= Min_D_Level) 
   {
     ObjectDelete ( "Min_D" );
     if ( ObjectFind ( "Min_D" )!= 0 )
      {
       ObjectCreate ( "Min_D" , OBJ_HLINE , 0 , Time[ 0 ],Min_D_Level);
       ObjectSet( "Min_D" , OBJPROP_COLOR , clrMaroon );
       ObjectSet( "Min_D" , OBJPROP_WIDTH , 1 );
      }
   } 
   
 if ( ObjectFind ( "Min_D_label" )!=Min_D_Level)
   {
     ObjectDelete ( "Min_D_label" ); 
     if ( ObjectFind ( "Min_D_label" ) != 0 )
      {
       ObjectCreate ( "Min_D_label" , OBJ_TEXT , 0 , Time[ 30 ], Min_D_Level);
       ObjectSetText( "Min_D_label" , "Min_D: " + DoubleToStr(Min_D_Level, _Digits ), 8 , "Verdana" , Brown);
      }
   } 
   Comment ( " A_C_R возвращает количество скопированных баров D1 = " ,A_C_R); 
}
//+------------------------------------------------------------------+
//|        функция удаление всех объектов созданных советником
//+------------------------------------------------------------------+
void DestroyObject()
{
 int tot= ObjectsTotal ();
 for ( int i=tot; i>= 0 ; i--)
    {
     
     if ( ObjectName (i)== "Low_MN1" ){ ObjectDelete ( 0 , "Low_MN1" ); Print ( "<< Объект Low_MN удалён >>" );}
     if ( ObjectName (i)== "Low_MN1_label" ){ ObjectDelete ( 0 , "Low_MN1_label" ); Print ( "<< Объект Low_MN1_label удалён >>" );}
     

     if ( ObjectName (i)== "Min_D" ){ ObjectDelete ( 0 , "Min_D" ); Print ( "<< Объект Min_D удалён >>" );}
     if ( ObjectName (i)== "Min_D_label" ){ ObjectDelete ( 0 , "Min_D_label" ); Print ( "<< Объект Min_D_label удалён >>" );}


   }
}

 
Dark Kchlyzov :

Yazının ilk sayfasından dön!


Gereksiz her şey kaldırıldı, işlevi gövdeye taşıdı, çözümünüzü ekledi ve tekrar 'Test_Level.mq4' (39,40) - :)

Terminal hatası

kodu yukarıdaki gönderiden kopyaladı ve testi yaptı

işte günlük

Dosyalar:
AUDUSD.log  7368 kb
 
Şimdi başka bir komisyoncu deneyeceğim, yani. başka bir terminal
 
Alpari 10 yıldır hata yok
Dosyalar:
Alpari_AUDUSD.log  15491 kb
 
MakarFX :

Terminal hatası

kodu yukarıdaki gönderiden kopyaladı ve testi yaptı

işte günlük

İşte o haberler.

Ve görselleştirme ile 1.01.2020 AUDUSD'den çalıştırın

gerçi muhtemelen bir fark yaratmaz.

 

Brokeriniz kim?

Hangi terminali kullanıyorsunuz?