MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 - 페이지 34 1...272829303132333435363738394041...84 새 코멘트 fxsaber 2019.12.11 05:42 #331 Artyom Trishkin : 나도 그를 쳐다보지 않는다. 그러나 그것은 유용한 장소를 차지합니다 ... 그러나 그것은 편리 했다. Slava 2019.12.11 06:08 #332 Artyom Trishkin : 나도 그를 쳐다보지 않는다. 그러나 그것은 유용한 장소를 차지합니다 ... 처음에는 동기화에 대한 테스터의 메시지 , Expert Advisor 등의 현지 시간 로딩 , 그리고 나서 Expert Advisor 및 테스트 거래 서버의 테스트 시간 메시지, 때때로 테스터의 메시지와 현지 시간 산재에 대해 충격을 받을 것입니다. ? fxsaber 2019.12.11 06:14 #333 Tester를 가속화할 수 있는 곳 중 하나를 찾았습니다. 테스터가 두 가격(예: BuyLimit 및 Tick.ask)을 비교할 때마다 값비싼 정규화를 통해 이를 수행하는 것으로 나타났습니다. 이러지 마! fxsaber 2019.12.11 06:15 #334 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 fxsaber , 2019.12.11 04:50 두 번째 열에도 밀리초가 누락되었습니다. Artyom Trishkin 2019.12.11 06:16 #335 Slava : 처음에는 동기화에 대한 테스터의 메시지 , Expert Advisor 등의 현지 시간 로딩 , 그리고 나서 Expert Advisor 및 테스트 거래 서버의 테스트 시간 메시지, 때때로 테스터의 메시지와 현지 시간 산재에 대해 충격을 받을 것입니다. ? 감사합니다. 어떻게 하면 가장 잘 정리할 수 있을지 생각하면서 자리에 앉았습니다. 먼저 시작 시간, 동기화 등에 대한 메시지가 있어야 하고 나머지는 중요한 메시지가 포함된 전문가와 테스터가 있어야 한다고 제안하고 싶었습니다. 말씀하신 내용과 동일하다고 생각합니다 :) fxsaber 2019.12.11 07:47 #336 fxsaber : 테스터를 가속화할 수 있는 곳 중 하나를 찾았습니다. 테스터가 두 가격(예: BuyLimit 및 Tick.ask)을 비교할 때마다 값비싼 정규화를 통해 이를 수행하는 것으로 나타났습니다. 이러지 마! 터미널 역사상 가격이 정상화되지 않았습니다! bool IsNorm( const double Price ) { return ( NormalizeDouble (Price, _Digits ) == Price); } #define TOSTRING(A) #A + " = " + DoubleToString (A, 16 ) + " " #define PRINT(A) Print (TOSTRING(A) + TOSTRING( NormalizeDouble (A, _Digits ))) #define ISNORM(A) if (!IsNorm(A)) { PRINT(A); Count++; }; void OnStart () { MqlTick Ticks[]; const int Size = CopyTicksRange ( _Symbol , Ticks, COPY_TICKS_ALL , 1000 * ( long ) D'2019.12.01' ); Print (Size); for ( int i = 0 , Count = 0 ; (i < Size) && (Count < 10 ); i++) { ISNORM(Ticks[i].bid) ISNORM(Ticks[i].ask) ISNORM(Ticks[i].last) } } 결과(EURUSD, MQ-베타) Ticks[i].bid = 1.1024100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1024099999999999 Ticks[i].bid = 1.1024100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1024099999999999 Ticks[i].bid = 1.1024100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1024099999999999 Ticks[i].bid = 1.1024100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1024099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 Ticks[i].bid = 1.1023100000000001 NormalizeDouble (Ticks[i].bid, _Digits ) = 1.1023099999999999 어떻게 그게 가능합니까? 무역 서버 측에서 오류가 발생했습니까? 결과적으로 Tester는 실제 기호에서도 비뚤어진 가격으로 EA를 구동합니다. ZY 개발자가 다른 정규화 알고리즘을 적용하는 데 문제가 있는 것 같습니다. Roman 2019.12.11 08:25 #337 Andrey Khatimlianskii : 입력 매개변수에 빈 값이 있는 버그를 재현했습니다. 1. 고문을 모으기: 2. 무엇이든 두 매개변수를 모두 최적화합니다. 3. enam의 선택을 취소하고 x만 최적화: 4. 단일 실행을 시작한 결과에서 첫 번째 최적화 캐시를 로드한 다음 두 번째 최적화 캐시를 로드합니다. -1 대신 INT_MAX를 얻습니다. -1로 시작하는 모든 열거형과 관련이 있습니다. t를 체크 해제하면 입력이 완전히 비활성화된다는 의혹이 있습니다. 변수 t는 비어 있지 않은 초기화되지 않은 INT_MAX 값을 포함합니다. Slava 2019.12.11 09:18 #338 fxsaber : 터미널 역사상 가격이 정상화되지 않았습니다! 결과(EURUSD, MQ-베타) 어떻게 그게 가능합니까? 무역 서버 측 오류? 이에 테스터는 실제 심볼에도 비뚤어진 가격으로 Expert Advisors를 운영하고 있다. ZY 개발자가 다른 정규화 알고리즘을 사용하는 데 문제가 있는 것 같습니다. 이것은 가격 곡선이 아닙니다! 상당히 정상화되었습니다. 이것은 인쇄물에서 매우 분명합니다. 거래 서버에서 거래할 때 항상 입실 가격과 현재 가격을 비교하기 위해 엡실론을 사용합니다. <some_real_number>*0.5의 결과가 <the_same_real_number>/2.0의 결과와 다를 수 있다는 사실을 알고 계셨습니까? 일부 컴파일러는 코드를 최적화할 때 한 작업을 다른 작업으로 대체할 수 있다는 사실을 알고 계십니까? 어떤 경우에는 교체하고 다른 경우에는 - 아니요, 동일한 프로젝트 내에서. 전쟁 선포가 없습니다. Andrey Khatimlianskii 2019.12.11 09:53 #339 Roman : t를 체크 해제하면 입력이 완전히 비활성화된다는 의혹이 있습니다. 변수 t는 비어 있지 않은 초기화되지 않은 INT_MAX 값을 포함합니다. 이유가 무엇이든 상관없습니다. 재현하고 수정하는 것이 중요합니다. 버그가 오래되었습니다. fxsaber 2019.12.11 11:03 #340 Slava : 이것은 가격 곡선이 아닙니다! 상당히 정상화되었습니다. 이것은 인쇄물에서 매우 분명합니다. 이 조건을 통과해야만 가격이 정상화됩니다. 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 fxsaber , 2019.12.11 07:47 bool IsNorm( const double Price ) { return ( NormalizeDouble (Price, _Digits ) == Price); } 거래 서버에서 거래할 때 항상 입실 가격과 현재 가격을 비교하기 위해 엡실론을 사용합니다. 무역 서버가 그렇게 하는 것이 맞습니다. <some_real_number>*0.5의 결과가 <the_same_real_number>/2.0의 결과와 다를 수 있다는 사실을 알고 계셨습니까? 일부 컴파일러는 코드를 최적화할 때 한 작업을 다른 작업으로 대체할 수 있다는 사실을 알고 계십니까? 어떤 경우에는 교체하고 다른 경우에는 - 아니요, 동일한 프로젝트 내에서. 선전포고가 없습니다. 두 질문에 대한 대답은 긍정적입니다. 다시 한번 말씀드리지만, 터미널의 원래 가격은 정상화되지 않았습니다. 여기에서 이러한 상황이 쉽게 발생합니다. 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MT4의 비정규화된 가격 fxsaber , 2019.02.20 23:03 그러나 상황은 훨씬 더 나쁘고 동시에 MQ-Demo에서 // 15326434 // wmefo5sa // MetaQuotes-Demo void OnStart () { const double Price1 = HistoryOrderSelect ( 356138100 ) ? HistoryOrderGetDouble ( HistoryOrderGetTicket ( 0 ), ORDER_PRICE_CURRENT ) : 0 ; const double Price2 = PositionSelectByTicket ( 356138100 ) ? PositionGetDouble ( POSITION_PRICE_OPEN ) : 0 ; Print (Price1 - Price2); // -2.220446049250313e-16 } 현재 위치 의 시작 가격이 주문/거래 가격과 동일하지 않습니다. 1...272829303132333435363738394041...84 새 코멘트
나도 그를 쳐다보지 않는다. 그러나 그것은 유용한 장소를 차지합니다 ...
그러나 그것은 편리 했다.
나도 그를 쳐다보지 않는다. 그러나 그것은 유용한 장소를 차지합니다 ...
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안
fxsaber , 2019.12.11 04:50
두 번째 열에도 밀리초가 누락되었습니다.
처음에는 동기화에 대한 테스터의 메시지 , Expert Advisor 등의 현지 시간 로딩 , 그리고 나서 Expert Advisor 및 테스트 거래 서버의 테스트 시간 메시지, 때때로 테스터의 메시지와 현지 시간 산재에 대해 충격을 받을 것입니다. ?
감사합니다. 어떻게 하면 가장 잘 정리할 수 있을지 생각하면서 자리에 앉았습니다. 먼저 시작 시간, 동기화 등에 대한 메시지가 있어야 하고 나머지는 중요한 메시지가 포함된 전문가와 테스터가 있어야 한다고 제안하고 싶었습니다.
말씀하신 내용과 동일하다고 생각합니다 :)
테스터를 가속화할 수 있는 곳 중 하나를 찾았습니다. 테스터가 두 가격(예: BuyLimit 및 Tick.ask)을 비교할 때마다 값비싼 정규화를 통해 이를 수행하는 것으로 나타났습니다. 이러지 마!
터미널 역사상 가격이 정상화되지 않았습니다!
결과(EURUSD, MQ-베타)
어떻게 그게 가능합니까? 무역 서버 측에서 오류가 발생했습니까?
결과적으로 Tester는 실제 기호에서도 비뚤어진 가격으로 EA를 구동합니다.
ZY 개발자가 다른 정규화 알고리즘을 적용하는 데 문제가 있는 것 같습니다.
입력 매개변수에 빈 값이 있는 버그를 재현했습니다.
1. 고문을 모으기:
2. 무엇이든 두 매개변수를 모두 최적화합니다.
3. enam의 선택을 취소하고 x만 최적화:
4. 단일 실행을 시작한 결과에서 첫 번째 최적화 캐시를 로드한 다음 두 번째 최적화 캐시를 로드합니다. -1 대신 INT_MAX를 얻습니다.
-1로 시작하는 모든 열거형과 관련이 있습니다.
t를 체크 해제하면 입력이 완전히 비활성화된다는 의혹이 있습니다.
변수 t는 비어 있지 않은 초기화되지 않은 INT_MAX 값을 포함합니다.
터미널 역사상 가격이 정상화되지 않았습니다!
결과(EURUSD, MQ-베타)
어떻게 그게 가능합니까? 무역 서버 측 오류?
이에 테스터는 실제 심볼에도 비뚤어진 가격으로 Expert Advisors를 운영하고 있다.
ZY 개발자가 다른 정규화 알고리즘을 사용하는 데 문제가 있는 것 같습니다.
이것은 가격 곡선이 아닙니다! 상당히 정상화되었습니다. 이것은 인쇄물에서 매우 분명합니다.
거래 서버에서 거래할 때 항상 입실 가격과 현재 가격을 비교하기 위해 엡실론을 사용합니다.
<some_real_number>*0.5의 결과가 <the_same_real_number>/2.0의 결과와 다를 수 있다는 사실을 알고 계셨습니까?
일부 컴파일러는 코드를 최적화할 때 한 작업을 다른 작업으로 대체할 수 있다는 사실을 알고 계십니까? 어떤 경우에는 교체하고 다른 경우에는 - 아니요, 동일한 프로젝트 내에서. 전쟁 선포가 없습니다.
t를 체크 해제하면 입력이 완전히 비활성화된다는 의혹이 있습니다.
변수 t는 비어 있지 않은 초기화되지 않은 INT_MAX 값을 포함합니다.
이유가 무엇이든 상관없습니다.
재현하고 수정하는 것이 중요합니다. 버그가 오래되었습니다.
이것은 가격 곡선이 아닙니다! 상당히 정상화되었습니다. 이것은 인쇄물에서 매우 분명합니다.
이 조건을 통과해야만 가격이 정상화됩니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안
fxsaber , 2019.12.11 07:47
거래 서버에서 거래할 때 항상 입실 가격과 현재 가격을 비교하기 위해 엡실론을 사용합니다.
무역 서버가 그렇게 하는 것이 맞습니다.
<some_real_number>*0.5의 결과가 <the_same_real_number>/2.0의 결과와 다를 수 있다는 사실을 알고 계셨습니까?
일부 컴파일러는 코드를 최적화할 때 한 작업을 다른 작업으로 대체할 수 있다는 사실을 알고 계십니까? 어떤 경우에는 교체하고 다른 경우에는 - 아니요, 동일한 프로젝트 내에서. 선전포고가 없습니다.
두 질문에 대한 대답은 긍정적입니다.
다시 한번 말씀드리지만, 터미널의 원래 가격은 정상화되지 않았습니다. 여기에서 이러한 상황이 쉽게 발생합니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MT4의 비정규화된 가격
fxsaber , 2019.02.20 23:03
그러나 상황은 훨씬 더 나쁘고 동시에 MQ-Demo에서현재 위치 의 시작 가격이 주문/거래 가격과 동일하지 않습니다.