초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1198

 
Vitaly Muzichenko :

논리적으로, 먼저 배열의 모든 라인을 수집해야 합니다. 저는 즉시 2차원 배열을 만들 것입니다 . 우물 또는 구조의 배열을 만들고 첫 번째 차원에 생성 시간을 추가하고 두 번째 차원에 라인 이름을 추가합니다. .

루프에서 루프 외부에서 한 번의 실행으로 배열을 채우고 채운 후 첫 번째 차원, 즉 시간별로 배열을 정렬합니다.

두 번째 루프에서 결과를 표시합니다.

결과적으로 우리는 2개의 사이클과 그 사이를 정렬합니다.

문제를 올바르게 이해했다면 끝입니다. :)

따라서 어레이는 확실히 타지 않을 것입니다. 구조의 배열도 정렬되지 않은 것 같습니다. 불필요하게 시도하지 않았습니다.

 
Vitaly Muzichenko :

논리적으로, 먼저 배열의 모든 라인을 수집해야 합니다. 저는 즉시 2차원 배열을 만들 것입니다. 우물 또는 구조의 배열을 만들고 첫 번째 차원에 생성 시간을 추가하고 두 번째 차원에 라인 이름을 추가합니다. .

루프에서 우리는 루프 외부에서 한 번의 실행으로 배열을 채우고 채운 후 첫 번째 차원, 즉 시간별로 배열을 정렬합니다.

두 번째 루프에서 결과를 표시합니다.

결과적으로 우리는 2개의 사이클과 그 사이를 정렬합니다.

문제를 올바르게 이해했다면 끝입니다. :)

질문 - 이 2차원 배열의 유형은 무엇이어야 합니까? )))

 
Alexey Viktorov :

따라서 어레이는 확실히 타지 않을 것입니다. 구조의 배열도 정렬되지 않은 것 같습니다. 불필요하게 시도하지 않았습니다.

왜요? 여기

Документация по MQL5: Операции с массивами / ArraySort
Документация по MQL5: Операции с массивами / ArraySort
  • www.mql5.com
//| Получение значений границ для тиковых объемов                    | //| Custom indicator initialization function                         | //| Custom indicator iteration function                              | //
 
Vitaly Muzichenko :

왜요? 여기

그러나 어디에도 구조의 배열에 대한 언급은 없습니다. 확인을 해봐야 할 것입니다. 하지만 지금은 아닙니다.

 
Alexey Viktorov :

그러나 어디에도 구조의 배열에 대한 언급은 없습니다. 확인을 해봐야 할 것입니다. 하지만 지금은 아닙니다.

나는 배열에 대해 대답했지만 구조에 대한 또 다른 정렬이 있지만 이것은 당면한 작업에 그렇게 중요하지 않습니다.

 
Vitaly Muzichenko :

나는 배열에 대해 대답했지만 구조에 대한 또 다른 정렬이 있지만 이것은 당면한 작업에 그렇게 중요하지 않습니다.

내가 하고 있는 일....

   long      vlines_arr[][ 1 ];

   vlines = ObjectsTotal ( ChartID (), 0 , OBJ_VLINE );
   ArrayResize (vlines_arr,vlines);
   
   for ( int i = 0 ; i < vlines; i++)
   {
       long tml = ( long ) ObjectGetInteger ( ChartID (),vlines_name[i], OBJPROP_TIME );
       vlines_arr[i][ 0 ]  = {{tml}, {i}};
      
   }

컴파일이 되지 않습니다...

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

내가 하고 있는 일....

컴파일이 되지 않습니다...

   long vlines_arr[][ 2 ];

   vlines = ObjectsTotal ( ChartID (), 0 , OBJ_VLINE );
   ArrayResize (vlines_arr,vlines);
   
   for ( int i = 0 ; i < vlines; i++)
   {
       long tml = ( long ) ObjectGetInteger ( ChartID (),vlines_name[i], OBJPROP_TIME );
      vlines_arr[i][ 0 ] = tml;
      vlines_arr[i][ 1 ] = i;
      
   }
 
Vitaly Muzichenko :

고맙습니다. 잠 잘 시간이야 )))

 

