MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1478

 
MakarFX :

도와 주셔서 감사합니다. 내가 실수하지 않았다면 void OnTick()이 각 틱을 처리한다는 사실에도 불구하고 내부에서 TimeSeconds()를 사용하면 void OnTick() 은 각 틱을 처리하지 않고 각 분 촛불의 시작 부분만 처리합니다. 이를 위해 전체 코드의 실행 시간을 절약할 수 있습니다.

TimeSeconds() 대신 if(Minute() != x) 조건으로 작성하고 x= Minute() 끝에 작성하면 효과가 TimeSeconds()와 동일할까요?

감사해요

 
ANDREY :

도와 주셔서 감사합니다. 내가 실수하지 않았다면 void OnTick()이 각 틱을 처리한다는 사실에도 불구하고 내부에서 TimeSeconds()를 사용하면 void OnTick() 은 각 틱을 처리하지 않고 각 분 촛불의 시작 부분만 처리합니다. 이를 위해 전체 코드의 실행 시간을 절약할 수 있습니다.

TimeSeconds() 대신 if(Minute() != x) 조건으로 작성하고 x= Minute() 끝에 작성하면 효과가 TimeSeconds()와 동일할까요?

감사해요

 bool FlagNewBar= false ,
     FlagBegin= true ;

void OnTick ()

FlagNewBar= false ;
   if (BarTime!=Time[ 0 ])
     {
      BarTime=Time[ 0 ];
      FlagNewBar= true ;
     }


   if (FlagNewBar || FlagBegin)
     {
      FlagBegin= false ;
.......

)

더 나은 방법은 귀하와 세션 외부의 타이머가 타작할 것입니다. 새 양초에만 그렇습니다.

첫 번째 극단에서 퇴적물 그리드를 설정하는 것이 더 쉽기 때문에 왜 그럴까요? 당신은 본질적으로 동일합니다. 첫 번째 조건은 극한값을 찾는 것이고, 그 다음 움직임이 다운되면 순서의 30포인트 이후입니다.

flagbegin은 차트에 올린 후 즉시 운동을 하기 위해 필요합니다. 필요하지 않으면 flagbegin을 제거하십시오.

 
Valeriy Yastremskiy :

더 나은 방법은 귀하와 세션 외부의 타이머가 타작할 것입니다. 그리고 새 양초에만 있습니다.

첫 번째 극단에서 퇴적물 그리드를 설정하는 것이 더 쉽기 때문에 왜 그럴까요? 당신은 본질적으로 동일합니다. 첫 번째 조건은 극한값을 찾는 것이고, 그 다음 움직임이 다운되면 순서의 30포인트 이후입니다.

flagbegin은 차트에 올린 후 즉시 운동을 하기 위해 필요합니다. 필요하지 않은 경우 flagbegin을 제거하십시오.

나는 30p 이후의 지역 최소값에서 위쪽으로 , 즉 BID에서 MINIMUM >= 30p를 뺀 주문이 있습니다.
참여해주셔서 감사합니다. 이제 나는 당신의 조언을 따를 것입니다 ...

 
Valeriy Yastremskiy :

더 나은 방법은 귀하와 세션 외부의 타이머가 타작할 것입니다. 새 양초에만 그렇습니다.

첫 번째 극단에서 퇴적물 그리드 를 설정하는 것이 더 쉽기 때문에 왜 그럴까요? 당신은 본질적으로 동일합니다. 첫 번째 조건은 극한값을 찾는 것이고, 그 다음 움직임이 다운되면 순서의 30포인트 이후입니다.

flagbegin은 차트에 올린 후 즉시 운동을 하기 위해 필요합니다. 필요하지 않으면 flagbegin을 제거하십시오.

로컬 최소값이 나타났습니다 ... 그리고 로컬 최소값에서 30,32,34 ... 포인트의 거리에서 10 지연을 설정했습니다. 그리고 가격이 첫 번째 지연에 도달하기 전에 로컬 최저가가 업데이트되었으며 모든 지연을 다시 설정해야 합니다. 지연을 설치하고 다시 설치하는 데 시간이 매우 오래 걸리는 것 같습니다. 그리고 구하려고 합니다.

 
Valeriy Yastremskiy :

더 나은 방법은 귀하와 세션 외부 의 타이머 가 타작할 것입니다. 새 양초에만 그렇습니다.

첫 번째 극단에서 퇴적물 그리드를 설정하는 것이 더 쉽기 때문에 왜 그럴까요? 당신은 본질적으로 동일합니다. 첫 번째 조건은 극한값을 찾는 것이고, 그 다음 움직임이 다운되면 순서의 30포인트 이후입니다.

flagbegin은 차트에 올린 후 즉시 운동을 하기 위해 필요합니다. 필요하지 않으면 flagbegin을 제거하십시오.

타이머가 타작하면 기쁠 것입니다. 그러나 MT4 테스터에서 밝혀진 것처럼 타이머가 작동하지 않습니다.

 
ANDREY :

도와 주셔서 감사합니다. 내가 실수하지 않았다면 void OnTick()이 각 틱을 처리한다는 사실에도 불구하고 내부에서 TimeSeconds()를 사용하면 void OnTick() 은 각 틱을 처리하지 않고 각 분 촛불의 시작 부분만 처리합니다. 이를 위해 전체 코드의 실행 시간을 절약할 수 있습니다.

TimeSeconds() 대신 if(Minute() != x) 조건으로 작성하고 x= Minute() 끝에 작성하면 효과가 TimeSeconds()와 동일할까요?

감사해요

       if (TimeMinute( TimeCurrent ())!=x)
         x=TimeMinute( TimeCurrent ();
 
Valeriy Yastremskiy :

이 방법이 더 좋고,

"FlagNewBar"가 필요한 이유를 말씀해 주시겠습니까?

같은거 아닌가

   if (BarTime!=Time[ 0 ])
     {
      ........
      BarTime=Time[ 0 ];
     }
 

MakarFX :

 if (TimeMinute( TimeCurrent ())!=x)
         x=TimeMinute( TimeCurrent ();


이 경우 TimeSeconds() 또는 Time Minute () 함수의 사용을 여전히 이해하지 못합니다. 이것이 기본적이고 필수입니까? 결국 단일 Minute() 함수를 사용하여 이러한 함수와 동일한 결과를 얻을 수 있습니다.

if ( 분() != x)
{

행동
x= 분() ;

}

고맙습니다.

 
ANDREY :

이 경우 TimeSeconds() 또는 Time Minute () 함수의 사용을 여전히 이해하지 못합니다. 이것이 기본적이고 필수입니까? 결국 단일 Minute() 함수를 사용하여 이러한 함수와 동일한 결과를 얻을 수 있습니다.

if ( 분() != x)
{

행동
x= 분() ;

}

고맙습니다.

필수는 아닙니다. 당신에게 가장 잘 어울리는 대로
 
MakarFX :

"FlagNewBar"가 필요한 이유를 말씀해 주시겠습니까?

같은거 아닌가

기본 습관. 그와 함께 진정하십시오) 그것 없이도 할 수 있습니다.) 그리고 조건이 여러 곳에 삽입되면 기록이 더 짧아집니다.

위협. 논리가 분기되고 히스테리시스적이라면 플래그 없이는 방법이 없습니다. 그리고 그들은 인쇄하기 쉽습니다