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

 
Mikhail Nazarenko :

감사합니다. 이것이 핵심입니다. iTime을 통해 업데이트되지 않은 시계열에 액세스한 후 터미널에서 실제로 오류 4066이 발생합니까? null 대신 업데이트되지 않은 정보를 제공하는 iClose를 만났습니다.

그것이 요점입니다. 그것이 당신을 개그하게 만드는 요점입니다.

오류 4066 - 이 TF에 대한 기록이 없으면 준비되지 않았으므로 서버에 문의해야 합니다.

그리고 그것이 이미 거기에 있지만 당신이 그것을 돌릴 때만 업데이트됩니다. 오류가 발생하지 않고 현재 정보만 제공하며 요청과 동시에 시계열 업데이트를 시작합니다.

드물게 불규칙적으로 요청하면 때때로 정크를 얻습니다. 필요한 각 TF를 정기적으로 각 틱까지 참조하면 모든 것이 정상입니다.

이 TF 의 차트 가 열려 있으면 차트에 정기적으로 업데이트됩니다. 그건 그렇고, 순환이 불규칙하면 고문으로부터 필요한 모든 TF의 차트를 열 수 있지만 이것은 신뢰할 수 없기 때문입니다. TF에서 수동으로 닫거나 변경할 수도 있습니다.

 
Evgeniy Chumakov :


[i + 0]에 0을 추가하는 이유는 무엇입니까?

0 대신 1과 2, 1 또는 2를 대체했습니다. 0, 즉 1 bar를 남겼습니다. 코드를 정리하지 않았으며 논리에 중요하지 않습니다.

 
Aleksey Mavrin :

그것이 요점입니다. 당신을 개그로 만드는 핵심 요점입니다.

오류 4066 - 이 TF에 대한 기록이 없으면 준비되지 않았으므로 서버에 문의해야 합니다.

그리고 그것이 이미 거기에 있지만 당신이 그것을 돌릴 때만 업데이트됩니다. 오류가 발생하지 않고 현재 정보만 제공하며 요청과 동시에 시계열 업데이트를 시작합니다.

드물게 불규칙적으로 요청하면 때때로 정크를 얻습니다. 필요한 각 TF를 정기적으로 각 틱까지 참조하면 모든 것이 정상입니다.

이 TF 의 차트 가 열려 있으면 차트에 정기적으로 업데이트됩니다. 그건 그렇고, 순환이 불규칙하면 고문으로부터 필요한 모든 TF의 차트를 열 수 있지만 이것은 신뢰할 수 없기 때문입니다. TF에서 수동으로 닫거나 변경할 수도 있습니다.

오류가 발생하면 오래된 데이터를 제공하므로 피해를 입습니다. 이것이 브로커가 MT4를 사랑하고 MT5로 전환하지 않는 이유 중 하나입니다.))

즉, 오류 4066이 없을 때까지 매 틱 또는 슬립마다 원하는 시간 프레임을 적용합니다. 제가 제대로 이해한건가요?

 
Mikhail Nazarenko :

오류가 발생하면 오래된 데이터를 제공하므로 피해를 입습니다. 이것이 브로커가 MT4를 사랑하고 MT5로 전환하지 않는 이유 중 하나입니다.))

즉, 오류 4066이 없을 때까지 매 틱 또는 슬립마다 원하는 시간 프레임을 적용합니다. 제가 제대로 이해한건가요?

거의. 완성된 기능은 다음과 같습니다.

 bool IsTFDataReady( ENUM_TIMEFRAMES eTF)
{
   ResetLastError ();
   iTime ( NULL , eTF, 1 );
   return GetLastError () == ERR_NO_ERROR;
}
OnTick()에 삽입하고 true를 반환하면 eTF 타임프레임에 액세스할 수 있으며 데이터가 유효합니다.
 
Mikhail Nazarenko :

오류가 발생하면 오래된 데이터를 제공하므로 피해를 입습니다. 이것이 브로커가 MT4를 사랑하고 MT5로 전환하지 않는 이유 중 하나입니다.))

