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

 
uncleVic :
이 같은.

도움을 주셔서 대단히 감사합니다! 모든 것이 단순하고 아름답습니다)

처음에는 Event map을 해봤는데 잘 이해가 안되서 직접 OnEvent()를 오버로드 하기로 했습니다...

추신: 터미널과 함께 제공된 코드나 문서에 이벤트 맵(ON_EVENT에서 ON_EXTERNAL_EVENT까지)을 사용하는 예가 있으면 훨씬 더 이해하기 쉬울 것입니다. 결국 ON_EVENT 예제만 있습니다 - Experts/Examples/Controls/ControlsDialog.mq5 및 Indicators/Examples/Panels/PanelDialog.mq5 - 적어도 다른 하나는 찾지 못했습니다. 예, 기사 의 몇 단어를 제외하고 사이트 검색은 아무 것도 제공하지 않았습니다.

 
Rone :

도움을 주셔서 대단히 감사합니다! 모든 것이 단순하고 아름답습니다)

처음에는 Event map을 해봤는데 잘 이해가 안되서 직접 OnEvent()를 오버로드 하기로 했습니다...

추신: 터미널과 함께 제공된 코드나 문서에 이벤트 맵(ON_EVENT에서 ON_EXTERNAL_EVENT까지)을 사용하는 예가 있으면 훨씬 더 이해하기 쉬울 것입니다. 결국 ON_EVENT 예제만 있습니다 - Experts/Examples/Controls/ControlsDialog.mq5 및 Indicators/Examples/Panels/PanelDialog.mq5 - 적어도 다른 하나는 찾지 못했습니다. 예, 기사 의 몇 단어를 제외하고 사이트 검색은 아무 것도 제공하지 않았습니다.


1. 제발. 연락하다.

2. 추가합시다.

 
CTrade::OrderSend: 매수 스톱 0.94 USDCHF at 0.93366 sl: 0.93016 tp: 0.94816 [무효 거래량]

USDCHF에 대해 0.94랏의 볼륨을 설정할 때 잘못된 볼륨 에서 오류가 발생한 이유는 무엇입니까?

이것은 잘못된 볼륨입니까 아니면 그러한 볼륨을 배치하기에 충분한 자금이 없었습니까?

 
Konstantin83 :
CTrade::OrderSend: 매수 스톱 0.94 USDCHF at 0.93366 sl: 0.93016 tp: 0.94816 [무효 거래량]

USDCHF에 대해 0.94랏의 볼륨을 설정할 때 잘못된 볼륨에서 오류가 발생한 이유는 무엇입니까?

이것은 잘못된 볼륨입니까 아니면 그러한 볼륨을 배치하기에 충분한 자금이 없었습니까?

그리고 도구 설정의 볼륨 단계는 무엇입니까? 0.10 또는 0.01 랏? 0.10이면 모든 것이 정확합니다 - 잘못된 볼륨
 
Renat :
그리고 도구 설정의 볼륨 단계는 무엇입니까? 0.10 또는 0.01 랏? 0.10이면 모든 것이 정확합니다 - 잘못된 볼륨

metaquotes의 데모 서버에는 0.01 단계가 있습니다.

많은 테스트 중



CSymbolInfo       Exp_Symbol_Info;              // symbol info object

...
double CBaseTrade::GetCorrectLot(double pLot)
 {
      double   dLot   = pLot;
      double   dLotMin   = Exp_Symbol_Info.LotsMin();
      double   dLotMax   = Exp_Symbol_Info.LotsMax();
      double   dLotStep  = Exp_Symbol_Info.LotsStep();
    
      dLot=dLotStep*NormalizeDouble(pLot/dLotStep, 0);
 
      if(dLot < dLotMin) dLot=dLotMin;
 
      if(dLot > dLotMax && dLotMax !=0) dLot=dLotMax;

 
  return(dLot);
 }

 

볼륨 값을 4-8자 이내로 인쇄 하십시오.

소수점 둘째 자리로 반올림하지 않은 명백한 오류는 다음과 같습니다.

dLot=dLotStep* NormalizeDouble (pLot/dLotStep, 0 );
 
Renat :

볼륨 값을 4-8자 이내로 인쇄하십시오.

소수점 둘째 자리로 반올림하지 않은 명백한 오류는 다음과 같습니다.

네 근데 왜 반올림이 없나요?

로트 단계가 0.01이라고 가정해 보겠습니다.

투입 로트 2,111

결과 = 0.01 * NormalizeDouble(2.111/0.01)=0.01*NormalizeDouble(211.1)=0.01*211=2.11

또는 로트 단계가 0.25인 브로커가 있는 경우 결과를 두 번째 자리로 반올림할 수 없습니다.

로트 단계가 0.25라고 가정해 보겠습니다.

투입 로트 2.3

결과 = 0.25 * NormalizeDouble(2.3/0.25)=0.25*NormalizeDouble(9.2)=0.25*9=2.25


테스터에는 문제가 없습니다. 오늘 데모에서 이 오류가 몇 번 발생했습니다.

CSymbolInfo 클래스의 볼륨 단계가 정규화되었습니까?

 

말해봐 pzhl!

시장 시계에서 통화 쌍의 배경을 다시 칠하는 방법

또는 색상을 제거하십시오.

미리 ATP!

 
Konstantin83 : 결과 = 0.01 * NormalizeDouble(2.111/0.01)=0.01*NormalizeDouble(211.1)=0.01*211=2.11
두 개의 이중 숫자의 곱은 정규화되지 않은 숫자입니다. 0.01*NormalizeDouble(211.1)=0.01*211 .*********** =2.11 ***********
 
Konstantin83 :

네 근데 왜 반올림이 없나요?

가장 많이 정규화된 값의 매트 연산 결과는 정규화된 숫자 가 아니기 때문입니다.

따라서 이것은 오류의 위치입니다.

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5