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

 
fxsaber :

그림을 재현하는 방법?

제 생각에 그림은 모든 것을 매우 웅변적으로 보여줍니다.

  1. EURUSD가 있습니다.
  2. 짧은 이야기가 있습니다.
  3. 서버 및 GMT 시간 표시가 있습니다.
  4. 표시된 DC의 이름입니다.
  5. 그들 사이의 차이는 2이어야 하지만 실제로는 0입니다.
또 무엇이 필요합니까? 말해봐, 내가 할게.
 
fxsaber :

그러한 변경을 하면 쟁기질할 것입니다. 나는 여름과 겨울을 정의하지 않았지만 누군가는 그것을 다룰 수 있습니다.

첫째, "빼기 2"가 아니라 "더하기 2"입니다. 그런 다음 내 경우에는 수렴됩니다.

둘째, GMT에서 오프셋이 4시간인 서버의 경우 2 대신 4를 넣는 것이 좋습니다. 그런 다음 기능이 필요하지 않으며 처음에 알려진 번호를 입력하면 정답을 얻습니다. )))

 
Ihor Herasko :

또 무엇이 필요합니까? 말해봐, 내가 할게.

터미널을 통해 데모를 열어 연결할 수 있는 거래 서버의 코드와 이름.

 
Ihor Herasko :

첫째, "빼기 2"가 아니라 "더하기 2"입니다. 그런 다음 내 경우에는 수렴됩니다.

둘째, GMT에서 오프셋이 4시간인 서버의 경우 2 대신 4를 넣는 것이 좋습니다. 그런 다음 기능이 필요하지 않으며 처음에 알려진 번호를 입력하면 정답을 얻습니다. )))

당신은 내가하지 않은 진술을 나에게 돌린 다음 그것이 틀렸다고 말했습니다. 동시에 그들은 그것에 대해 농담을 시도했습니다.

 
Dmitry Fedoseev :

OrderSend() 함수가 "시장이 닫혔습니다" 오류(일부 그러한 오류가 있음)를 발견했을 때 우리는 모든 거래 작업을 중지하고 가격이 변경될 때까지 기다리며, 이는 시장이 열렸음을 의미합니다.

물론 아이디어가 도움이 될 수 있습니다. 불필요한 오류없이 시장을 폐쇄하는 방법에 대해 배우고 싶습니다. 생각해야 합니다.

 
Maxim Kuznetsov :
EURUSD의 마지막(23:59) 분이 아니라 금의 밤을 봐야 합니다. 금은 서버 시간의 통화인 암스테르담에서 엄격하게 거래됩니다. 여기에서 서버의 GMT 오프셋을 찾으십시오.

매일 23시 59분에 끝날 수는 없는 끔찍한 비밀을 공개합니다 :-) 하지만 언제 끝날지 미리 알 수 없을 수도 있습니다. 예를 들어 공휴일과 금요일.

 
fxsaber :

그러한 변경을 하면 쟁기질할 것입니다. 나는 여름과 겨울을 정의하지 않았지만 누군가는 그것을 다룰 수 있습니다.

이 솔루션은 팬케이크가 설치된 시스템을 업데이트하지 않는 시스템에서는 작동하지 않습니다 :-) 예를 들어 러시아 연방에서는 겨울에서 여름으로 전환할 시간이 아직 있습니다. 이런 시스템을 접했는데...

 
fxsaber :

터미널을 통해 데모를 열어 연결할 수 있는 거래 서버의 코드와 이름.

코드: https://www.mql5.com/ru/forum/327616/page3#comment_14093858

로그인: 12752745

투자자: yk2mkat

서버: Alpari 데모

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.02
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
fxsaber :

당신은 내가하지 않은 진술을 나에게 돌린 다음 그것이 틀렸다고 말했습니다. 동시에 그들은 그것에 대해 농담을 시도했습니다.

쓰지 않았어?

농담에 대해 - 농담이 아닙니다. 제시된 코드에서 0은 2로 변경됩니다. 실제 서버 시간과 예상 서버 시간의 불일치만큼 정확히. 따라서 나는 이 접근 방식에 놀랐습니다. 어떤 종류의 불일치가 필요한지 살펴보고 0 대신 원하는 오프셋을 넣습니다. 여기서 웃을 일이 없습니다.

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.03
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
Ihor Herasko :

코드: https://www.mql5.com/ru/forum/327616/page3#comment_14093858

로그인: 12752745

투자자: yk2mkat

서버: Alpari 데모

이호르 헤라스코 :

쓰지 않았어?

농담에 대해 - 농담이 아닙니다. 제시된 코드에서 0은 2로 변경됩니다. 실제 서버 시간과 예상 서버 시간의 불일치만큼 정확히. 따라서 나는 이 접근 방식에 놀랐습니다. 어떤 종류의 불일치가 필요한지 살펴보고 0 대신 원하는 오프셋을 넣습니다. 여기서 웃을 일이 없습니다.

확인 코드

 #property strict

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

datetime GetBarTime( const datetime time, const bool NextBar = false , string Symb = NULL , const ENUM_TIMEFRAMES TimeFrame = PERIOD_M1 )
{
   if (Symb == NULL )
    Symb = _Symbol ;
    
   return ( iTime (Symb, TimeFrame, iBarShift (Symb, TimeFrame, time) - (NextBar ? 1 : 0 )));
}

datetime GetTimeDayOfWeek( const int Shift = 0 , const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
   const datetime Res = TimeCurrent () / DAY * DAY;
  
   return (Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

// https://www.mql5.com/ru/forum/327616/page4#comment_14098877
// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
   const datetime Sunday = GetTimeDayOfWeek();
  
   return ((( int ) MathRound (( double ) MathMin (Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true )) / HOUR) - SummerTime - 2 ) * HOUR);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
datetime TimeServerGMT( void )
{
   return ( TimeCurrent () + TimeServerGMTOffset());
}

#define PRINT(A) Print ( #A + " = " + ( string )(A))

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
void OnStart ()
{  
  PRINT( TimeGMT ());
  PRINT(TimeServerGMT());  
}


Alpari와 동일한 GMT를 가진 시스템의 결과입니다.

 2019.12 . 03 19 : 28 : 09.048 Test5- 3 EURUSD,M1: TimeServerGMT() = 2019.12 . 03 17 : 28 : 12
2019.12 . 03 19 : 28 : 09.048 Test5- 3 EURUSD,M1: TimeGMT () = 2019.12 . 03 17 : 28 : 09


체크

AccountServer() = AMPGlobalUSA-Demo

모든 것이 올바르게 표시됩니다.

사유: