mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 223 1...216217218219220221222223224225226227228229230...247 새 코멘트 Koldun Zloy 2022.06.20 05:53 #2221 fxsaber #:숫자 필드를 정렬에 사용하는 특정 경우(가장 일반적인 상황)를 위해 이전보다 몇 배나 빠른 변형을 작성했습니다. 하지만 메모리를 두 배나 많이 소비합니다. 이는 대규모 배열과 관련이 있습니다. 애플리케이션(실행 시간 측정 포함). 결과. 이 옵션에 대해 어떻게 생각하시나요? #include <QuickSort.mqh> #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 #define _BV2(A) _BV(A, 100) // Алертим все, что исполняется дольше 100 микросекунд. struct STRUCT : public MqlTick { double Num; }; typedef bool (*FuncLess)( const STRUCT&, const STRUCT& ); bool Less( const STRUCT& struct1, const STRUCT& struct2 ) { return struct1.Num < struct2.Num; } void function1( STRUCT& array[] ) { QuickSort< STRUCT, FuncLess >( array, Less ); } void OnStart() { STRUCT Array[]; const int Size = ArrayResize(Array, 1 e5); for (int i = Size - 1; i >= 0; i--) Array[i].Num = Size - i; // _BV2(ArraySortStruct(Array, Num)); // _BV2(ArraySortStruct2(Array, Num)); _BV2( function1( Array ) ); } fxsaber 2022.06.20 06:21 #2222 Koldun Zloy #:이건 어때요? 테스트할 수 없습니다. Koldun Zloy 2022.06.20 06:38 #2223 fxsaber #:확인하지 마세요. 퀵소트 라이브러리는 여기 Быстрая сортировка. www.mql5.com Функции для сортировки массивов. Позволяют сортировать строки и структуры по любому условию. fxsaber 2022.06.20 08:11 #2224 Koldun Zloy #:QuickSort 라이브러리는 여기에 있습니다. 고마워요, 아주 좋은 옵션입니다! 저도 퀵소트가 있는 것 같지만 어떤 이유에서인지 속도가 매우 느립니다. 이 옵션을 매크로로 감싸서 더 빠르게 사용할 수 있다면... Koldun Zloy 2022.06.20 11:17 #2225 fxsaber #:고마워요, 아주 좋은 옵션입니다! 저도 퀵소트가 있는 것 같지만 어떤 이유에서인지 브레이크가 거칠어요. 옵션을 매크로로 감싸서 더 빠르게 사용할 수 있습니다.... 매크로가 왜 필요한지 모르겠네요. 매우 간단합니다. Maxim Kuznetsov 2022.06.20 18:19 #2226 C에서 다음과 같이 보이는 것을 올바르게 포맷하는 방법: int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения ??? 템플릿을 정렬하려고 합니다: template <typename T> int sort(T &arr[],int (*cmp)(const T &,const T&)) { { } 는 작동하지 않습니다. 인자에 함수 포인터를 넣을 수 없기 때문입니다. 별도의 typedef가 있어야 합니다. 가 있어야 하지만 typedef는 템플릿이 될 수 없습니다(또는 될 수 있나요??). 매크로는 이러한 문제에서 비롯된 것입니다 :-) mktr8591 2022.06.21 11:02 #2227 Maxim Kuznetsov #:C에서 이와 같은 형식을 올바르게 지정하는 방법을 알아보세요: int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения ??? 템플릿을 사용하려고 합니다: 실패 - 인자에 함수 포인터를 넣을 수 없습니다. 별도의 typedef 가 있어야 하지만 typedef는 템플릿이 될 수 없습니다(또는 될 수 있나요??) .... 매크로는 이러한 문제에서 비롯된 것입니다 :-) template <typename T> struct SORT { typedef int (*cmp)(const T &, const T&); static int Do(T &arr[], cmp) {return 0;} }; int SortInt(const int &, const int &) {return 0;} void OnStart() { int arr[]; SORT<int>::Do(arr, SortInt); } mktr8591 2022.06.21 16:57 #2228 MQL(및 C++)에서 명확하지 않은 기능을 발견했습니다. class C1 { public: virtual void f1(int p = 1) {Print(p);} }; class C2: public C1 { public: virtual void f1(int p = 2) {Print(p);} }; void OnStart() { C2 obj; C1 *p = &obj; p.f1(); //Prints "1" } 즉, 메서드 호출 시점(p.f1())에서 기본값이 매개변수(p)로 치환되고 이 값은 객체의 실제 유형이 아닌 선언된 유형인 변수 ptr의 클래스 C1의 메서드 설명에서 가져온다는 것입니다. (일반적으로 논리적입니다). Andrey Dik 2022.06.24 10:44 #2229 트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼 오류, 버그, 질문 안드레이 딕, 2022.06.24 08:38 MQL_VISUAL_MODE는 MQL_TESTER의 특수한 경우인가요? MQL_OPTIMIZATION은 MQL_TESTER의 특수한 경우인가요 ? 내 말은, MQL_TESTER에는 MQL_VISUAL_MODE와 MQL_OPTIMIZATION이 모두 포함되나요 ? 차트에서 작업하고 시각적 모드에서 작업 할 때 EA가 일부 작업을 수행해야하지만 다른 모든 경우에는 그렇지 않습니다. MQLInfoInteger ()를 확인할 때이 경우에 적합한 플래그를 선택하는 방법을 알 수 없습니까? 예를 들어 다음과 같이 매우 간단하게 할 수 있습니다: if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE)) { //выполняем некоторые действия } 하지만 MQL_CHART_MODE 플래그는 mql5에서 제공되지 않습니다. 누구든지 생각이 있으신가요? Features of the mql5 오류, 버그, 질문 MT5와 속도 Maxim Kuznetsov 2022.06.24 11:47 #2230 Andrey Dik #: 의견 있으신 분? if (ChartID()!=0) { // Graphical chart presents // draws on it } 1...216217218219220221222223224225226227228229230...247 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
숫자 필드를 정렬에 사용하는 특정 경우(가장 일반적인 상황)를 위해 이전보다 몇 배나 빠른 변형을 작성했습니다. 하지만 메모리를 두 배나 많이 소비합니다. 이는 대규모 배열과 관련이 있습니다.
애플리케이션(실행 시간 측정 포함).
결과.
이 옵션에 대해 어떻게 생각하시나요?
이건 어때요?
테스트할 수 없습니다.
확인하지 마세요.
퀵소트 라이브러리는 여기
QuickSort 라이브러리는 여기에 있습니다.
고마워요, 아주 좋은 옵션입니다! 저도 퀵소트가 있는 것 같지만 어떤 이유에서인지 속도가 매우 느립니다.
이 옵션을 매크로로 감싸서 더 빠르게 사용할 수 있다면...
고마워요, 아주 좋은 옵션입니다! 저도 퀵소트가 있는 것 같지만 어떤 이유에서인지 브레이크가 거칠어요.
옵션을 매크로로 감싸서 더 빠르게 사용할 수 있습니다....
매크로가 왜 필요한지 모르겠네요. 매우 간단합니다.
C에서 다음과 같이 보이는 것을 올바르게 포맷하는 방법:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
템플릿을 정렬하려고 합니다:
template <typename T>
int sort(T &arr[],int (*cmp)(const T &,const T&))
{ {
}
는 작동하지 않습니다. 인자에 함수 포인터를 넣을 수 없기 때문입니다. 별도의 typedef가 있어야 합니다.
가 있어야 하지만 typedef는 템플릿이 될 수 없습니다(또는 될 수 있나요??).
매크로는 이러한 문제에서 비롯된 것입니다 :-)
C에서 이와 같은 형식을 올바르게 지정하는 방법을 알아보세요:
int sort(void *arr,size_t isize,size_t size, int (*cmp)(void *item1,void *item2)); /// типовой прототип sort с функцией сравнения
???
템플릿을 사용하려고 합니다:
실패 - 인자에 함수 포인터를 넣을 수 없습니다. 별도의 typedef
가 있어야 하지만 typedef는 템플릿이 될 수 없습니다(또는 될 수 있나요??) ....
매크로는 이러한 문제에서 비롯된 것입니다 :-)
MQL(및 C++)에서 명확하지 않은 기능을 발견했습니다.
즉, 메서드 호출 시점(p.f1())에서 기본값이 매개변수(p)로 치환되고 이 값은 객체의 실제 유형이 아닌 선언된 유형인 변수 ptr의 클래스 C1의 메서드 설명에서 가져온다는 것입니다.
(일반적으로 논리적입니다).
트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼
오류, 버그, 질문
안드레이 딕, 2022.06.24 08:38
MQL_VISUAL_MODE는 MQL_TESTER의 특수한 경우인가요?
MQL_OPTIMIZATION은 MQL_TESTER의 특수한 경우인가요 ?
내 말은, MQL_TESTER에는 MQL_VISUAL_MODE와 MQL_OPTIMIZATION이 모두 포함되나요 ?
차트에서 작업하고 시각적 모드에서 작업 할 때 EA가 일부 작업을 수행해야하지만 다른 모든 경우에는 그렇지 않습니다. MQLInfoInteger ()를 확인할 때이 경우에 적합한 플래그를 선택하는 방법을 알 수 없습니까?
예를 들어 다음과 같이 매우 간단하게 할 수 있습니다:
if (MQLInfoInteger(MQL_VISUAL_MODE) || MQLInfoInteger(MQL_CHART_MODE))
{
//выполняем некоторые действия
}
하지만 MQL_CHART_MODE 플래그는 mql5에서 제공되지 않습니다.
누구든지 생각이 있으신가요?
의견 있으신 분?
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}