테스트가 잘못되었습니다. 마지막에 한 번만 100000.0으로 나누는 이유는 무엇입니까? 각 반복에서 실행한 다음 요약해야 합니다. 그러면 공정한 비교가 될 것입니다. 그래서 정규화가 없고 테스트 알고리즘을 최적화했습니다. 당연히 더 빠르고 정확할 것입니다(누적 오차가 줄어들기 때문에)
그래, 너가 맞아. 정확도는 각 반복에서 나누면 NormalizeDouble 과 동일합니다. 그러나 속도는 NormalizeDouble보다 여전히 높습니다.
물론 일반적으로 정수로 반올림한 후 정수가 아닌 숫자의 반환은 좋지 않습니다. 이전에는 인쇄물에서 소수점 뒤에 0이 있고 끝에 1이 있거나 소수점 뒤에 9가 있는 반올림 후에 거의 정수를 만났습니다. 버그라고 생각했습니다. 이해할 수 없는 개발자의 입장이 드러났습니다. 좋은 점은 정수로 반올림할 때 이진 형식의 소수점 뒤 나머지를 제거해야 하지만 분명히 가수를 재설정하는 것은 어렵습니다/불가능합니다. 정규화는 훨씬 더 어렵습니다. 쉼표를 5자리로 이동하여 이진 형식의 정수로 변환하더라도 이중으로 역변환하면 정수 유형 과 차이가 발생합니다.
물론 일반적으로 정수로 반올림한 후 정수가 아닌 숫자의 반환은 좋지 않습니다. 이전에는 인쇄물에서 소수점 뒤에 0이 있고 끝에 1이 있거나 소수점 뒤에 9가 있는 반올림 후에 거의 정수를 만났습니다. 버그라고 생각했습니다. 이해할 수 없는 개발자의 입장이 드러났습니다. 좋은 점은 정수로 반올림할 때 이진 형식의 소수점 뒤 나머지를 제거해야 하지만 분명히 가수를 재설정하는 것은 어렵습니다/불가능합니다. 정규화는 훨씬 더 어렵습니다. 쉼표를 5자리로 이동하여 이진 형식의 정수로 변환하더라도 이중으로 역변환하면 정수 유형 과 차이가 발생합니다.
슬프게도, 겉보기에 단순한 비교 작업으로 목발을 짚어야 합니다.
반올림 후 표현식에서 얻은 결과와 함께 일부 다른 연산이 있을 수 있으며 정수 연산일 필요는 없습니다. 그런 다음 int에서 double로 다시 변환하여 파란색 오버헤드를 생성해야 합니다. 왜 필요한가요?
아무도 필요한 유형을 반환하는 자신의 RoundInt 또는 RoundLong 함수를 만드는 데 신경 쓰지 않습니다.
나는 속도를 위해 미친 버전을 확인하기로 결정했다.
그리고 결과는 놀랐습니다.
사전 정규화 된 double의 비교는 double이 epsilon을 통해 또는 int로 변환을 통해 비교되는 경우보다 평균적으로 훨씬 느립니다.
결과:
나는 많은 것이 프로세서의 참신함과 아키텍처에 달려 있고 누군가에게는 결과가 다를 수 있다는 점을 배제하지 않습니다.
두 개의 이중 비교 연산의 성능은 실제로 변수 자체의 값에 달려 있습니까? 나는 의심한다.
예처럼 보입니다. 아주 이상한.
위의 예에서 줄을 바꾸면
에
그러면 두 개의 복식에 대한 간단한 비교가 다른 옵션보다 빠르게 작동하기 시작합니다. 있는 것은 두 배로, 있는 것은 두 배로. 차이점은 무엇입니까? 그리고 전체 성능은 2배 더 높습니다. 몇 가지 기적.
테스트가 잘못되었습니다. 마지막에 한 번만 100000.0으로 나누는 이유는 무엇입니까? 각 반복에서 실행한 다음 요약해야 합니다. 그러면 공정한 비교가 될 것입니다. 그래서 정규화가 없고 테스트 알고리즘을 최적화했습니다. 당연히 더 빠르고 정확할 것입니다(누적 오차가 줄어들기 때문에)
그래, 너가 맞아. 정확도는 각 반복에서 나누면 NormalizeDouble 과 동일합니다. 그러나 속도는 NormalizeDouble보다 여전히 높습니다.
고맙습니다.
물론 일반적으로 정수로 반올림한 후 정수가 아닌 숫자의 반환은 좋지 않습니다. 이전에는 인쇄물에서 소수점 뒤에 0이 있고 끝에 1이 있거나 소수점 뒤에 9가 있는 반올림 후에 거의 정수를 만났습니다. 버그라고 생각했습니다. 이해할 수 없는 개발자의 입장이 드러났습니다. 좋은 점은 정수로 반올림할 때 이진 형식의 소수점 뒤 나머지를 제거해야 하지만 분명히 가수를 재설정하는 것은 어렵습니다/불가능합니다. 정규화는 훨씬 더 어렵습니다. 쉼표를 5자리로 이동하여 이진 형식의 정수로 변환하더라도 이중으로 역변환하면 정수 유형 과 차이가 발생합니다.
슬프게도, 겉보기에 단순한 비교 작업으로 목발을 짚어야 합니다.
파이썬이 아닙니다.
물론 일반적으로 정수로 반올림한 후 정수가 아닌 숫자의 반환은 좋지 않습니다. 이전에는 인쇄물에서 소수점 뒤에 0이 있고 끝에 1이 있거나 소수점 뒤에 9가 있는 반올림 후에 거의 정수를 만났습니다. 버그라고 생각했습니다. 이해할 수 없는 개발자의 입장이 드러났습니다. 좋은 점은 정수로 반올림할 때 이진 형식의 소수점 뒤 나머지를 제거해야 하지만 분명히 가수를 재설정하는 것은 어렵습니다/불가능합니다. 정규화는 훨씬 더 어렵습니다. 쉼표를 5자리로 이동하여 이진 형식의 정수로 변환하더라도 이중으로 역변환하면 정수 유형 과 차이가 발생합니다.
슬프게도, 겉보기에 단순한 비교 작업으로 목발을 짚어야 합니다.
반올림 후 표현식에서 얻은 결과와 함께 일부 다른 연산이 있을 수 있으며 정수 연산일 필요는 없습니다. 그런 다음 int에서 double로 다시 변환하여 파란색 오버헤드를 생성해야 합니다. 왜 필요한가요?
아무도 필요한 유형을 반환하는 자신의 RoundInt 또는 RoundLong 함수를 만드는 데 신경 쓰지 않습니다.
시장의 테스터에 문제가 있습니다.
다중 통화 Expert Advisor 를 확인 중인 경우 테스터가 멈춥니다.
이유: 금융 상품을 분석하는 동안 Expert Advisor는 기록이 없거나 상품의 형식이 올바르게 지정되지 않은 상품을 우연히 발견했습니다.
표준 터미널에서 이로 인해 29초 동안 중단이 발생합니다. 이는 확실하고 확인되었습니다.
시장의 테스터는 너무 긴 테스트를 작성합니다.
나는 고문이 이러한 깨진 금융 상품 중 몇 가지를 우연히 발견했다고 가정합니다.
이 문제는 몇 번 그리고 1 년 전에 작성되었지만 일이 여전히 있습니다 ....
이 문제는 몇 번 그리고 1 년 전에 작성되었지만 일이 여전히 있습니다 ....
나는 재생산하지 않습니다. 소스를 첨부합니다.
기능이 작동하지 않는 이유에 대해 말씀해 주시겠습니까? 0 그래프로 전환하지 않습니다.
템플릿의 두 번째 및 추가 적용은 창을 복제합니다.
이러한 기능은 업데이트 전에 작동했습니다.
나는 재생산하지 않습니다. 소스를 첨부합니다.
Metaquots 데모 서버에서 테스트
2020.08.11 20:20:55.657 테스트(EURUSD,M15) MXNJPY 1998
2020.08.11 20:20:55.659 테스트(EURUSD,M15) NZDMXN 1979
2020.08.11 20:20:55.661 테스트(EURUSD,M15) USDCOP 1973
2020.08.11 20:20:55.663 테스트(EURUSD,M15) USDARS 2093
2020.08.11 20:20:55.665 테스트(EURUSD,M15) USDCLP 1929
2020.08.11 20:21:25.259 테스트(EURUSD,M15) 오류 AUS200 29593673
2020.08.11 20:21:54.837 테스트(EURUSD,M15) 오류 FCHI40 29578404
2020.08.11 20:22:24.336 테스트(EURUSD,M15) 오류 GDAXIm 29498485
2020.08.11 20:22:53.949 테스트(EURUSD,M15) 오류 HSI50 29612968
2020.08.11 20:23:23.458 테스트(EURUSD,M15) 오류 Jap225 29509059
2020.08.11 20:23:52.919 테스트(EURUSD,M15) 오류 ND100m 29461316
2020.08.11 20:24:22.425 테스트(EURUSD,M15) 오류 SP500m 29505571
2020.08.11 20:24:51.860 테스트(EURUSD,M15) 오류 SPN35 29435460
2020.08.11 20:25:21.273 테스트(EURUSD,M15) 오류 STOX50 29412578
2020.08.11 20:25:50.663 테스트(EURUSD,M15) 오류 UK100 29389644
2020.08.11 20:26:20.205 테스트(EURUSD,M15) 브렌트 29542597
2020.08.11 20:26:49.667 테스트(EURUSD,M15) 오류 원유 29462066
2020.08.11 20:27:19.194 테스트(EURUSD,M15) 오류 Nat Gas 29526780
Metaquots 데모 서버에서 테스트
죄송합니다. 이제 단단히 고정되어 있습니다 ....
이 스크립트로 인해 터미널이 내 컴퓨터에서 중단되지 않았습니다.