[SERVICE DESK] 타이머에서 시니어 TF의 시간을 가져오는 동안 오류가 발생했습니다! - 페이지 12

 
Taras Slobodyanik :

문제가 보이지 않습니다. 새 양초 가 나타났습니다. 표시기 / 고문의 마지막 양초를 다시 계산합니다.
하나 이상의 새로운 양초가 나타났습니다-지표 / 고문을 완전히 다시 계산합니다.
그것은 동일합니다 - 새로운 촛불이 나타납니다.

여전히 - 필요한 기간이 업데이트되도록 지속적으로 "당겨야" 합니다.
마침표에 대해 작업하는 사람이 없으면(따옴표가 확인되지 않고 표시기가 실행되지 않음) 불필요한 것으로 간주되기 때문에 "잠자기 상태"가 됩니다.

오리 우리는 당겨, 당겨. 요청을 하면 오류가 발생하고 종료됩니다. 그러나 여기에 또 다른 "기능"이 나타납니다. 재설정 후에도 오류가 다시 발생하지 않습니다. 그것은 쏠 것입니다 - 아무 문제가 없을 것입니다. 따라서 잘못된 데이터의 반환이 문제입니다. 그리고 나는 그것을 매우 명확하게 볼 수 있습니다.

이 예에서는 전체 오류 검사 시스템이 소모됩니다.

 

터미널은 최신 데이터가 오래되었다는 것을 어떻게 이해합니까?
결국 역사가 있습니다.
브로커에 대한 요청이... 최대한 빨리 전송되었습니다.

새 막대 가 나타납니다. 데이터가 업데이트됩니다.

 
Taras Slobodyanik :

터미널은 최신 데이터가 오래되었다는 것을 어떻게 이해합니까?
결국 역사가 있습니다.
브로커에 대한 요청이... 최대한 빨리 전송되었습니다.

새 막대 가 나타납니다. 데이터가 업데이트됩니다.

서버에 대한 연결이 설정되었습니다. 시니어 TF에서 데이터를 요청할 때 데이터가 준비되지 않은 경우 오류 또는 0을 반환합니다. 데이터가 준비된 경우 실제 데이터만 반환합니다. 모두. 데이터가 오랫동안 준비되지 않은 경우 오류 또는 0을 반환합니다.

 
Taras Slobodyanik :

그건 그렇고, 당신은 터미널 버전에 대한 질문에 대답하지 않았습니다.

 
Alexey Kozitsyn :

그건 그렇고, 당신은 터미널 버전에 대한 질문에 대답하지 않았습니다.

그리고 터미널의 버전은 일반적으로 무엇과 관련이 있습니까? 새로운 데이터가 있거나 없습니다. 그리고 서버에서 가져오지 않은 버전은 저장되지 않습니다.
새 데이터가 도착하기 전에 표시기가 시작된다는 것입니다. 옵션 으로 새 틱이 수신될 때 트리거되는 OnCalculate 수표를 이동합니다.

 
Konstantin Nikitin :

옵션 으로 새 틱이 수신될 때 트리거되는 OnCalculate로 수표를 이동합니다.

그는 이것을 여러 번 제안했으며 관리자도

OnCalculate() 는 표시기가 시작될 때 표시기에서 시작되지만 틱이 도착하면 두 번째로 OnCalculate()가 시작됩니다. 여기에서 타이머를 켜고 새 OHLC 데이터를 다운로드해야 합니다.

 
Igor Makanu :

그는 이것을 여러 번 제안 받았고 관리자도

표시기는 표시기가 시작될 때 OnCalculate()를 실행하지만 틱이 도착하면 두 번째로 OnCalculate()가 실행됩니다. 여기에서 타이머를 켜고 새 OHLC 데이터를 다운로드해야 합니다.

내가 게시 한 마지막 코드를 확인하십시오. 더 이상 타이머가 아니며 모든 것이 OnCalculate()로 이동되었습니다. 터미널을 시작할 때 여전히 작동하지 않습니다.

 
//--- Проверяем связь с сервером
if (firstrun)
{
 firstrun= false ;                 // первый запуск индикатора
 return ( 0 );
}   
if (! IsConnected ())                               // Если не удалось установить связь с сервером
     {
       //--- Сбрасываем флаг соединения с сервером
      _isConnected= false ;
       //--- Выходим
       return ( 0 );
     }
또한 GetTickCount() 를 확인하여 터미널이 부팅되고 그래프를 생성하고 서버와 연결될 시간이 있는지 확인합니다.또한 터미널을 다시 시작하는 사실을 추적해야 하는데 추적하는 방법을 모르겠습니다. 하지만 시간을 주어야 합니다.
 
Alexey Kozitsyn :

내가 게시 한 마지막 코드를 확인하십시오. 더 이상 타이머가 아니며 모든 것이 OnCalculate()로 이동되었습니다. 터미널을 시작할 때 여전히 작동하지 않습니다.

시작 시 첫 번째 패스를 건너뜁니다.

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   static bool res = false ;
   if ( !res )
     {
      res = true ;
       return ( rates_total );
     }
   /* работаем */
   return ( rates_total );
  }
 
Konstantin Nikitin :

시작 시 첫 번째 패스를 건너뜁니다.

항목 1을 읽으십시오 .