[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 320

 
okvseok :

"이중 MathRound( double 값)"이지만 더 큰 소수로 반올림해야 하며 숫자가 정수이거나 이미 소수인 경우 만지지 마십시오.

예: 1) 0.744를 0.8로 반올림합니다. 1.233에서 1.3으로 반올림

2) 0.9 또는 3 또는 1.5는 만지지 마십시오.

 double MathRoundDec( double dValue) 
 {
  if (dValue == NormalizeDouble (dValue, 1 )) return (dValue);
   return ( MathRound ( 10 * dValue) / 10 );  
 }
확인은 하지 않았지만 그런 내용입니다.
 
Zhunko :
확인은 하지 않았지만 그런 내용입니다.


절대적으로 쓸모없는 제스처는 수학적으로 double res=NormalizeDouble(res,1)로 충분하여 어쨌든 double res = 3을 처리합니다. 또는 이중 해상도 = 3.0;

차이점은 인쇄 (그래프)할 때만 표시되지만 작성자는 문제 설명에 이를 표시하지 않습니다.

 
FAQ :


절대적으로 쓸모없는 제스처는 수학적으로 double res=NormalizeDouble(res,1)로 충분하여 어쨌든 double res = 3을 처리합니다. 또는 이중 해상도 = 3.0;

차이점은 인쇄(그래프)할 때만 표시되지만 작성자는 문제 설명에 이를 표시하지 않습니다.

글쎄, 당신은 이것을 할 수 있습니다:

 double MathRoundDec( double dValue) 
 {
   return ( MathRound ( 10 * dValue) / 10 );  
 }
제 생각에는 첫 번째 옵션이 더 좋습니다. 더 빨리 작동합니다.
 
Zhunko :

글쎄, 당신은 이것을 할 수 있습니다:

제 생각에는 첫 번째 옵션이 더 좋습니다. 더 빨리 작동합니다.


이 옵션

 double res= NormalizeDouble (res, 1 );

가장 빨라야 한다

 
모두에게 감사합니다. 나는 월요일에 답장을 쓰고 모든 것을 시도할 것이다!
 
Vadim의 버전은 20-25% 더 빠르지만 백만 번이 넘는 반복 횟수와 함께 그 효과가 꾸준히 나타나기 시작합니다. (체크)
 
FAQ :
Vadim의 버전은 20-25% 더 빠르지만 백만 번이 넘는 반복 횟수와 함께 그 효과가 꾸준히 나타나기 시작합니다. (체크)

코드를 어떻게 테스트했는지 보여주세요
 
FAQ :
Vadim의 버전은 20-25% 더 빠르지만 백만 번이 넘는 반복 횟수와 함께 그 효과가 꾸준히 나타나기 시작합니다. (체크)
정말 감사합니다!
 
okvseok :

다음과 같이 작성하는 것이 정확합니다. if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice()) Stop=false // 즉, 끝에서 마지막 주문이 이익실현(특정 수준에 도달하면 이익실현)으로 마감한 다음 Stop=false? (전역 변수에서 중지)

어떤 경우에도 if((iClose(NULL,0,1)<ma) && Stop==True) 조건에 의해 내 주문이 열렸기 때문에 질문이 생겼습니다...

 

정규화되지 않은 복제본을 비교하지 마십시오. 쓸모가 없습니다. 참고로 테이크 주문 의 종가 는 테이크 가격(실제/데모(온라인))과 다를 수 있습니다.

따라서 가격 차이의 계수를 측정하여 테스트 값과 비교하는 것이 더 정확할 것입니다.

 if ( MathAbs ( OrderTakeProfit ()- OrderClosePrice ())< 2 * Point ){Stop=false;}