장 마감 - 페이지 6

 
fxsaber :

당신은 시간이 그러한 상황에서만 다를 것이라는 것을 알게 될 것입니다


MqlTick 이 있는 그대로 틱을 반환하지 않는다는 것은 여러 번 논의되었습니다. 두 가지 틱 스트림(견적 및 거래)이 있습니다. 그리고 CopyTicks에서는 때때로 소급하여 결합됩니다. 스레드가 동기화되지 않았습니다. 그리고 MqlTick과 CopyTicks 시간이 일치하지 않을 수 있습니다.


정말 10초 동안. 일치하지 않을 수 있습니까?

 2017.09 . 22 11 : 18 : 38.257 Test_time (RTS- 12.17 ,M1)         CopyTicks time = 11 : 18 : 27 ; SymbolInfoTick = 11 : 18 : 37
 
prostotrader :

정말 10초 동안. 일치하지 않을 수 있습니까?

Metaquotes-Demo에는 그런 것이 없습니다.

 
fxsaber :

Metaquotes-Demo에는 그런 것이 없습니다.


이것은 데모 오프너입니다. 지금 당장 실생활에서 시도해 보겠습니다.

추가됨

예, 정말 재미가 없습니다.

 2017.09 . 22 11 : 58 : 03.892 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 03 ; SymbolInfoTick = 11 : 58 : 03
2017.09 . 22 11 : 58 : 03.922 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 03 ; SymbolInfoTick = 11 : 58 : 03
2017.09 . 22 11 : 58 : 05.186 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 03 ; SymbolInfoTick = 11 : 58 : 04
2017.09 . 22 11 : 58 : 06.110 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 03 ; SymbolInfoTick = 11 : 58 : 05
2017.09 . 22 11 : 58 : 06.230 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 06 ; SymbolInfoTick = 11 : 58 : 06
2017.09 . 22 11 : 58 : 06.350 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 06 ; SymbolInfoTick = 11 : 58 : 06
2017.09 . 22 11 : 58 : 06.430 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 06 ; SymbolInfoTick = 11 : 58 : 06
2017.09 . 22 11 : 58 : 06.430 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 06 ; SymbolInfoTick = 11 : 58 : 06
2017.09 . 22 11 : 58 : 07.174 Test_time (Si- 12.17 ,M1) CopyTicks time = 11 : 58 : 07 ; SymbolInfoTick = 11 : 58 : 07
 
prostotrader :

진짜 재미없어

밀리초 및 기타 데이터는 .

 

일단은 이렇게 하기로 했어요

 //bool CheckMarketTime(const string a_symbol)
bool CheckMarketTime()
{
  sv_time.year = 0 ;
   TimeTradeServer (sv_time);
   if (sv_time.year > 0 )
  {
     if ((sv_time.day_of_week == int (FirstDay)) ||                 //первый выходной
       (sv_time.day_of_week == int (SecondDay))) return ( false );   //Второй выходной
    sv_time.year = 0 ;   
     TimeCurrent (sv_time);
     if (sv_time.year > 0 )
    {   
       ulong cur_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec;
       if (((cur_time >= time_st_mon) && (cur_time < 50370 )) ||
         ((cur_time >= time_st_day) && (cur_time < 67470 )) ||
         ((cur_time >= time_st_evn) && (cur_time < 85770 )))
      {
         return ( true );
      }
    }
  }
}
 

잘하려면 서버(교환)의 시간을 브로드캐스트하면 됩니다.

Market Watch에서 마지막으로 알려진 인용문에서 가져온 TimeCurrent() 대신

단순히 교환 시간을 브로드캐스트하는 TimeServer() 함수를 만듭니다.

그러면 TimeTradeServer() 도 필요하지 않습니다.

두 가지 기능이면 충분합니다

TimeLocal() 및 TimeServer()

 
prostotrader :

일단은 이렇게 하기로 했어요

이 스레드에서 차량의 동작을 상기시켰습니다.

Перевод string в часы и минуты
Перевод string в часы и минуты
  • 2017.09.06
  • www.mql5.com
Когда встаёт задача задать во входных параметрах время в формате ЧЧ:ММ, приходится решать дилему: удобство пользователя при вводе значений или удоб...
 

그림에서 차트의 출력은 TimeTradeServer() 함수이며 시간이 더 빨리 흐르고 있습니다.
TimeCurrent()를 출력하면 현재 기호에 대한 마지막 인용 시간이 있으므로 종종 불일치가 발생합니다.
Market Watch에서 시간이 동기화되어 표시되도록 Market Watch에서 최신 견적의 최신 시간을 얻으려면 어떻게 해야 합니까?



 
Vasiliy Pushkaryov :

Market Watch에서 시간이 동기화되어 표시되도록 Market Watch에서 최신 견적의 최신 시간을 얻으려면 어떻게 해야 합니까?

시간 현재 .

 
fxsaber :

시간 현재.

네, 그것도 아닙니다. 1초에 한 번 OnTimer를 통해 출력을 하고, 출력물에 메시지 출력을 추가하기로 결정했습니다. 그곳에서 같은 시간이 두 번 흐른다는 것을 알 수 있다. 이제 방금 도움말에서 OnTimer용 TimeCurrent가 "시장 조사 창에서 사용할 수 있는 모든 기호 에 대한 마지막 견적이 도착한 시간 , 이 창의 제목에 표시된 시간"이라는 것을 보았습니다.

저것들. 이것은 당신이 필요로하는 것입니다. 이론에 의하면. 그러나 실제로는 문제가 발생합니다.



사유: