mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 147 1...140141142143144145146147148149150151152153154...247 새 코멘트 [삭제] 2019.10.29 06:03 #1461 Igor Makanu : IsInf() 및 IsNaN()이 작동 중입니다. IsEqual() 및 IsZerro() 의심스러운, 일부 출처에서 "트릭을 위한 트릭"으로 Google 검색 IsNan()은 작동하지만 IsInf()는 작동하지 않습니다. IsInf(DBL_MIN_DENORM) == true 비정규화 된 숫자는 언제부터 무한대가 되었습니까? 음, 엡실론과의 이러한 모든 비교는 피연산자에 비례하여 증가해야 합니다. 그리고 일반적으로 여기에는 보편적인 방법이 없으므로 Point를 엡실론으로 사용합니다(피연산자의 반올림 포함). 차이점을 DBL_EPSILON 과 비교할 필요가 없습니다(필요하지 않음). Igor Makanu 2019.10.29 06:38 #1462 Vict : 음, 엡실론과의 이러한 모든 비교는 피연산자에 비례하여 증가해야 합니다. 그리고 일반적으로 여기에는 보편적인 방법이 없으므로 Point를 엡실론으로 사용합니다(피연산자의 반올림 포함). 차이점을 DBL_EPSILON 과 비교할 필요가 없습니다(필요하지 않음). 어제 TV에서 읽은 기사를 찾았습니다. https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ 예, 비교 정확도를 설정할 위치를 사용하려면 다른 예가 필요합니다. 빅트 : IsNan()은 작동하지만 IsInf()는 작동하지 않습니다. 비정규화 된 숫자는 언제부터 무한대가 되었습니까? MQL의 정규화는 최대 8자리인 것 같습니다. IsInf()에 NormalizeDouble()을 추가해도 결과는 여전히 좋지 않습니다. [삭제] 2019.10.29 06:44 #1463 Igor Makanu : MQL의 정규화는 최대 8자리인 것 같습니다. IsInf()에 NormalizeDouble()을 추가해도 결과는 여전히 좋지 않습니다. µl의 정규화는 전혀 아닙니다. 왜 그 함수를 그렇게 불렀는지 모르겠습니다. https://en.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0 %B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0 fxsaber 2019.10.29 21:54 #1464 CTRL+1, CTRL+2, ....를 통해 책갈피를 만들 수 있고 ALT+1, ALT+2, ...를 통해 책갈피를 전환할 수 있다는 것을 ME에서 우연히 발견했습니다. fxsaber 2019.10.31 10:30 #1465 // Количество успешных OrderSend. int GetOrderSendSucceeded() { MqlTradeRequest Request = { 0 }; MqlTradeResult Result; return ( OrderSend (Request, Result) ? 0 : ( int )Result.request_id + 1 ); } (런칭 이후) 터미널에서 성공적으로 전송된 동기 거래 주문 (OrderSend)의 수와 생성된 비동기 거래 주문의 수를 보여줍니다. 나는 테스터(마지막에)에서 주문을 수정한 횟수를 이해하는 데 사용합니다. fxsaber 2019.10.31 22:51 #1466 예를 들어 자체 On-event를 사용하여 TS 클래스를 만드는 방법을 누가 압니까? 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 onTick()이 클래스 인스턴스에서 작동하지 않습니까? fxsaber , 2019.10.31 23:45 class BASE { private : static BASE* Objects[]; public : BASE() { BASE::Objects[:: ArrayResize (BASE::Objects, :: ArraySize (BASE::Objects) + 1 ) - 1 ] = & this ; } ~BASE() { const int Size = :: ArraySize (BASE::Objects); for ( int i = Size - 1 ; i >= 0 ; i--) if (BASE::Objects[i] == & this ) { for ( int j = i; j < Size - 1 ; j++) BASE::Objects[j] = BASE::Objects[j + 1 ]; :: ArrayResize (BASE::Objects, Size - 1 ); break ; } } virtual void OnTick () = 0 ; static void AllTick() { for ( int i = :: ArraySize (BASE::Objects) - 1 ; i >= 0 ; i--) BASE::Objects[i]. OnTick (); } }; static BASE* BASE::Objects[]; class A : BASE { virtual void OnTick () { Print ( __FUNCSIG__ ); } }; class B : BASE { virtual void OnTick () { Print ( __FUNCSIG__ ); } }; A a; B b; void OnTick () { BASE::AllTick(); } BASE에서 상속하면 클래스의 OnTick 메서드가 자동으로 호출됩니다. [삭제] 2019.11.06 01:49 #1467 X 매크로 를 사용하는 예 예를 들어: vector_fund<upindex_t> seg2; vector_ref<vector_fund<upindex_t>> seg2_sub; vector_fund<upindex_t> seg3; vector_ref<vector_fund<upindex_t>> seg3_sub; vector_fund<upindex_t> seg4; vector_ref<vector_fund<upindex_t>> seg4_sub; for ( uint i = 0 ; i < 5114 ; ++ i) { restore_image(seg2, "seg2" ); restore_subimages(seg2_sub, "seg2" ); restore_image(seg3, "seg3" ); restore_subimages(seg3_sub, "seg3" ); restore_image(seg4, "seg4" ); restore_subimages(seg4_sub, "seg4" ); if ( true ) {} // тест №1, использует seg2 и seg2_sub if ( true ) {} // тест №2, использует seg3 и seg3_sub if ( true ) {} // тест №3, использует seg4 и seg4_sub } 1. 일정한 할당을 방지하기 위해 사이클 뒤에 벡터를 정의하는 것이 바람직할 것입니다. 2. 각 테스트는 끌 수 있습니다(사실 많은 테스트가 있습니다). 3. restore_image() 및 restore_subimages(), 무겁고 시간 소모적인 함수(그래프에서 그래프 객체 읽기). 4. 예를 들어 seg2를 사용하는 테스트가 없는 경우 벡터가 정의되지만 주석 처리로 인해 비어 있는 상황을 방지하기 위해 정의와 해당 restore...()를 한 작업에서 모두 제거하려고 합니다. 복원...( ), 잘못된 결과를 제공합니다. 무엇을 할까요? #define DEFSEG_LIST \ DEFSEG_HELPER(seg2) \ DEFSEG_HELPER(seg3) \ DEFSEG_HELPER(seg4) #define DEFSEG_HELPER(SEG) vector_fund<upindex_t> SEG; vector_ref<vector_fund<upindex_t>> SEG ##_sub; DEFSEG_LIST; #undef DEFSEG_HELPER for ( uint i = 0 ; i < 5114 ; ++ i) { #define DEFSEG_HELPER(SEG) restore_image(SEG, #SEG); restore_subimages(SEG ##_sub, #SEG); DEFSEG_LIST; #undef DEFSEG_HELPER ... } DEFSEG_LIST에서 불필요한 segx를 주석 처리합니다. 이것은 첫 번째 코드와 동일하게 생성됩니다. 일반적으로 컴파일러가 프로세서 배기(gcc -E의 유사)를 표시할 수 없는 것은 유감입니다. fxsaber 2019.11.06 15:57 #1468 때로는 유전자 최적화를 통해 처음 몇 천 번의 패스만으로도 결과를 어느 정도 이해하기에 충분합니다. 많은 최적화를 자동으로 실행할 때 모든 것이 더 빨리 해결되기를 원합니다. 따라서 최적화 인터럽트 메커니즘이 필요합니다. #include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132 // Выключает Оптимизацию ( и одиночный проход) bool OptimizationStop( void ) { return (!MTTESTER::IsReady() && MTTESTER::ClickStart( false )); } 애플리케이션. // Демонстрация прерывания Оптимизации. sinput int inAmountPasses = 20 ; // Через сколько проходов закончить input int Range = 0 ; // 0..10000 double OnTester () { int Data[]; return ( FrameAdd ( NULL , 0 , 0 , Data)); // Сгенерировали TesterPass } void OnTesterPass () { static int Amount = 0 ; ulong Pass; string Name; long ID; double Value; int Data[]; while ( FrameNext (Pass, Name, ID, Value, Data)) if (++Amount > inAmountPasses) { OptimizationStop(); // Как достигли нужного количества проходов, выключили оптимизатор. break ; } } fxsaber 2019.11.06 19:38 #1469 Null 문자가 있는 차트를 여는 방법에 대한 지침입니다. Market Watch에서 모든 차트를 삭제합니다. 수학적 모드에서 프레임 Expert Advisor(예: this one)의 최적화를 실행합니다. 최적화를 중지하고 Null 기호 차트에서 Expert Advisor 프레임을 제거합니다. 이러한 차트는 자원을 절약하는 데 유용할 수 있습니다. fxsaber 2019.11.13 10:00 #1470 그러한 기능에 직면했습니다. class A { static int i; } a; // unresolved static variable 'A::i' static int A::i = 0 ; A b; // Надо прописывать после static 정적 필드가 있는 클래스를 정의하는 동안 해당 개체가 즉시 생성되면 컴파일 오류가 발생 합니다. 1...140141142143144145146147148149150151152153154...247 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
IsInf() 및 IsNaN()이 작동 중입니다.
IsEqual() 및 IsZerro() 의심스러운, 일부 출처에서 "트릭을 위한 트릭"으로 Google 검색
IsNan()은 작동하지만 IsInf()는 작동하지 않습니다.
비정규화 된 숫자는 언제부터 무한대가 되었습니까?
음, 엡실론과의 이러한 모든 비교는 피연산자에 비례하여 증가해야 합니다. 그리고 일반적으로 여기에는 보편적인 방법이 없으므로 Point를 엡실론으로 사용합니다(피연산자의 반올림 포함). 차이점을 DBL_EPSILON 과 비교할 필요가 없습니다(필요하지 않음).
음, 엡실론과의 이러한 모든 비교는 피연산자에 비례하여 증가해야 합니다. 그리고 일반적으로 여기에는 보편적인 방법이 없으므로 Point를 엡실론으로 사용합니다(피연산자의 반올림 포함). 차이점을 DBL_EPSILON 과 비교할 필요가 없습니다(필요하지 않음).
어제 TV에서 읽은 기사를 찾았습니다. https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
예, 비교 정확도를 설정할 위치를 사용하려면 다른 예가 필요합니다.
IsNan()은 작동하지만 IsInf()는 작동하지 않습니다.
비정규화 된 숫자는 언제부터 무한대가 되었습니까?
MQL의 정규화는 최대 8자리인 것 같습니다. IsInf()에 NormalizeDouble()을 추가해도 결과는 여전히 좋지 않습니다.
MQL의 정규화는 최대 8자리인 것 같습니다. IsInf()에 NormalizeDouble()을 추가해도 결과는 여전히 좋지 않습니다.
µl의 정규화는 전혀 아닙니다. 왜 그 함수를 그렇게 불렀는지 모르겠습니다. https://en.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0 %B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0
(런칭 이후) 터미널에서 성공적으로 전송된 동기 거래 주문 (OrderSend)의 수와 생성된 비동기 거래 주문의 수를 보여줍니다.
나는 테스터(마지막에)에서 주문을 수정한 횟수를 이해하는 데 사용합니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
onTick()이 클래스 인스턴스에서 작동하지 않습니까?
fxsaber , 2019.10.31 23:45
BASE에서 상속하면 클래스의 OnTick 메서드가 자동으로 호출됩니다.
X 매크로 를 사용하는 예
예를 들어:
1. 일정한 할당을 방지하기 위해 사이클 뒤에 벡터를 정의하는 것이 바람직할 것입니다.
2. 각 테스트는 끌 수 있습니다(사실 많은 테스트가 있습니다).
3. restore_image() 및 restore_subimages(), 무겁고 시간 소모적인 함수(그래프에서 그래프 객체 읽기).
4. 예를 들어 seg2를 사용하는 테스트가 없는 경우 벡터가 정의되지만 주석 처리로 인해 비어 있는 상황을 방지하기 위해 정의와 해당 restore...()를 한 작업에서 모두 제거하려고 합니다. 복원...( ), 잘못된 결과를 제공합니다.
무엇을 할까요?
DEFSEG_LIST에서 불필요한 segx를 주석 처리합니다. 이것은 첫 번째 코드와 동일하게 생성됩니다. 일반적으로 컴파일러가 프로세서 배기(gcc -E의 유사)를 표시할 수 없는 것은 유감입니다.
때로는 유전자 최적화를 통해 처음 몇 천 번의 패스만으로도 결과를 어느 정도 이해하기에 충분합니다.
많은 최적화를 자동으로 실행할 때 모든 것이 더 빨리 해결되기를 원합니다. 따라서 최적화 인터럽트 메커니즘이 필요합니다.
애플리케이션.
Null 문자가 있는 차트를 여는 방법에 대한 지침입니다.
정적 필드가 있는 클래스를 정의하는 동안 해당 개체가 즉시 생성되면 컴파일 오류가 발생 합니다.