RefreshRates() 함수는 무엇을 업데이트합니까? - 페이지 4

 
Mikhail Nazarenko :
좋아요, 관심을 가져주신 모든 개발자 덕분에 NewBar와 같은 목발을 만들러 갔습니다.))) 주제가 종료되었습니다.

예, 만들 필요가 없습니다. 나는 당신에게 완전히 작동하는 기능을 주었습니다. 즐기다.

 

새로운 시간이 온다...


가치 일대일...

 
Mikhail Nazarenko :

아니요, _Period가 더 좋습니다. H1에서 0 인용이 나타날 때까지 기다려야 하고 현재 기간이 정기적으로 업데이트되기 때문입니다. 시간이 업데이트될 때가 아니라 시간의 첫 번째 초에 데이터를 수신해야 합니다.

 if (NewBar( PERIOD_M5 ))
   {
    close_H1 = iClose ( _Symbol , PERIOD_H1 , 1 );
    close_M1 = iClose ( _Symbol , PERIOD_M1 , 1 );
    close_M5 = Close[ 1 ];
    
    
     if (close_H1 != close_M5)
       Print (close_H1, " H1 != M5 " , close_M5);
     if (close_M1 != close_M5)
       Print (close_M1, " M1 != M5 " , close_M5);

//...

예제를 추가하고 확인하고 싶습니다.


완전히 다른 바에 대해 동일한 종가 를 기대 하는지 이해가 되지 않습니까?

M5에 새 막대가 나타나면 M1에도 새 막대가 있고 H1에는 12개 중 1개의 경우에만 새 막대가 있고 나머지 11개에는 새 막대가 있습니다.

 
PapaYozh :

완전히 다른 바에 대해 동일한 종가 를 기대 하는지 이해가 되지 않습니까?


나도 알아차렸어, 내가 잘못 이해했다고 생각했다.

 

분명히 나는 문제를 제대로 설명하지 못했습니다. 죄송합니다. 나는 씻고 약속한 목발을 시험해 보았다. MQL4 자체의 코드에서 구현되어야 하기 때문에 여기에 썼습니다. 관심있는 분들은 가져가세요. 주제가 닫혔습니다.

 //Функция отслеживания появления обновленных котировок по таймфрейму, где max_tf таймфрейм +1 до которого включительно будет требоваться обновление
bool isRefresh( int max_tf = 0 , int min_sleep = 1000 ){
   
   //Массив с таймфреймами
   int tf[ 9 ] = { 1 , 5 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 };
   
   //Если максимальное 0 то текущее значение
   max_tf = (max_tf <= 0 ) ? _Period : max_tf;
   
   //Текущее время
   datetime period,tc = TimeCurrent ();
   
   for ( int i = 0 ; i < 9 ; i++){
         
      period = tf[i]* 60 ;
      
       if ( iTime ( _Symbol ,tf[i], 1 ) != ( int (tc/period)- 1 )*period){
         Sleep (min_sleep);
         return false ;   
      }
       if (max_tf < tf[i]) //Если таймфрейм больше максимального и тоже обновлен то выходим
         break ;
   }
   Sleep (min_sleep);
   RefreshRates();
   
   return true ;
}
 
Mikhail Nazarenko :

분명히 나는 문제를 제대로 설명하지 못했습니다. 죄송합니다. 나는 씻고 약속한 목발을 시험해 보았다. MQL4 자체의 코드에서 구현되어야 하기 때문에 여기에 썼습니다. 관심있는 분들은 가져가세요. 주제가 닫혔습니다.

1. 분명히 그렇습니다.

2. 반환된 결과에 어떤 식으로든 영향을 주지 않는다면 왜 함수에서 반환하기 전에 잠시 잠을 자는가?

 

다른 기간/기호의 양초가 정시에 생성되도록 하려면 지속적으로 "끌어당겨야" 합니다. 그렇지 않으면 MT가 "필요에 따라" 업데이트합니다.
이것은 일반적인 사실이며 포럼에서 여러 번 논의되었습니다)

추신. 코드가 타이머에서 작동하고 한 시간에 한 번(또는 하루에 한 번) 다른 기간의 따옴표에 액세스하는 경우 업데이트를 위한 별도의 함수를 만들어야 합니다. 또는 다음 요청 후 몇 초 동안 기다리십시오.

 
PapaYozh :

1. 분명히 그렇습니다.

2. 반환된 결과에 어떤 식으로든 영향을 주지 않는다면 왜 함수에서 반환하기 전에 잠시 잠을 자는가?

이것은 모두 경험에 의한 것입니다. 안 믿으면 다시 하고 잠도 안 자.) 집단농장은 자발적인 사업이다.

 

이것은 가장 순수한 형태의 ***입니다.

함수에서 돌아와 유용한 일을 할 수 있는데 왜 함수에서 잠을 자나요?

 
PapaYozh :

이것은 가장 순수한 형태의 ***입니다.

함수에서 돌아와 유용한 일을 할 수 있는데 왜 함수에서 잠을 자나요?

이것은 가장 순수한 형태의 ***입니다. 이전 답변에서 이해하지 못한 부분을 말씀해 주시겠습니까? 다시. 잠을 자지 말고 유용한 일을하십시오.)))