기능 - 구조 배열을 정렬하는 방법입니다. 상금 10$ - 페이지 4

 
Sergey Dzyublik :

뭐가 문제 야???

즉, 함수 자체에 추가하여 함수를 매개변수로 전달하기 위해 함수에 typedef를 만들고 변수를 생성해야 합니다. 이는 실제로 람다 매크로에서 수행됩니다.

 
fxsaber :

작동하는지 확인했습니다.

불행하게도 (((


 
Vladimir Pastushak :

불행하게도 (((

MT4에서 정렬이 작동하지 않습니다.
여기에서 MT4에 대해 제안된 정렬 호출을 조건부 컴파일에 삽입하지만 MT5에 대한 코드는 건드리지 않습니다.

 
Vladimir Pastushak :

불행하게도 (((


MT4를 업데이트합니다.

 

MT4 에서 코드를 확인하면 모든 것이 작동합니다.

2020.04.21 23:27:35.728 스크립트 t EURUSD,H1: 제거됨

2020.04.21 23:27:35.726 t EURUSD,H1: 단위 이유 0

2020.04.21 23:27:35.726 t EURUSD,H1: 1.08685 1.087231.085271.08542020.04.21 18:00:001.08518 1.087021.084561.086842020.04.21 19:00:001.0843 1.085271.084291.085172020.04.21 20:00:001.08503 1.085061.08411.084292020.04.21 21:00:001.08535 1.08551.084971.085022020. 04.21 22:00:00

2020.04.21 23:27:35.726 t EURUSD,H1:

시간순으로 정렬합니다.

2020.04.21 23:27:35.726 t EURUSD,H1: 1.08503 1.085061.08411.084292020.04.21 21:00:001.0843 1.085271.084291.085172020.04.21 20:00:001.08535 1.08551.084971.085022020.04.21 22:00:001.08518 1.087021.084561.086842020.04.21 19:00:001.08685 1.087231.085271.08542020. 04.21 18:00:00

2020.04.21 23:27:35.726 t EURUSD,H1:

높은 가격순으로 정렬합니다.

2020.04.21 23:27:35.726 t EURUSD,H1: 1.08503 1.085061.08411.084292020.04.21 21:00:001.08535 1.08551.084971.085022020.04.21 22:00:001.0843 1.085271.084291.085172020.04.21 20:00:001.08685 1.087231.085271.08542020.04.21 18:00:001.08518 1.087021.084561.086842020. 04.21 19:00:00

2020.04.21 23:27:35.726 t EURUSD,H1:

시가순으로 정렬합니다.

2020.04.21 23:27:35.726 t EURUSD,H1: 1.08685 1.087231.085271.08542020.04.21 18:00:001.08518 1.087021.084561.086842020.04.21 19:00:001.0843 1.085271.084291.085172020.04.21 20:00:001.08503 1.085061.08411.084292020.04.21 21:00:001.08535 1.08551.084971.085022020. 04.21 22:00:00

2020.04.21 23:27:35.726 t EURUSD,H1:

정렬되지 않은 막대 - 받은 대로.

2020.04.21 23:27:35.726 t EURUSD,H1: 초기화됨

2020.04.21 23:27:34.279 스크립트 t EURUSD,H1: 성공적으로 로드됨

MT4 빌드 1262

다음과 같이 인쇄됩니다.

 string MqlRatesToStr( MqlRates &arr[])
{
   string result = "" ;
   for ( int i = 0 ; i < ArraySize (arr); ++i)
   {
      result += ( string )(arr[i].close) + " " + ( string )(arr[i].high) +( string )(arr[i].low) +( string )(arr[i].open) +( string )(arr[i].time);
   }
   return result;
}
 
Vladimir Pastushak :

제공된 코드 에서 정렬 필드를 지정할 수 있도록 기본 ArraySortStruct 함수를 매크로로 다시 래핑하는 것을 잊었습니다.
그러나 주제의 저자는 완고하게 침묵합니다. 분명히 나는 혼자 필요합니다 ...

 

연산:

1. 구조 = 문자열. 첫 번째 사이클.

2. 문자열 배열을 정렬합니다 . 두 번째 사이클(복잡한, 거품).

3. 문자열 = 구조. 세 번째 사이클.

거의 더 빠릅니다.

원인:

1. 구조는 시스템에서 문자열로 표시되므로 정렬(바이트 단위)만 고려하면 됩니다.

2. 문자열 처리 속도는 다른 유형의 데이터 처리 속도보다 훨씬 빠릅니다.

3. 두 문자열을 비교하는 작업은 루프에서 한 번만 수행됩니다. 필드 값은 비교할 필요가 없습니다.

90년대 초 Clarion에서 이 작업을 수행했습니다. 날아갔다.

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

제공된 코드 에서 정렬 필드를 지정할 수 있도록 기본 ArraySortStruct 함수를 매크로로 다시 래핑하는 것을 잊었습니다.
그러나 주제의 저자는 완고하게 침묵합니다. 분명히 나는 혼자 필요합니다 ...

나는 아직 보지 않았다. 매크로가 이해가 안됩니다. 완전한 코드에 대해 감사드립니다.
 
Алексей Тарабанов :

90년대 초 Clarion에서 이 작업을 수행했습니다. 날아갔다.

눈물까지! )))

1학년 1학기와 알고리즘과 프로그래밍을 처음 접했던 커플이 생각나네요.... 무엇을 가르쳤는지도 기억이 안나는데 처음에는 파스칼 같았는데 터미널 수업에서 수업은 컴퓨터로 하던데요, 15-20줄에 대한 프로그램 컴파일 ... 처음에는 2-3분 동안, 사람들이 대량으로 코드를 인쇄하고 구문 오류를 제거할 때 최대 20분 동안

두 번째 학기부터 그들은 이미 486에서 공부하고있었습니다.


날았다! ))))


추신: 제가 틀리지 않았다면, 그것은 EU-1035였습니다.... 그것은 날아갔습니다!

 
Igor Makanu :

눈물까지! )))

1학년 1학기와 알고리즘과 프로그래밍을 처음 접했던 커플이 생각나네요.... 무엇을 가르쳤는지도 기억이 안나는데 처음에는 파스칼 같았는데 터미널 수업에서 수업은 컴퓨터로 했고, 15-20줄에 대한 프로그램 컴파일 ... 처음에는 2-3분 동안, 사람들이 대량으로 코드를 인쇄하고 구문 오류를 제거할 때 최대 20분 동안

두 번째 학기부터 그들은 이미 486에서 공부하고있었습니다.


날았다! ))))


추신: 제가 틀리지 않았다면, 그것은 EU-1035였습니다.... 그것은 날아갔습니다!

나는 1976년 세계 최초의 개인용 전자 디지털 컴퓨터에서 시작했습니다. MIR은 우크라이나 SSR의 과학 아카데미의 키예프 사이버네틱스 연구소의 개발인 (엔지니어링 노동자를 위한 기계)라고 불렸습니다. Minsk-32가 있은 후에는 EU였습니다.