미스틱은 그냥...

 void OnStart ()
{
int       vlines            = 0 ;
string    vlines_name[];
string    vlines_name_sort[];
datetime tm[];
long      vlines_arr[][ 2 ];

   vlines = ObjectsTotal ( ChartID (), 0 , OBJ_VLINE );
   if (vlines < 20 * 2 )
   {
       Print ( "вертикальных линий меньше необходимиого. (" ,vlines, " < " ,20 * 2 , ")" );
       return ;
   }
   ArrayResize (vlines_arr,vlines);
   ArrayResize (vlines_name,vlines);
   ArrayResize (vlines_name_sort,vlines);
   
   for ( int i = 0 ; i < vlines; i++)
   {
       long tml = ( long ) ObjectGetInteger ( ChartID (),vlines_name[i], OBJPROP_TIME );
      vlines_arr[i][ 0 ]  = tml;
      vlines_arr[i][ 1 ]  = ( long )i;
   }
   ArrayPrint (vlines_arr);
   ArraySort (vlines_arr);
   Print ( "-------------" );
   ArrayPrint (vlines_arr);
   
   for ( int i = 0 ; i < vlines; i++)
   {
      vlines_name_sort[i]  = ObjectName ( ChartID (),( int )vlines_arr[i][ 1 ], 0 , OBJ_VLINE );
   }
   ArrayPrint (vlines_name_sort);

이것만 처음으로 출시되었습니다 . 배열을 인쇄하면 모든 것이 아름답습니다.

나는 이것을 추가했습니다 - 그리고 나는 무슨 일이 일어나고 있는지 전혀 이해하지 못합니다 ... 아마도, 아직 자야 할 시간입니다 ....

 (GBPUSD,H6)          [, 0 ][, 1 ]
(GBPUSD,H6)     [ 0 ,]   0    0
(GBPUSD,H6)     [ 1 ,]   0    1
(GBPUSD,H6)     [ 2 ,]   0    2
(GBPUSD,H6)     [ 3 ,]   0    3
(GBPUSD,H6)     [ 4 ,]   0    4
(GBPUSD,H6)     [ 5 ,]   0    5
(GBPUSD,H6)     [ 6 ,]   0    6
(GBPUSD,H6)     [ 7 ,]   0    7
(GBPUSD,H6)     [ 8 ,]   0    8
(GBPUSD,H6)     [ 9 ,]   0    9
(GBPUSD,H6)     [ 10 ,]   0    10
(GBPUSD,H6)     [ 11 ,]   0    11
(GBPUSD,H6)     [ 12 ,]   0    12
(GBPUSD,H6)     [ 13 ,]   0    13
(GBPUSD,H6)     [ 14 ,]   0    14
(GBPUSD,H6)     [ 15 ,]   0    15
(GBPUSD,H6)     [ 16 ,]   0    16
(GBPUSD,H6)     [ 17 ,]   0    17
(GBPUSD,H6)     [ 18 ,]   0    18
(GBPUSD,H6)     [ 19 ,]   0    19
(GBPUSD,H6)     [ 20 ,]   0    20
(GBPUSD,H6)     [ 21 ,]   0    21
(GBPUSD,H6)     [ 22 ,]   0    22
(GBPUSD,H6)     [ 23 ,]   0    23
(GBPUSD,H6)     [ 24 ,]   0    24
(GBPUSD,H6)     [ 25 ,]   0    25
(GBPUSD,H6)     [ 26 ,]   0    26
(GBPUSD,H6)     [ 27 ,]   0    27
(GBPUSD,H6)     [ 28 ,]   0    28
(GBPUSD,H6)     [ 29 ,]   0    29
(GBPUSD,H6)     [ 30 ,]   0    30
(GBPUSD,H6)     [ 31 ,]   0    31
(GBPUSD,H6)     [ 32 ,]   0    32
(GBPUSD,H6)     [ 33 ,]   0    33
(GBPUSD,H6)     [ 34 ,]   0    34
(GBPUSD,H6)     [ 35 ,]   0    35
(GBPUSD,H6)     [ 36 ,]   0    36
(GBPUSD,H6)     [ 37 ,]   0    37
(GBPUSD,H6)     [ 38 ,]   0    38
(GBPUSD,H6)     [ 39 ,]   0    39
(GBPUSD,H6)     [ 40 ,]   0    40
(GBPUSD,H6)     [ 41 ,]   0    41
(GBPUSD,H6)     [ 42 ,]   0    42
(GBPUSD,H6)     [ 43 ,]   0    43
(GBPUSD,H6)     [ 44 ,]   0    44
(GBPUSD,H6)     [ 45 ,]   0    45
(GBPUSD,H6)     [ 46 ,]   0    46
(GBPUSD,H6)     [ 47 ,]   0    47
(GBPUSD,H6)     [ 48 ,]   0    48
(GBPUSD,H6)     [ 49 ,]   0    49
(GBPUSD,H6)     -------------
(GBPUSD,H6)          [, 0 ][, 1 ]
(GBPUSD,H6)     [ 0 ,]   0    0
(GBPUSD,H6)     [ 1 ,]   0    1
(GBPUSD,H6)     [ 2 ,]   0    2
(GBPUSD,H6)     [ 3 ,]   0    3
(GBPUSD,H6)     [ 4 ,]   0    4
(GBPUSD,H6)     [ 5 ,]   0    5
(GBPUSD,H6)     [ 6 ,]   0    6
(GBPUSD,H6)     [ 7 ,]   0    7
(GBPUSD,H6)     [ 8 ,]   0    8
(GBPUSD,H6)     [ 9 ,]   0    9
(GBPUSD,H6)     [ 10 ,]   0    10
(GBPUSD,H6)     [ 11 ,]   0    11
(GBPUSD,H6)     [ 12 ,]   0    12
(GBPUSD,H6)     [ 13 ,]   0    13
(GBPUSD,H6)     [ 14 ,]   0    14
(GBPUSD,H6)     [ 15 ,]   0    15
(GBPUSD,H6)     [ 16 ,]   0    16
(GBPUSD,H6)     [ 17 ,]   0    17
(GBPUSD,H6)     [ 18 ,]   0    18
(GBPUSD,H6)     [ 19 ,]   0    19
(GBPUSD,H6)     [ 20 ,]   0    20
(GBPUSD,H6)     [ 21 ,]   0    21
(GBPUSD,H6)     [ 22 ,]   0    22
(GBPUSD,H6)     [ 23 ,]   0    23
(GBPUSD,H6)     [ 24 ,]   0    24
(GBPUSD,H6)     [ 25 ,]   0    25
(GBPUSD,H6)     [ 26 ,]   0    26
(GBPUSD,H6)     [ 27 ,]   0    27
(GBPUSD,H6)     [ 28 ,]   0    28
(GBPUSD,H6)     [ 29 ,]   0    29
(GBPUSD,H6)     [ 30 ,]   0    30
(GBPUSD,H6)     [ 31 ,]   0    31
(GBPUSD,H6)     [ 32 ,]   0    32
(GBPUSD,H6)     [ 33 ,]   0    33
(GBPUSD,H6)     [ 34 ,]   0    34
(GBPUSD,H6)     [ 35 ,]   0    35
(GBPUSD,H6)     [ 36 ,]   0    36
(GBPUSD,H6)     [ 37 ,]   0    37
(GBPUSD,H6)     [ 38 ,]   0    38
(GBPUSD,H6)     [ 39 ,]   0    39
(GBPUSD,H6)     [ 40 ,]   0    40
(GBPUSD,H6)     [ 41 ,]   0    41
(GBPUSD,H6)     [ 42 ,]   0    42
(GBPUSD,H6)     [ 43 ,]   0    43
(GBPUSD,H6)     [ 44 ,]   0    44
(GBPUSD,H6)     [ 45 ,]   0    45
(GBPUSD,H6)     [ 46 ,]   0    46
(GBPUSD,H6)     [ 47 ,]   0    47
(GBPUSD,H6)     [ 48 ,]   0    48
(GBPUSD,H6)     [ 49 ,]   0    49
(GBPUSD,H6)     [ 0 ] "H6 Vertical Line 10771" "H6 Vertical Line 10884" "H6 Vertical Line 12743" "H6 Vertical Line 1371"    "H6 Vertical Line 14306"
(GBPUSD,H6)     [ 5 ] "H6 Vertical Line 16501" "H6 Vertical Line 17907" "H6 Vertical Line 20277" "H6 Vertical Line 23365" "H6 Vertical Line 28358"
 
Сергей Таболин :

미스틱은 그냥...

이것만 처음으로 출시되었습니다 . 배열을 인쇄하면 모든 것이 아름답습니다.

나는 이것을 추가했습니다 - 그리고 나는 무슨 일이 일어나고 있는지 전혀 이해하지 못합니다 ... 아마도, 아직 자야 할 시간입니다 ....

나는 뭔가를 이해하지 못할 수도 있지만 여기에 필요합니다. long tml = ( long ) ObjectGetInteger ( ChartID (), vlines_name[i] , OBJPROP_TIME ); 색인이 아닌 행의 이름을 대체하십시오. 그렇지 않으면 결과를 얻을 수 없습니다.

사유: