오류, 버그, 질문 - 페이지 2820 1...281328142815281628172818281928202821282228232824282528262827...3184 새 코멘트 Alexey Viktorov 2020.08.10 07:02 #28191 Kira27 : 나를 혼미하게 만드는 데 도움이)))) 설명서에는 따옴표 없이 말합니다. 그래서 당신은 거기에 자신을 넣어. fxsaber 2020.08.10 07:04 #28192 수염 난 질문입니다. 하지만 나는 이 결과가 이해가 되지 않는다. void OnStart () { Print ( NormalizeDouble ( 1.79435 , 5 ) == 1.79435 ); // false } Slava 2020.08.10 07:32 #28193 fxsaber : 수염 난 질문입니다. 하지만 나는 이 결과가 이해가 되지 않는다. "정확한 이중 비교를 사용하지 말고 엡실론을 사용하십시오"라는 말이 100번 있었습니다. 문서에 포함됩니다. 0.3이나 0.7도 그들의 표현과 비교할 수 없습니다. 수락하고 화해하십시오. 또는 가서 공부하십시오(예: MTI에서) fxsaber 2020.08.10 07:41 #28194 Slava : "정확한 이중 비교를 사용하지 말고 엡실론을 사용하십시오"라는 말이 100번 있었습니다. 문서에 포함됩니다. 물론 내가 할 수 있는 복식 비교. 0.3이나 0.7도 그들의 표현과 비교할 수 없습니다. 수락하고 화해하십시오. 또는 가서 공부하십시오(예: MTI에서) Print ( NormalizeDouble ( 0.3 , 5 ) == 0.3 ); // true Print ( NormalizeDouble ( 0.7 , 5 ) == 0.7 ); // true Print ( NormalizeDouble ( 0.12345 , 5 ) == 0.12345 ); // true 질문을 이해하지 못했습니다. Rorschach 2020.08.10 07:41 #28195 십진수는 일을 더 쉽게 만들 수 있지만 느립니다( Slava 2020.08.10 08:31 #28196 fxsaber : 물론 내가 할 수 있는 복식 비교. 질문을 이해하지 못했습니다. 여기에 더 많은 뉘앙스가 있습니다. 0.5를 곱한 실수는 2.0으로 나눈 동일한 숫자와 비교할 수 없습니다. fxsaber 2020.08.10 08:59 #28197 Slava : 여기에 더 많은 뉘앙스가 있습니다. 0.5를 곱한 실수는 2.0으로 나눈 동일한 숫자와 비교할 수 없습니다. 그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 다섯 번째 자리로 정규화되지 않았습니까? 질문의 ZY 선사시대. SL은 테스터에서 일했습니다. DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0( MT5에서 일반적으로 사용됨), DEAL_COMMENT = "sl 1.79435". SL 수행 중 슬립이 있었는지 여부를 이해해야 했습니까? 그래서 댓글에 있는 가격과 DEAL_PRICE를 간단하게 비교해봤습니다. 내 눈으로 보니 가격은 똑같지만 MQL은 그렇지 않다고 한다. 결과적으로 나는 원래 비교의 맨 아래에 도달했습니다. 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 오류, 버그, 질문 fxsaber , 2020.08.10 09:04 void OnStart () { Print ( NormalizeDouble ( 1.79435 , 5 ) == 1.79435 ); // false } mql5 언어의 특징, 미묘함 MT5와 속도 포럼 mql5.com의 연보 Alexey Viktorov 2020.08.10 09:34 #28198 fxsaber : 그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 5자리로 정규화되지 않았는지였습니다. 질문의 ZY 선사시대. SL은 테스터에서 일했습니다. DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0( MT5에서 일반적으로 사용됨), DEAL_COMMENT = "sl 1.79435". SL 수행 중 슬립이 있었는지 여부를 이해해야 했습니까? 그래서 댓글에 있는 가격과 DEAL_PRICE를 간단하게 비교해봤습니다. 눈으로 보니 가격은 똑같지만 MQL은 그렇지 않다고 합니다. 결과적으로 나는 원래 비교의 바닥에 도달했습니다. 미안하지만, 당신에게서 이것을 듣는 것은 어쩐지 이상합니다. fxsaber 2020.08.10 09:37 #28199 Alexey Viktorov : 미안하지만, 당신에게서 이것을 듣는 것은 어쩐지 이상합니다. 내 질문을 반복합니다. fxsaber : 숫자 1.79435가 소수점 이하 5자리로 정규화되지 않은 이유는 무엇입니까? void OnStart () { const double Norm = NormalizeDouble ( 1.79435 , 5 ); Print (( double )( string )Norm == Norm); // false Print (( double )( string )Norm == 1.79435 ); // true } Igor Makanu 2020.08.10 09:38 #28200 fxsaber : 그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 5자리로 정규화되지 않았는지였습니다. 정규화는 반올림이 아닙니다. @Slava 는 double의 내부 표현이 다르다고 씁니다. #define PRINT(EX) Print ( #EX, " = " ,EX) //+------------------------------------------------------------------+ void OnStart () { union ULONG_DOUBLE { double d_value; ulong ul_value; }tmp; double NORM_DOUBLE = NormalizeDouble ( 1.79435 , 5 ); double CONST_DOUBLE = 1.79435 ; PRINT(NORM_DOUBLE); tmp.d_value = NORM_DOUBLE; PRINT(LongToHex(tmp.ul_value)); tmp.d_value = CONST_DOUBLE; PRINT(CONST_DOUBLE); PRINT(LongToHex(tmp.ul_value)); } //+------------------------------------------------------------------+ string LongToHex( const ulong value) { return ( StringFormat ( "%llX" , value)); } //+------------------------------------------------------------------+ 2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) NORM_DOUBLE = 1.79435 2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD A 2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) CONST_DOUBLE = 1.79435 2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD 9 추신: @Nikolai Semko의 좋은 게시물이 어딘가에 있었는데, 그는 double로 작업을 아주 잘 설명했습니다. 아마도 링크를 찾아서 게시할 것입니다. UPD: https://www.mql5.com/ru/forum/1111/page2623#comment_14473837 1...281328142815281628172818281928202821282228232824282528262827...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
나를 혼미하게 만드는 데 도움이))))
설명서에는 따옴표 없이 말합니다. 그래서 당신은 거기에 자신을 넣어.
수염 난 질문입니다. 하지만 나는 이 결과가 이해가 되지 않는다.
"정확한 이중 비교를 사용하지 말고 엡실론을 사용하십시오"라는 말이 100번 있었습니다. 문서에 포함됩니다.
0.3이나 0.7도 그들의 표현과 비교할 수 없습니다. 수락하고 화해하십시오. 또는 가서 공부하십시오(예: MTI에서)
"정확한 이중 비교를 사용하지 말고 엡실론을 사용하십시오"라는 말이 100번 있었습니다. 문서에 포함됩니다.
물론 내가 할 수 있는 복식 비교.
0.3이나 0.7도 그들의 표현과 비교할 수 없습니다. 수락하고 화해하십시오. 또는 가서 공부하십시오(예: MTI에서)
질문을 이해하지 못했습니다.
물론 내가 할 수 있는 복식 비교.
질문을 이해하지 못했습니다.
여기에 더 많은 뉘앙스가 있습니다.
0.5를 곱한 실수는 2.0으로 나눈 동일한 숫자와 비교할 수 없습니다.
여기에 더 많은 뉘앙스가 있습니다.
0.5를 곱한 실수는 2.0으로 나눈 동일한 숫자와 비교할 수 없습니다.
그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 다섯 번째 자리로 정규화되지 않았습니까?
질문의 ZY 선사시대.
SL은 테스터에서 일했습니다. DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0( MT5에서 일반적으로 사용됨), DEAL_COMMENT = "sl 1.79435".
SL 수행 중 슬립이 있었는지 여부를 이해해야 했습니까? 그래서 댓글에 있는 가격과 DEAL_PRICE를 간단하게 비교해봤습니다. 내 눈으로 보니 가격은 똑같지만 MQL은 그렇지 않다고 한다. 결과적으로 나는 원래 비교의 맨 아래에 도달했습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
fxsaber , 2020.08.10 09:04
그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 5자리로 정규화되지 않았는지였습니다.
질문의 ZY 선사시대.
SL은 테스터에서 일했습니다. DEAL_PRICE = 1.79435, ORDER_PRICE_OPEN = 0( MT5에서 일반적으로 사용됨), DEAL_COMMENT = "sl 1.79435".
SL 수행 중 슬립이 있었는지 여부를 이해해야 했습니까? 그래서 댓글에 있는 가격과 DEAL_PRICE를 간단하게 비교해봤습니다. 눈으로 보니 가격은 똑같지만 MQL은 그렇지 않다고 합니다. 결과적으로 나는 원래 비교의 바닥에 도달했습니다.
미안하지만, 당신에게서 이것을 듣는 것은 어쩐지 이상합니다.
미안하지만, 당신에게서 이것을 듣는 것은 어쩐지 이상합니다.
내 질문을 반복합니다.
숫자 1.79435가 소수점 이하 5자리로 정규화되지 않은 이유는 무엇입니까?
그런거야. 그러나 문제는 왜 숫자 1.79435가 소수점 이하 5자리로 정규화되지 않았는지였습니다.
정규화는 반올림이 아닙니다.
@Slava 는 double의 내부 표현이 다르다고 씁니다.
2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) NORM_DOUBLE = 1.79435
2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD A
2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) CONST_DOUBLE = 1.79435
2020.08.10 13:33:37.737 tst_normalize(EURUSD,H1) LongToHex(tmp.ul_value) = 3FFCB5A858793DD 9
추신: @Nikolai Semko의 좋은 게시물이 어딘가에 있었는데, 그는 double로 작업을 아주 잘 설명했습니다. 아마도 링크를 찾아서 게시할 것입니다.
UPD: https://www.mql5.com/ru/forum/1111/page2623#comment_14473837