열거 형을 순차적으로 반복하는 방법은 무엇입니까? - 페이지 4

 
fxsaber :
표준 NormalizeDouble(빌드 1395)보다 거의 4배 빠릅니다. 이것은 개발자의 목발입니다.

어느 것이 거의 4배 빠릅니까? 스튜디오에 코드!
 
저도 4번정도 놀랍니다...
그리고 어떤 측면 어레이 또는 스위치가 거기에 떨어졌는지 명확하지 않습니다. 순전히 수학입니다.
 
Dmitry Fedoseev :
어느 것이 거의 4배 빠릅니까? 스튜디오에 코드!
코드 베이스에서는 몇 일을 검사하는지 알 수 없습니다. 검사님은 휴가 중이신 것 같아요.
 
fxsaber :
코드 베이스에서는 몇 일을 검사하는지 알 수 없습니다. 검사님은 휴가 중이신 것 같아요.
오늘부터 포스팅을 시작한 것 같습니다. 아마도 그들은 우리에게 도달 할 것입니다)))
 
Ihor Herasko :
오늘부터 포스팅을 시작한 것 같습니다. 아마도 그들은 우리에게 도달 할 것입니다)))
당신은 도달했습니다. 나보다 먼저.
 
Dmitry Fedoseev :
어느 것이 거의 4배 빠릅니까? 스튜디오에 코드!

https://www.mql5.com/ru/code/16169

 // Почти в четыре раза быстрее соответствующей стандартной функции (build 1395)
#define NormalizeDouble PRICE_COMPARE::MyNormalizeDouble
Price_Compare
Price_Compare
  • 투표: 1
  • 2016.08.25
  • fxsaber
  • www.mql5.com
Изящное и шустрое сравнение double-значений "цены".
 

이 기능을 사용할 때는 NormalizeDouble보다 작은 범위의 값에서 올바르게 작동하므로 주의하십시오.

왜, 나는 설명하지 않을 것입니다 - 스스로 추측하십시오.

NormalizeDouble 함수의 작동 방식:

  1. 전체가 눈에 띈다 - 나
  2. 소수 부분이 강조 표시됨 - F
  3. F = F * 10^자리
  4. F = F(+ 또는 - 기호에 따라 다름) 0.5
  5. F = (F의 정수 부분) / 10^자리
  6. 결과 = 나 + F
 
일반적으로 감각이 없었습니다.
 
Ilyas :

이 기능을 사용할 때는 NormalizeDouble보다 작은 범위의 값에서 올바르게 작동하므로 주의하십시오.

왜, 나는 설명하지 않을 것입니다 - 스스로 추측하십시오.

NormalizeDouble 함수의 작동 방식:

  1. 전체가 눈에 띈다 - 나
  2. 소수 부분이 강조 표시됨 - F
  3. F = F * 10^자리
  4. F = F(기호에 따라 + 또는 -) 0.5
  5. F = (F의 정수 부분) / 10^자리
  6. 결과 = 나 + F

기능 설명 에 메모가 있습니다

StopLoss, TakeProfit의 계산된 값 및 보류 중인 주문의 시작 가격은 Digits() 함수로 얻을 수 있는 정확도로 정규화되어야 합니다 .

이것은 최소 가격 단계가 10^N인 기호에 대해서만 해당됩니다. 여기서 N은 양수가 아닌 정수입니다. 최소 가격 단계의 값이 다른 경우 OrderSend 전에 가격 수준을 정규화하는 것은 무의미한 작업이며 대부분의 경우 OrderSend가 false를 반환합니다.


도움말에서 오래된 보기를 수정하는 것이 좋습니다.

NormalizeDouble은 완전히 불신입니다. 느린 구현일 뿐만 아니라 다양한 교환 기호(예: RTS, MIX 등)에서도 의미가 없습니다.

제시된 대안 구현에 관해서는 양수 및 음수 모두에 대한 정확도가 원본보다 열등하지 않습니다. 반올림도 마찬가지입니다. 4배 더 빠르게 작동합니다.

 
fxsaber :

이것은 최소 가격 단계가 10^N인 기호에 대해서만 해당됩니다. 여기서 N은 양수가 아닌 정수입니다. 최소 가격 단계의 값이 다른 경우 OrderSend 전에 가격 수준을 정규화하는 것은 무의미한 작업 으로 대부분의 경우 false OrderSend 를 반환 합니다.

왜 갑자기?