MT4 için TimeTradeServer analogu - sayfa 5

 
fxsaber :

Çizim nasıl çoğaltılır?

Benim düşünceme göre, resim her şeyi çok anlamlı bir şekilde gösteriyor:

  1. EURUSD var.
  2. Kısa bir hikaye var.
  3. Sunucu ve GMT zaman göstergeleri vardır.
  4. Belirtilen DC'nin adı.
  5. Aralarındaki fark 2 olmalı, ama aslında - 0.
Başka ne gerekiyor? Söyle bana, yapacağım.
 
fxsaber :

Böyle bir değişiklik yapın ve pulluk yapacak. Ben yaz ve kış tanımını yapmadım, biri halledebilir.

Birincisi, "eksi 2" değil, "artı 2". Sonra benim durumum için birleşiyor.

İkincisi, GMT'den 4 saat uzaklığı olan bir sunucu için 2 yerine 4 koymayı önerir misiniz? O zaman fonksiyona gerek kalmaz, başlangıçta bilinen numarayı koyarsınız ve doğru cevabı alırsınız. )))

 
Ihor Herasko :

Başka ne gerekiyor? Söyle bana, yapacağım.

Demoyu terminal üzerinden açarak bağlanabileceğiniz ticaret sunucusunun kodu ve adı.

 
Ihor Herasko :

Birincisi, "eksi 2" değil, "artı 2". Sonra benim durumum için birleşiyor.

İkincisi, GMT'den 4 saat uzaklığı olan bir sunucu için 2 yerine 4 koymayı önerir misiniz? O zaman fonksiyona gerek kalmaz, başlangıçta bilinen numarayı koyarsınız ve doğru cevabı alırsınız. )))

Bana yapmadığım bir ifadeyi atfettin ve sonra bunun yanlış olduğunu söyledin. Aynı zamanda, bu konuda şaka yapmaya çalıştılar.

 
Dmitry Fedoseev :

OrderSend() işlevi "piyasa kapalı" hatasıyla karşılaştığından (bazıları vardır), işlem yapma girişimlerini durdurur ve fiyatın değişmesini bekleriz, bu da piyasanın açıldığı anlamına gelir.

Elbette fikri yardımcı olabilir, gereksiz hatalar olmadan piyasanın kapanmasını öğrenmek istiyorum. Düşünmek gerek.

 
Maxim Kuznetsov :
EURUSD'de son (23:59) dakikayı değil, altın gecesini aramanız gerekir. Altın kesinlikle Amsterdam'da, para birimleri sunucu saatinde işlem görür. Buradan sunucunun GMT ofsetini bulun

Korkunç bir sır ortaya çıkaracağım, her gün 23:59'da bitemez :-), ama ne zaman biteceğini önceden bilemeyiz. Örneğin, tatillerde ve Cuma günleri.

 
fxsaber :

Böyle bir değişiklik yapın ve pulluk yapacak. Ben yaz ve kış tanımını yapmadım, biri halledebilir.

Pancake'in sistemi kurulduğu gibi güncellemediği sistemlerde çözüm çalışmayacaktır :-) Örneğin, Rusya Federasyonu'nda kıştan yaza geçmek için hala zaman var. Bu sistemlere rastladım...

 
fxsaber :

Demoyu terminal üzerinden açarak bağlanabileceğiniz ticaret sunucusunun kodu ve adı.

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

Giriş: 12752745

yatırımcı: yk2mkat

Sunucu: Alpari Demo

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

Bana yapmadığım bir ifadeyi atfettin ve sonra bunun yanlış olduğunu söyledin. Aynı zamanda, bu konuda şaka yapmaya çalıştılar.

yazmadın

Şakalar hakkında - şaka yok. Sunulan kodda 0, 2 olarak değiştirilmiştir. Tam olarak gerçek ve tahmini sunucu süresi arasındaki tutarsızlığı aldığım kadar. Bu nedenle, bu yaklaşım beni şaşırttı: ne tür bir tutarsızlık gerektiğine bakıyoruz ve 0 yerine istenen ofseti koyuyoruz. Burada gülünecek bir şey yok.

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

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

Giriş: 12752745

yatırımcı: yk2mkat

Sunucu: Alpari Demo

Ihor Herasko :

yazmadın

Şakalar hakkında - şaka yok. Sunulan kodda 0, 2 olarak değiştirilmiştir. Tam olarak gerçek ve tahmini sunucu süresi arasındaki tutarsızlığı aldığım kadar. Bu nedenle, bu yaklaşım beni şaşırttı: ne tür bir tutarsızlık gerektiğine bakıyoruz ve 0 yerine istenen ofseti koyuyoruz. Burada gülünecek bir şey yok.

Doğrulama kodu

 #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 ile aynı GMT'ye sahip bir makinede sonuç.

 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


kontrol

AccountServer() = AMPGlobalUSA-Demo

Her şey doğru gösteriyor.