mt5 전략 테스터 틱 - 페이지 11

 
RaptorUK :

통제된 조건에서 테스트(전략 테스터)를 반복할 수 있도록 내가 사용하는 이력 데이터를 제어할 수 있기를 원합니다.

통제된 조건은 무엇입니까?

고맙습니다

 
WhooDoo22 :

통제된 조건은 무엇입니까?

고맙습니다

내 브로커가 선택하는 조건이 아니라 내가 선택한 조건입니다. 테스트를 제안하는 방법은 무엇입니까? 각 테스트에 대한 임의의 조건 세트 ? 하지만 주제에서 벗어나지 말자.
 
RaptorUK :
내 브로커가 선택하는 조건이 아니라 내가 선택하는 조건입니다. 테스트를 제안하는 다른 방법은 무엇입니까? 각 테스트에 대한 임의의 조건 세트 ? 하지만 주제에서 벗어나지 말자.

이해했다.

고맙습니다

 
angevoyageur :

아니요. 제 링크 및/또는 RaptorUK 중 하나를 읽으면 더 명확해집니다. 그렇지 않은 경우 다시 읽으십시오 :-D

1.000000000006551e-005는 단순히 0.00001000000000006551에 대한 또 다른 표기법입니다.

안녕하세요 항해사님.

1.000000000006551e-005

0. 00001 000000000006551

번째 double 의 소수는 왼쪽으로 다섯 번 이동하지만 ;) 이 형식의 테스터에서는 반환할 수 없습니다. double은 소수 오른쪽에 16자리(유효한 자릿수)의 최대값을 반환하기 때문입니다.



중재자
1651년
항해사 2013.04.14 09:39
후두22 :

안녕하세요 MQL5 커뮤니티 여러분,

https://www.mql5.com/en/docs/common/comment

" 더블 타입의 데이터는 소수점 이하 16자리의 정확도로 출력되며 , 어떤 표기법이 더 간결해질지에 따라 전통적 형식과 과학 형식으로 출력 할 수 있습니다. float 형식의 데이터는 5자리로 출력됩니다 . 실수를 다른 정확도로 출력하거나 미리 정의된 형식으로 출력하려면 DoubleToString () 함수를 사용하십시오."

98.370 에서 USDJPY의 가격 표현 은 float 형식의 데이터입니다(소수점 이하 5자리로 출력).

USDJPY의 -0.001999999999995339의 가격 표현은 더블 타입의 기존 데이터 형식(소수점 이하 16자리까지 출력)입니다.

double 출력이 소수점 이하 16자리까지만 출력되는 경우 double -0.00199999999999533 [9] 가 소수점 이하 18자리 를 반환하는 이유는 무엇입니까?

고맙습니다

가격은 항상 두 배이며 98.370은 두 배입니다. 유효숫자 16자리입니다. 0은 중요하지 않습니다 .


0이 중요하지 않은 경우 테스터에서 1.000000000006551e-005 대신 0.00001000000000006551 값을 반환할 수 없는 이유는 무엇입니까? 나는 0.00001000000000006551 형식의 크런칭 계산을 선호합니다!

고맙습니다

 
WhooDoo22 :


0이 중요하지 않은 경우 테스터에서 1.000000000006551e-005 대신 0.00001000000000006551 값을 반환할 수 없는 이유는 무엇입니까? 나는 0.00001000000000006551 형식의 크런칭 계산을 선호합니다!

부동 소수점 숫자(double)는 항상 이 형식으로 내부적으로 유지됩니다. . . 1.000000000006551e-005, 제공된 링크에서 정보를 읽고 이해했습니까?

여기에서: 부동 소수점 숫자

"IEEE-754 float(4바이트) 또는 double(8바이트)에는 세 가지 구성 요소가 있습니다(IEEE-854에 유사한 96비트 확장 정밀도 형식도 있음). 숫자가 양수인지 음수인지 알려주는 부호 비트, 크기 순서를 나타내는 지수 및 숫자의 실제 자릿수를 지정하는 가수. 단정밀도 부동 소수점을 예로 사용하여 비트 레이아웃이 다음과 같습니다."

3개 부품

징후 가수 멱지수
+ 1.000000000006551 -005

0.00001000000000xyz를 보려면 DoubleToStr()을 사용하여 원하는 대로 출력 형식을 지정하십시오.

Articles - Understanding Floating Point Number Representation - Cprogramming.com
Articles - Understanding Floating Point Number Representation - Cprogramming.com
  • www.cprogramming.com
Floating point representations vary from machine to machine, as I've implied. Fortunately one is by far the most common these days: the IEEE-754 standard. This standard is prevalent enough that it's worthwhile to look at it in depth; chances are good you'd be able to use this information on your platform (look for ieee754.h). An IEEE-754...
 
RaptorUK :

부동 소수점 숫자(double)는 항상 이 형식으로 내부적으로 유지됩니다. . . 1.000000000006551e-005, 제공된 링크에서 정보를 읽고 이해했습니까?

여기에서: 부동 소수점 숫자

"IEEE-754 float(4바이트) 또는 double(8바이트)에는 세 가지 구성 요소가 있습니다(IEEE-854에 유사한 96비트 확장 정밀도 형식도 있음). 숫자가 양수인지 음수인지 알려주는 부호 비트, 크기의 순서를 나타내는 지수 및 숫자의 실제 자릿수를 지정하는 가수. 단정밀도 부동 소수점을 예로 사용하여 비트 레이아웃은 다음과 같습니다."

3개 부품

징후 가수 멱지수
+ 1.000000000006551 -005

0.00001000000000xyz를 보려면 DoubleToStr()을 사용하여 원하는 대로 출력 형식을 지정하십시오.

예, 귀하가 제공한 모든 링크를 읽었으며 도움이 되었습니다. 제공해 주셔서 다시 한 번 감사드립니다. 내가 좋아하는 것은 DoubleToString을 통합하고 DoubleToString의 두 번째 매개변수로 두 번째에서 마지막 자리 값(예:CADJPY 95.9 [5] 9)을 선택하는 것입니다. 나는 이 "가격을 정할 수 있다!=가격" 문제가 해결하기 너무 어렵다고 생각하지 않는다! 이에 대해 뭐라고 합니까?

고맙습니다

 
WhooDoo22 :

예, 귀하가 제공한 모든 링크를 읽었으며 도움이 되었습니다. 제공해 주셔서 다시 한 번 감사드립니다. 내가 좋아하는 것은 DoubleToString을 통합하고 DoubleToString의 두 번째 매개변수로 두 번째에서 마지막 자리 값(예:CADJPY 95.9 [5] 9)을 선택하는 것입니다. 나는 이 "가격을 정할 수 있다!=가격" 문제가 해결하기 너무 어렵다고 생각하지 않는다! 이에 대해 뭐라고 합니까?

그래서 당신은 이런 것을 의미합니까?

 double value = 95.959 ;

Print( "Value: " , DoubleToStr( value , _Digits - 1 ) );

Can price!= 가격은 다르지만 약간 연결된 문제입니다. 그것은 정말로 해결할 수 없습니다. 먼저 문제가 무엇인지 이해해야 합니다. . . 그런 다음 그 문제를 해결합니다.

 
RaptorUK :

그래서 당신은 이런 것을 의미합니까?

Can price!= 가격은 다르지만 약간 연결된 문제입니다. 그것은 정말로 해결할 수 없습니다. 먼저 문제가 무엇인지 이해해야 합니다. . . 그런 다음 그 문제를 해결합니다.

 double value = 95.959 ;

Print( "value returns " ,DoubleToString( value , 2 )); //value's expected print return is 95.95.

이 "가격 != 가격" 문제가 무엇인지에 대해 어떻게 생각하십니까?

고맙습니다

 

WhooDoo22 :

...

가격은 항상 두 배이며 98.370은 두 배입니다. 유효숫자 16자리입니다. 0은 중요하지 않습니다 .

0이 중요하지 않은 경우 테스터 에서 1.000000000006551e-005 대신 0.00001000000000006551 값을 반환할 수 없는 이유는 무엇입니까? 나는 0.00001000000000006551 형식의 크런칭 계산을 선호합니다!

고맙습니다

그것은 출력 값을 포맷팅하기 위한 선택일 뿐입니다.

모든 등가물
0.00001000000000006551
0.0001000000000006551e-001
0.001000000000006551e-002
0.01000000000006551e-003
0.1000000000006551e-004
1.000000000006551e-005

0 이 중요하지 않기 때문 입니다.

후두22 :

예, 귀하가 제공한 모든 링크를 읽었으며 도움이 되었습니다. 제공해 주셔서 다시 한 번 감사드립니다. 내가 좋아하는 것은 DoubleToString을 통합하고 DoubleToString의 두 번째 매개변수로 두 번째에서 마지막 자리 값(예:CADJPY 95.9 [5] 9)을 선택하는 것 입니다. 나는 이 "가격을 정할 수 있다!=가격" 문제가 해결하기 너무 어렵다고 생각하지 않는다! 이에 대해 뭐라고 합니까?

고맙습니다

죄송하지만 이 문장이 이해가 되지 않습니다.
 
angevoyageur :

그것은 출력 값을 포맷팅하기 위한 선택일 뿐입니다.

모든 등가물
0.00001000000000006551
0.0001000000000006551e-001
0.001000000000006551e-002
0.01000000000006551e-003
0.1000000000006551e-004
1.000000000006551e-005

0 이 중요하지 않기 때문 입니다.

죄송하지만 이 문장이 이해가 되지 않습니다.

"미안하지만 나는 이 문장을 이해하지 못한다."

 double value = 95.959 ;

Print( "value returns " ,DoubleToString( value , 2 )); //value's expected print return is 95.95.

고맙습니다