오류, 버그, 질문 - 페이지 2360

 
Aliaksandr Hryshyn :

개발자를 위한 오류입니다.

스크립트가 컴파일되지 않고 이유를 확인))). 첨부파일을 활용하시기 바랍니다.


같은 파일:


모든 것이 컴파일되고 오류 행을 제거하십시오.

 
Vladimir Pastushak :

모든 것이 컴파일되고 오류 행을 제거하십시오.

편집기의 줄 길이 제한

 
Fast528 :

편집기의 줄 길이 제한

문자열이 4095자를 초과하면 표시되지 않습니다.

 
fxsaber :

여기에서 무슨 일이 일어나고 있는지 바보에게 설명하십시오.

홀수 로만 연산할 수 있고 산술 연산 의 결과가 짝수 가 되면 상단에 가장 가까운 홀수 와 같다고 가정하면 다음과 같습니다.

( 43 -   5 ) - 7   = ( 38 ) 39 - 7   = ( 32 ) 33
 43 - ( 5   + 7 ) = 43 - ( 12 ) 13 = ( 30 ) 31 

33 != 31

 
fxsaber :
나는 불일치를 찾는 데 몇 시간을 보냈다. 이것을 찾았습니다


나는 double의 기능을 알고 있지만 덧셈 순서를 변경하면( 상대적으로 매우 다른 숫자를 제외하고) 결과가 달라집니다! 여기에서 무슨 일이 일어나고 있는지 바보에게 설명하십시오.

소스에서는 맨 아래 두 줄만 보면 됩니다.

자신이 말하고 싶은 것처럼 지정된 정확도의 한계에서 두 배를 같은 자릿수로 반올림하는 정확도에 대해 규정된 알고리즘은 "곡선"입니다. 이유는 분명합니다. 이중 표현에서 서로 다른 방식(역전 요인, 여는 괄호 등)으로 얻은 동일한 값이 다른 측면에서 원하는 값에 최대한 가까운 다른 숫자로 판명될 수 있다는 점에서. 다음 숫자로 반올림 한 다음 마지막으로 진행하는 방법을 스스로 결정하십시오 ...

 
fxsaber :

size+point를 수행하면 후속 반올림/드롭으로 가수가 오버플로됩니다(fpu에 따라 다름).

   float avg = 0.7 ;
   float size = 0.3 ;
   float point = 0.4 ;

   float r1 = avg - size - point;
   float r2 = avg - (size + point);
   cout << "r1 == r2 ? " << (r1 == r2) << '\n' ;

   cout << "-----avg-----\n" ;  prfl(avg);
   cout << "-----size-----\n" ; prfl(size);
   cout << "-----point-----\n" ; prfl(point);
   cout << "-----avg - size------\n" ; prfl(avg - size);
   cout << "-----(avg - size) - point------\n" ; prfl((avg - size) - point);
   cout << "-----size + point------\n" ; prfl(size + point);
   cout << "-----avg - (size + point)------\n" ; prfl(avg - (size + point));
r1 == r2 ? 0
-----avg-----
implicit_1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
exponenta = - 1
sign = 0
-----size-----
implicit_1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0
exponenta = - 2
sign = 0
-----point-----
implicit_1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
exponenta = - 2
sign = 0
-----avg - size------
implicit_1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
exponenta = - 2
sign = 0
-----(avg - size) - point------
implicit_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
exponenta = - 25
sign = 1
-----size + point------
implicit_1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0
exponenta = - 1
sign = 0
-----avg - (size + point)------
implicit_1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
exponenta = - 24
sign = 1

일반적으로 두 double의 결과는 동일한 방식으로 얻은 경우에만 동일합니다(정수를 처리할 때 사례를 계산하지 않는 경우).

 
A100 :
일리야 말레프 :
파블릭_ :

답변 감사합니다. 하나하나 감사했습니다. 처음으로 나는 PRICE에 동일한 포인트를 추가하지만 다른 순서로 추가하면 다른 PRICES를 생성한다는 사실을 발견했습니다. 따라서 Tester에서 다른 결과를 얻습니다.

복식에 대해 논의할 때 복식을 서로 비교할 수 있는 시기와 이유가 명확했습니다. 그러나 가격 플러스 핍 및 출구에서의 다른 결과 - 처음으로 TS 결과에 명확하게 영향을 미쳤습니다.


이러한 모호성을 피하려면 계산된 가격에 0.5포인트 미만을 추가한 다음 정규화해야 합니다.

 
fxsaber :

이러한 모호성을 피하려면 계산된 가격에 0.5포인트 미만을 추가한 다음 정규화해야 합니다.

그리고 TS의 결과가 그런 하찮은 일에서 많이 바뀌면 "고맙다"고 말하고 그런 TS는 쓰레기통에 버려야 한다는 의견도 있다.

 
fxsaber :

답변 감사합니다. 하나하나 감사했습니다. 처음으로 나는 PRICE에 동일한 포인트를 추가하지만 다른 순서로 추가하면 다른 PRICES를 생성한다는 사실을 발견했습니다. 따라서 Tester에서 다른 결과를 얻습니다.

복식에 대해 논의할 때 복식을 서로 비교할 수 있는 시기와 이유가 명확했습니다. 그러나 가격 플러스 핍 및 출구에서의 다른 결과 - 처음으로 TS 결과에 명확하게 영향을 미쳤습니다.


이러한 모호성을 피하려면 계산된 가격에 0.5포인트 미만을 추가한 다음 정규화해야 합니다.

기능에 표시되어야 하지 않을까요?

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2017.02.24
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Ilya Malev :

그리고 TS의 결과가 그런 하찮은 일에서 많이 바뀌면 "고맙다"고 말하고 그런 TS는 쓰레기통에 버려야 한다는 의견도 있다.

그들은 많이 변하지 않고 단지 변할 뿐입니다. 이것은 조사를 시작하기에 충분합니다.