도움이 필요한 배열이 범위를 벗어났습니다. - 페이지 2

 
Dark Kchlyzov :

그 밖에 무엇이 필요합니까?

 2020.12 . 09 16 : 59 : 49.842 EURUSDb,H1: 4036 tick events ( 4035 bars, 8170 bar states) processed in 0 : 00 : 31.734 (total time 0 : 00 : 33.750 )
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1919 Bar_data_D1 [i][ 2 ] = 1.2991
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1918 Bar_data_D1 [i][ 2 ] = 1.29231
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1917 Bar_data_D1 [i][ 2 ] = 1.29113
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1916 Bar_data_D1 [i][ 2 ] = 1.30024
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1915 Bar_data_D1 [i][ 2 ] = 1.28882
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1914 Bar_data_D1 [i][ 2 ] = 1.28817
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1913 Bar_data_D1 [i][ 2 ] = 1.28435
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1912 Bar_data_D1 [i][ 2 ] = 1.28632
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1911 Bar_data_D1 [i][ 2 ] = 1.28791
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1910 Bar_data_D1 [i][ 2 ] = 1.28879
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1909 Bar_data_D1 [i][ 2 ] = 1.29605
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1908 Bar_data_D1 [i][ 2 ] = 1.28298
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1907 Bar_data_D1 [i][ 2 ] = 1.2828
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1906 Bar_data_D1 [i][ 2 ] = 1.27509
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1905 Bar_data_D1 [i][ 2 ] = 1.2755
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1904 Bar_data_D1 [i][ 2 ] = 1.27938
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1903 Bar_data_D1 [i][ 2 ] = 1.28003
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1902 Bar_data_D1 [i][ 2 ] = 1.27712
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1901 Bar_data_D1 [i][ 2 ] = 1.28088
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1900 Bar_data_D1 [i][ 2 ] = 1.27897
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1899 Bar_data_D1 [i][ 2 ] = 1.27455
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1898 Bar_data_D1 [i][ 2 ] = 1.29004
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1897 Bar_data_D1 [i][ 2 ] = 1.2987
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1896 Bar_data_D1 [i][ 2 ] = 1.29682
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1895 Bar_data_D1 [i][ 2 ] = 1.30048
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1894 Bar_data_D1 [i][ 2 ] = 1.30511
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1893 Bar_data_D1 [i][ 2 ] = 1.30437
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1892 Bar_data_D1 [i][ 2 ] = 1.30365
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1891 Bar_data_D1 [i][ 2 ] = 1.30952
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1890 Bar_data_D1 [i][ 2 ] = 1.30212
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1889 Bar_data_D1 [i][ 2 ] = 1.3028
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1888 Bar_data_D1 [i][ 2 ] = 1.30012
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1887 Bar_data_D1 [i][ 2 ] = 1.30208
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1886 Bar_data_D1 [i][ 2 ] = 1.30469
2020.12 . 09 16 : 59 : 49.842 2020.12 . 08 23 : 59 : 59   Array EURUSDb,H1:  i = 1885 Bar_data_D1 [i][ 2 ] = 1.30532
 

2016.12.16 오류없이 실행

 0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 982 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.32568
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 983 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.32663
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 984 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.33358
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 985 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.32481
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 986 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.30383
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 987 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.30364
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 988 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.30569
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 989 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.30165
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 990 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.29975
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 991 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.30464
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 992 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31567
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 993 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31716
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 994 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31654
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 995 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.32014
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 996 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31826
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 997 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31706
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 998 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.3157
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 999 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.31889
0        15 : 21 : 45.179      2016.12 . 16 00 : 00 : 00   Array EURUSD,H1:  i = 1000 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.32227
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 1 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.09353
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 2 Bar_data_D1 [i][ 2 ] = 1.08923
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 3 Bar_data_D1 [i][ 2 ] = 1.0882
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 4 Bar_data_D1 [i][ 2 ] = 1.08737
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 5 Bar_data_D1 [i][ 2 ] = 1.08505
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 6 Bar_data_D1 [i][ 2 ] = 1.0859
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 7 Bar_data_D1 [i][ 2 ] = 1.08587
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 8 Bar_data_D1 [i][ 2 ] = 1.09153
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 9 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.09544
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 10 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.09695
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 11 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.09633
0        15 : 21 : 45.179      2016.12 . 16 01 : 00 : 00   Array EURUSD,H1:  i = 12 Low_D1_Level = 1.09353 Bar_data_D1 [i][ 2 ] = 1.09699
 
Ihor Herasko :
MqlRates 유형으로 Bar_data_D1 배열을 선언하십시오. 결과적으로 1차원이 됩니다. 또는 Spread 및 real_volume 필드가 불필요하다고 생각되는 경우 MqlRates 대신 고유한 구조를 선언하십시오.

예시를 작성하는 것이 어렵지 않다면 어떻게 작성해야 할까요?

거래 경험이 있지만 MQL 4를 배우기 시작했습니다.

 
Dark Kchlyzov :

이렇게 쓰다


 //--- Min_D_Leve  
 for ( int i = 1 ; 0 <= 1 ;i++)
 
Dark Kchlyzov :

내가 당신을 올바르게 이해한다면,

Bar_data_D1 [i][ 2 ]

오늘의 저점

Low_D1_Level 

전날 최저

첫 번째가 두 번째보다 작으면

Min_D_Level = Bar_data_D1 [i][ 2 ]

내가 모든 것을 올바르게 이해 했습니까?

 

//+------------------------------------------------------------------+
//|                                                   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   "1.00"
#property strict
double   Bar_data_D1 [][6]; // Копирует в массив данные баров указанного графика и возвращает количество скопированных баров D1
double   Low_D1_Level;      // Возвращает значение минимальной цены бара  D1
double   Min_D_Level ;      // ближайшей минимальный  D уровень
datetime  Time_Day;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Level();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  On_Timer();
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                        Функция 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; i<ArrayRange(Bar_data_D1,0) ;i++)
    {
     Print(ArrayRange(Bar_data_D1,0));
     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);
      }
   }  
 
}
//+------------------------------------------------------------------+
//|        функция удаление всех объектов созданных советником
//+------------------------------------------------------------------+
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 удалён >>");}


   }
}
//+-------------------------------------------------------------------------+   
//                         функция Timer                    
//+-------------------------------------------------------------------------+
void On_Timer()
{

     
 if(Day()!= Time_Day)
   {
    Level();
    Time_Day = Day();
   }
}



Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
One Click Close The script allows users to easily close positions if their profit/loss reaches or exceeds a value specified in pips. Please set slippage value first. Sometimes some positions do not close due to high volatility of the market. Please set larger slippage or restart the script. The free demo version is: ...
 
MakarFX :

내가 당신을 올바르게 이해한다면,

오늘의 저점

전날 최저

첫 번째가 두 번째보다 작으면

내가 모든 것을 올바르게 이해 했습니까?


전날 최저

Low_D1_Level 

Low_D1_Level보다 작은 가장 가까운 일일 최저가

Min_D_Level
 

2016.12.16 선을 다시 그리지 않고,

역사상 가장 가까운 최소값이 3500bar +-이기 때문입니다.

이것은 물론 희소성, 새로운 역사의 최소치이지만 여전히 그렇습니다.


계획대로 이 날짜까지 어레이를 거쳐야 합니다.



 
Dark Kchlyzov :

가장 가까운 일일 최저

어떤 기간 동안?

 
MakarFX :

어떤 기간 동안?

이해하지 못했어요?