MT4용 TimeTradeServer 아날로그 - 페이지 3

 
fxsaber :

전화해서 볼 수 있어요. 요점에 뭔가가 있다면 가자.

그러니 전화해서 보세요. 그리고 이것은 사실입니다.

 
Vitaly Muzichenko :

코드는 명확하고 나는 오랫동안 세이버 스타일에 익숙했으며 그의 코드는 미니멀하고 읽기 쉽습니다.

그는 내 요청에 따라 이 기능을 작성했으며, 그에 대해 감사를 표합니다.

그렇다면 이 코드는 우리가 지금 작성하고 있는 바로 이 분기와 어떤 관련이 있습니까?

 
Dmitry Fedoseev :

그렇다면 이 코드는 우리가 지금 작성하고 있는 바로 이 분기와 어떤 관련이 있습니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MT4용 TimeTradeServer 아날로그

이호르 헤라스코 , 2019.12.02 19:03

마음을 조금 넓혀주세요. 토요일에 시작했습니다. TimeCurrent() - 금요일 23:59:59가 있습니다. 무엇 향후 계획?


 
Vitaly Muzichenko :

그리고?

 
fxsaber :

서버와 컴퓨터의 시간대 사이.

서버 시간대 는 어디서 얻나요? 기본적으로 이것은 전체 스레드입니다. 그것이 바로 당신이 알아야 할 것입니다.

 
Ihor Herasko :

서버 시간대는 어디서 얻나요? 기본적으로 이것은 전체 스레드입니다. 그것이 바로 당신이 알아야 할 것입니다.

Vitaliy는 이 기능에 대한 링크를 제공했습니다. 아이디어가 무엇을 기반으로 했는지 기억나지 않습니다. 그러나 아마도 그는 글을 쓸 때 확인했을 것입니다. 시도 해봐.

 
예, 그 기능은 작동하지 않습니다. 아마도 일부 특수 DC를 제외하고는 올바르게 작동할 수 없습니다.
 
Dmitry Fedoseev :
예, 그 기능은 작동하지 않습니다. 아마도 일부 특수 DC를 제외하고는 올바르게 작동할 수 없습니다.

재생할 데이터가 있으면 좋을 것입니다.

 
Dmitry Fedoseev :
예, 그 기능은 작동하지 않습니다. 아마도 일부 특수 DC를 제외하고는 올바르게 작동할 수 없습니다.

작동, 3개의 다른 항목에서 테스트되었습니다. mt5에서 체크인

이것은 아마도 TC가 필요로 하는 것이 아니지만 아마도 그것에서 무언가를 취할 것입니다.

 #property strict


#define HOUR 3600
#define DAY ( 24 * HOUR)
#define WEEK 7

void OnTick () {
   Comment (TimeServer() + "\n" +
          TimeServerGMT() + "\n" +
          TimeServerGMTOffset());  
}

//--
MqlDateTime Tm;   

datetime GetBarTime( datetime time, bool NextBar = false , string Symb = NULL , ENUM_TIMEFRAMES TimeFrame = PERIOD_M15 ) {
 if (Symb == NULL ) Symb = _Symbol ;
   return ( iTime (Symb, TimeFrame, iBarShift (Symb, TimeFrame, time) - (NextBar ? 1 : 0 )));
 }
//--
datetime GetTimeDayOfWeek( int Shift = 0 , ENUM_DAY_OF_WEEK Day = SUNDAY ) {
 const datetime Res = TimeCurrent () / DAY * DAY;
 TimeToStruct (Res,Tm);
   return (Res - (((WEEK + (Tm.day_of_week - Day)) % WEEK) + Shift * WEEK) * DAY);
 }
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( void ) {
 static string _sym= NULL ;
 static int _arr= 0 ;
 if (_sym== NULL ) {
   datetime Arr[];
   for ( int i= 0 ;i< SymbolsTotal ( false );i++) {
   if ( StringFind ( SymbolName (i, false ), "EURUSD" , 0 )>- 1 ) {
    _sym= SymbolName (i, false );
     CopyTime (_sym, PERIOD_M15 , 1 , 500 ,Arr);
     if ( SymbolInfoInteger (_sym, SYMBOL_SELECT )== 0 ) SymbolSelect (_sym, true );
    _arr= ArraySize (Arr);
     break ;
   }
  }
   if (_sym== NULL ) Alert ( "Not Symbol EURUSD" );
 }
 if (_arr< 500 ) {_sym= NULL ; return ( 0 );}
 const datetime Sunday = GetTimeDayOfWeek();
   return ((( int ) MathRound (( double ) MathMin (Sunday-DAY-GetBarTime(Sunday, false ,_sym),Sunday+DAY-GetBarTime(Sunday, true ,_sym))/HOUR)- 0 )*HOUR);
 }
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
datetime TimeServer( void ) {
   return ( TimeCurrent ());
 }
// Серверное время
datetime TimeServerGMT() {
   return ( TimeCurrent () + TimeServerGMTOffset()+ TimeGMTOffset ());
 }
 
Vitaly Muzichenko :

작동, 3개의 다른 항목에서 테스트되었습니다. mt5에서 체크인

이것은 아마도 TC가 필요로 하는 것이 아니지만 아마도 그것에서 무언가를 취할 것입니다.

작동합니다 - 윙윙 거리는 의미에서 냉장고는 윙윙 거리지 않고 얼어야합니다. 그것은 잘못 작동하며 이것을 확신하기 위해 멀리 갈 필요가 없습니다.

사유: