mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 237 1...230231232233234235236237238239240241242243244...247 새 코멘트 Nikolai Semko 2023.11.15 05:33 #2361 Alain Verleyen #:제가 뭔가 놓친 것일 수도 있지만, 스크립트를 사용하여 기간 초(만)를 확인했습니다. 테스트 결과를 확인했습니다: 2023.11.15 00:26:58.896 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 29.78 наносекунд - PeriodSecondsFastFXS 2023.11.15 00:26:59.056 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 16.03 наносекунд - PeriodSecondsFast 2023.11.15 00:26:59.477 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 42.08 наносекунд - Расчет через PeriodSeconds 2023.11.15 00:26:59.477 DDD__ (EURUSD,M1) ======================================================================== 2023.11.15 00:27:16.018 DDD__ (EURUSD,M1) =====LOOP=10000000 2023.11.15 00:27:16.318 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 29.99 наносекунд - PeriodSecondsFastFXS 2023.11.15 00:27:16.474 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 15.59 наносекунд - PeriodSecondsFast 2023.11.15 00:27:16.901 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 42.74 наносекунд - Расчет через PeriodSeconds 2023.11.15 00:27:16.901 DDD__ (EURUSD,M1) ======================================================================== 2023.11.15 00:27:25.206 DDD__ (EURUSD,M1) =====LOOP=10000000 2023.11.15 00:27:25.508 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 30.14 наносекунд - PeriodSecondsFastFXS 2023.11.15 00:27:25.666 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 15.77 наносекунд - PeriodSecondsFast 2023.11.15 00:27:26.110 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 44.47 наносекунд - Расчет через PeriodSeconds 2023.11.15 00:27:26.110 DDD__ (EURUSD,M1) ======================================================================== 2023.11.15 00:27:40.780 DDD__ (EURUSD,M1) =====LOOP=10000000 2023.11.15 00:27:41.089 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 30.90 наносекунд - PeriodSecondsFastFXS 2023.11.15 00:27:41.249 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 15.98 наносекунд - PeriodSecondsFast 2023.11.15 00:27:41.676 DDD__ (EURUSD,M1) контрольная сумма - 34192800000000, время выполнения 1 иттерации = 42.72 наносекунд - Расчет через PeriodSeconds 2023.11.15 00:27:41.676 DDD__ (EURUSD,M1) ======================================================================== 0 errors, 0 warnings, 234 msec elapsed, cpu='AVX2 + FMA3' 테스트에서 천만 번의 동일한 계산이 발생하기 때문에 테스트 자체가별로 마음에 들지 않습니다. 그리고 총 21*10,000,000번의 반복이 있기 때문에 이 값은 21로 나누어야 합니다. 그러나이 테스트는 또한 내 결론을 확인하지만 더 신선 해 보이는 프로세서의 경우 최신 성능 기능을 최대한 사용하므로 더 최신이므로 더 객관적입니다. 다른 분들도 이 테스트의 결과를 확인해 보시면 흥미로울 것 같습니다. Slava 2023.11.15 06:37 #2362 fxsaber #:형식을 살펴봤습니다. 아마 속도가 빨라지지는 않을 겁니다. 하지만 스위치의 기적적인 속도에 대해 들었습니다. 스파스 스위치는 기적적인 속도를 제공하지 않습니다. 가장 놀라운 속도는 0에서 255까지 1 단위로 케이스가 있는 스위치일 것입니다. fxsaber 2023.11.15 10:36 #2363 Slava #:스파스 스위치는 놀라운 속도를 제공하지 않습니다. 가장 놀라운 속도는 0에서 255까지 1 단위의 케이스가 있는 스위치일 것입니다. 감사합니다. Alain Verleyen 2023.11.15 13:43 #2364 Nikolai Semko # :내 테스트 결과를 확인하세요: 테스트에서 천만 번의 동일한 계산이 발생하기 때문에 테스트 자체가별로 마음에 들지 않습니다. 그리고 이 값은 총 21*10,000,000회의 반복이 있기 때문에 21로 나누어야 합니다. 그러나이 테스트는 또한 내 결론을 확인하지만 내 프로세서의 경우 더 신선 해 보이므로 최신 성능 기능을 최대한 사용하므로 더 최신이므로 더 객관적입니다. 다른 분들도 이 테스트의 결과를 확인해 보시면 흥미로울 것 같습니다. 고마워요. 어제 늦게 컴파일러 최적화를 하지 않은 결과를 올렸습니다. 다음은 cpu='AVX2 + FMA3', 최대 최적화를 적용한 결과입니다. fxsaber 2023.11.15 13:56 #2365 Nikolai Semko #:이 알고리즘의 가장 큰 어려움은 월의 시작 시간(녹색으로 강조 표시됨)을 계산하는 것입니다. 코드에서 가장 흥미로운 부분이지만 토론에서는 거의 다루지 않았습니다. Nikolai Semko 2023.11.15 14:19 #2366 fxsaber #:코드에서 가장 흥미로운 부분이지만 토론에서는 거의 다루지 않았습니다. 거기서 한 해는 1월 1일이 아닌 3월 1일에 시작됩니다.이것은 제가 스택오버플로우에서 본 팁입니다. 좋은 조언이었습니다.30.68 인자를 찾기 위해 스크립트를 작성해야 했습니다. fxsaber 2023.11.26 09:33 #2367 저는 매우 짧은 코드(15줄 미만)를 mqh-library 형태로 저장해야 할 필요성에 직면했습니다. template <typename T1, typename T2> T1* New( const string &ClassName ) { return((typename(T2) == ClassName) ? new T2 : NULL); } template <typename T1, typename T2> T1* New( string ClassName, const T2 &FuncNew[] ) { T1* Res = NULL; #ifdef __MQL5__ ClassName = "class " + ClassName; #endif // #ifdef __MQL5__ for (uint i = ArraySize(FuncNew); (Res == NULL) && (bool)i--;) Res = FuncNew[i](ClassName); return(Res); } 함수에 대한 포인터는 글로벌 스코퍼스에서 함수에 대해서만 가능하기 때문에 어쩔 수 없는 조치입니다. 얼마나 짧은 라이브러리를 사용하시나요? fxsaber 2023.11.27 08:38 #2368 템플릿 함수의 서명은 호출 위치에 따라 달라질 수 있습니다. 트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼 오류, 버그, 질문 fxsaber, 2023.11.26 23:26 template <typename T> void Func( void ) { Print(__FUNCSIG__); } void OnStart() { Func<int>(); // void "void OnStart()"::Func<int>() } fxsaber 2023.12.10 22:47 #2369 내가 올바르게 이해했다면, 이 경우 A::f() 메서드는 g()에 인라인 처리됩니다. class A { void f() {} void g() { this.f(); } }; 그리고 여기서는 그렇지 않습니다. class A { virtual void f() {} void g() { this.f(); } }; 코드의 어느 곳에도 A 클래스의 하위 객체가 생성되지 않는다면 두 번째 경우 컴파일러가 A::f()를 인라인 처리할까요? fxsaber 2023.12.17 01:35 #2370 비주얼라이저의 특정 위치에 중단점을 만들어야 할 때가 있습니다. 저는 이런 용도로 이 기능을 사용합니다. bool IsManualChangeTester() { static const bool IsVisual = MQLInfoInteger(MQL_VISUAL_MODE); static ENUM_CHART_MODE PrevChartMode = (ENUM_CHART_MODE)ChartGetInteger(0, CHART_MODE); bool Res = false; if (IsVisual) { const ENUM_CHART_MODE ChartMode = (ENUM_CHART_MODE)ChartGetInteger(0, CHART_MODE); if (Res = (ChartMode != PrevChartMode)) PrevChartMode = ChartMode; } return(Res); } 이 애플리케이션에서요. if (IsManualChangeTester()) DebugBreak(); 이 조건을 만들어야 할 때는 비주얼라이저에서 그래프 표시 모드를 변경하기만 하면 됩니다. 그런 다음 ME에서 Expert Advisor의 동작을 분석합니다. 1...230231232233234235236237238239240241242243244...247 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
제가 뭔가 놓친 것일 수도 있지만, 스크립트를 사용하여 기간 초(만)를 확인했습니다.
테스트 결과를 확인했습니다:
0 errors, 0 warnings, 234 msec elapsed, cpu='AVX2 + FMA3'
테스트에서 천만 번의 동일한 계산이 발생하기 때문에 테스트 자체가별로 마음에 들지 않습니다.
그리고 총 21*10,000,000번의 반복이 있기 때문에 이 값은 21로 나누어야 합니다.
그러나이 테스트는 또한 내 결론을 확인하지만 더 신선 해 보이는 프로세서의 경우 최신 성능 기능을 최대한 사용하므로 더 최신이므로 더 객관적입니다.
다른 분들도 이 테스트의 결과를 확인해 보시면 흥미로울 것 같습니다.
형식을 살펴봤습니다.
아마 속도가 빨라지지는 않을 겁니다. 하지만 스위치의 기적적인 속도에 대해 들었습니다.
스파스 스위치는 기적적인 속도를 제공하지 않습니다.
가장 놀라운 속도는 0에서 255까지 1 단위로 케이스가 있는 스위치일 것입니다.
스파스 스위치는 놀라운 속도를 제공하지 않습니다.
가장 놀라운 속도는 0에서 255까지 1 단위의 케이스가 있는 스위치일 것입니다.
감사합니다.
내 테스트 결과를 확인하세요:
테스트에서 천만 번의 동일한 계산이 발생하기 때문에 테스트 자체가별로 마음에 들지 않습니다.
그리고 이 값은 총 21*10,000,000회의 반복이 있기 때문에 21로 나누어야 합니다.
그러나이 테스트는 또한 내 결론을 확인하지만 내 프로세서의 경우 더 신선 해 보이므로 최신 성능 기능을 최대한 사용하므로 더 최신이므로 더 객관적입니다.
다른 분들도 이 테스트의 결과를 확인해 보시면 흥미로울 것 같습니다.
고마워요.
어제 늦게 컴파일러 최적화를 하지 않은 결과를 올렸습니다.
다음은 cpu='AVX2 + FMA3', 최대 최적화를 적용한 결과입니다.
이 알고리즘의 가장 큰 어려움은 월의 시작 시간(녹색으로 강조 표시됨)을 계산하는 것입니다.
코드에서 가장 흥미로운 부분이지만 토론에서는 거의 다루지 않았습니다.
코드에서 가장 흥미로운 부분이지만 토론에서는 거의 다루지 않았습니다.
저는 매우 짧은 코드(15줄 미만)를 mqh-library 형태로 저장해야 할 필요성에 직면했습니다.
함수에 대한 포인터는 글로벌 스코퍼스에서 함수에 대해서만 가능하기 때문에 어쩔 수 없는 조치입니다.
얼마나 짧은 라이브러리를 사용하시나요?
트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼
오류, 버그, 질문
fxsaber, 2023.11.26 23:26
내가 올바르게 이해했다면, 이 경우 A::f() 메서드는 g()에 인라인 처리됩니다.
그리고 여기서는 그렇지 않습니다.
코드의 어느 곳에도 A 클래스의 하위 객체가 생성되지 않는다면 두 번째 경우 컴파일러가 A::f()를 인라인 처리할까요?
이 애플리케이션에서요.
이 조건을 만들어야 할 때는 비주얼라이저에서 그래프 표시 모드를 변경하기만 하면 됩니다.
그런 다음 ME에서 Expert Advisor의 동작을 분석합니다.