즉, 오류 4066이 없을 때까지 매 틱 또는 슬립 마다 원하는 시간 프레임을 적용합니다. 제가 제대로 이해한건가요?

sleep은 물론 OnInit에서만 사용하는 것이 좋으며 이론상으로는 지표에서만 필요합니다. 다른 경우에는 위에서 언급한 Igor와 같이 OnTik에 대한 호소로 충분합니다.

작업에 따라 가장 좋은 방법으로 기동할 수 있습니다. 일반적으로 새 막대가 표시되는지 여부를 확인할 때 이미 사용된 모든 TF에 대해 각 틱마다 iTime을 사용합니다. 이것으로 최신 상태를 유지하기에 충분합니다.

추신 Igor의 기능이 모든 틱에 사용되는 것이 아니라 일부 드문 조건에서 사용되는 경우에도 동기화되지 않습니다.
Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
Aleksey Mavrin :

sleep은 물론 OnInit에서만 사용하는 것이 좋으며 이론상으로는 지표에서만 필요합니다. 다른 경우에는 위에서 언급한 Igor와 같이 OnTik에 대한 호소로 충분합니다.

작업에 따라 가장 좋은 방법으로 기동할 수 있습니다. 일반적으로 새 막대가 표시되는지 여부를 확인할 때 이미 사용된 모든 TF에 대해 각 틱마다 iTime을 사용합니다. 이것으로 최신 상태를 유지하기에 충분합니다.

추신 Igor의 기능이 모든 틱에 사용되는 것이 아니라 일부 드문 조건에서 사용되는 경우에도 동기화되지 않습니다.

지표에서 수면이 작동하지 않음

 
Ihor Herasko :

거의. 완성된 기능은 다음과 같습니다.

OnTick()에 삽입하고 true를 반환하면 eTF 타임프레임에 액세스할 수 있으며 데이터가 유효합니다.

모든 독창적인 것은 간단합니다. 고맙습니다. 왜 개발자들은 iClose 기능 등에 대한 매뉴얼에서 이것을 설명하지 않습니까? 또는 음모론을 생성하지 않도록 MT4 따옴표 업데이트 논리를 수정하십시오 .

 
Mikhail Nazarenko :

오류가 발생하면 오래된 데이터를 제공하므로 피해를 입습니다. 이것이 브로커가 MT4를 사랑하고 MT5로 전환하지 않는 이유 중 하나입니다.))

즉, 오류 4066이 없을 때까지 매 틱 또는 슬립마다 원하는 시간 프레임을 적용합니다. 제가 제대로 이해한건가요?

MT5에서는 이것이 훨씬 더 어렵습니다.

4개에서는 2분에 한 번씩 사용된 모든 TF에서 iTime 을 요청하면 충분하며 모든 데이터는 최신 상태가 됩니다.

 
Mikhail Nazarenko :

모든 독창적인 것은 간단합니다. 고맙습니다. 왜 개발자들은 iClose 기능 등에 대한 매뉴얼에서 이것을 설명하지 않습니까? 또는 음모론을 생성하지 않도록 MT4 따옴표 업데이트 논리를 수정하십시오 .

거의 모든 EA가 매 틱마다 올바른 조건을 확인하고 모든 것이 자체적으로 업데이트되기 때문입니다.

 
Vitaly Muzichenko :

지표에서 수면이 작동하지 않음

정말 필요한 경우. 작동합니다 :)

 void SleepA( int msec)
 {
   uint now= GetTickCount ();
   while ( GetTickCount ()<(now+msec))
      {
       for ( int i= 0 ;i< 10000 ;i++)
         {
           double f= 1 ;
          f*=f;
          f+=f;
         }
       }
   return ;
 }  
안드레이 카팀리안스키 :

MT5에서는 이것이 훨씬 더 어렵습니다.

4개에서는 2분에 한 번씩 사용된 모든 TF에서 iTime 을 요청하면 충분하며 모든 데이터는 최신 상태가 됩니다.

정확히