Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 74

 
Vitaly Muzichenko :

Bir tatil olduğu için teklif olmadığını veya örneğin, sunucu ticarette donmuş olduğu için tekliflerin Perşembe günü gitmediğini nasıl öğrenebilirim?

İzin gününün gerçekliğini yerel saate göre belirleyebilirsiniz.

Ancak sunucunun GMTOffset hesaplaması yalnızca OnTick'te yapılmalıdır. Tik gelene kadar sunucu saatini hesaplamalarda kullanmıyoruz. Çoğu durumda, bu gerçekten gerekli değildir.

Son çare olarak, hafta sonu GMTOffset gerekliyse, kullanıcıya bir mesaj gönderin ve muhtemelen sunucunun GMTOffset'ini ondan isteyin.

 
Forex sembollerinde GMTOffset, işlem haftasının kapanış/açılış saatine göre belirlenebilir. Sonuçta , bu olayın yerel saati biliniyor.
 
Ihor Herasko :

İzin gününün gerçekliğini yerel saate göre belirleyebilirsiniz.

Ancak sunucunun GMTOffset hesaplaması yalnızca OnTick'te yapılmalıdır. Tik gelene kadar sunucu saatini hesaplamalarda kullanmıyoruz. Çoğu durumda, bu gerçekten gerekli değildir.

Son çare olarak, hafta sonu GMTOffset gerekliyse, kullanıcıya bir mesaj gönderin ve muhtemelen sunucunun GMTOffset'ini ondan isteyin.

fxsaber :
Forex sembollerinde GMTOffset, işlem haftasının kapanış/açılış saatine göre belirlenebilir. Sonuçta, bu olayın yerel saati biliniyor.

Cumartesi ve Pazar günleri sunucu saatini bilmiyoruz, yalnızca son teklifin alınma saatini biliyoruz. Sunucunun hangi saat diliminde çalıştığı da bilinmiyor.

Sunucunun o anki saatini gösterecek bir fonksiyon eksikliği var, buna benzer bir şey: TimeServer (); o zaman sunucu zamanının son teklifin zamanından daha büyük olduğunu her zaman bilebilirsiniz, bu da bir gün izinli olduğu veya donmuş olduğu anlamına gelir. GMTOffset bizi kurtarmaz.

Not: Soru sadece forex sembolleriyle ilgili değil.
 
Vitaly Muzichenko :

Cumartesi ve Pazar günleri sunucu saatini bilmiyoruz, yalnızca son teklifin alınma saatini biliyoruz. Sunucunun hangi saat diliminde çalıştığı da bilinmiyor.

Forex için yukarıda belirtildiği gibi çözülür.

 
Vitaly Muzichenko :

Cumartesi ve Pazar günleri sunucu saatini bilmiyoruz

Bunun için yerel saat bilinmektedir.

, biz sadece son teklifin alınma zamanını biliyoruz. Sunucunun hangi saat diliminde çalıştığı da bilinmiyor.

Sunucunun o anki saatini gösterecek bir fonksiyon eksikliği var, buna benzer bir şey: TimeServer (); o zaman sunucu zamanının son teklifin zamanından daha büyük olduğunu her zaman bilebilirsiniz, bu da bir gün izinli olduğu veya donmuş olduğu anlamına gelir. GMTOffset bizi kurtarmaz.

Yerel saati bildiğiniz için tahmin etmenize bile gerek yok. Üzerinde izin gününün şimdi olup olmadığını belirleriz. Ve GMTOffset sunucusunu bilmek, sunucu zamanını hesaplamayı mümkün kılar. TimeServer() işlevinin kullanışlı olacağına itiraz etmiyorum. Ancak, onsuz bile şimdi çıkabilirsiniz.

 
Ihor Herasko :

Bunun için yerel saat bilinmektedir.

Yerel saati bildiğiniz için tahmin etmenize bile gerek yok. Üzerinde izin gününün şimdi olup olmadığını belirleriz. Ve GMTOffset sunucusunu bilmek, sunucu zamanını hesaplamayı mümkün kılar. TimeServer() işlevinin kullanışlı olacağına itiraz etmiyorum. Ancak, onsuz bile şimdi çıkabilirsiniz.

Sunucu zamanı değil.

Документация по MQL5: Дата и время / TimeGMTOffset
Документация по MQL5: Дата и время / TimeGMTOffset
  • www.mql5.com
Возвращает текущую разницу между временем GMT и локальным временем компьютера в секундах с учетом перехода на зимнее или летнее время. Зависит от настроек времени на компьютере пользователя.
 
Vitaly Muzichenko :

Sunucu zamanı değil.

TimeLocal() hakkında konuşuyorum. Doğal olarak TimeGMTOffset'e de ihtiyacımız var. Aynı anda keneler varsa ServerGMTOffset'i sorunsuz hesaplıyoruz. EA en az bir gerçek onay aldıysa, TimeLocal() kullanarak mevcut sunucu zamanını hesaplayabildiğinden, hafta sonlarından korkmaz.

Sorun, danışman kene gelmeden çalışmaya başladığında ortaya çıkar. Bu durumda artık tatil olup olmadığını belirlemeniz gerekiyor. Eğer tatil ise, sunucunun gerçek zamanı ile ilgili tüm hesaplamaların hafta sonu sonuna kadar ertelenmesi gerekecektir. Hesaplamaları hafta sonu yapmak gerçekten gerekliyse, kullanıcıdan ServerGMTOffset belirtmesini isteriz. Bu verileri alıp TimeLocal() ve TimeGMTOffset() kullanarak sunucunun o anki saatini alıyoruz.

 
Ihor Herasko :

TimeLocal() hakkında konuşuyorum. Doğal olarak TimeGMTOffset'e de ihtiyacımız var. Aynı anda keneler varsa ServerGMTOffset'i sorunsuz hesaplıyoruz. EA en az bir gerçek onay aldıysa, TimeLocal() kullanarak mevcut sunucu zamanını hesaplayabildiğinden, hafta sonlarından korkmaz.

Sorun, danışman kene gelmeden çalışmaya başladığında ortaya çıkar. Bu durumda artık tatil olup olmadığını belirlemeniz gerekiyor. Eğer tatil ise, sunucunun gerçek zamanı ile ilgili tüm hesaplamaların hafta sonu sonuna kadar ertelenmesi gerekecektir. Hesaplamaları hafta sonu yapmak gerçekten gerekliyse, kullanıcıdan ServerGMTOffset belirtmesini isteriz. Bu verileri alıp TimeLocal() ve TimeGMTOffset() kullanarak sunucunun o anki saatini alıyoruz.

Aynen öyle. Danışmanı "kene yok" sırasında çizelgeye asarız. Herhangi bir şey olabilir ve hatta bir gün izinli olabilir.

Seans/piyasa kapandıktan 15 dakika sonra, 15 dakika önceki son onay saatimiz var (EA bunu bilmiyor, ama biz de bilmiyoruz), ancak sunucu ne zaman çalışıyor? Gerçekten 15 dakika önce, ya da belki 1h15m veya 3h15m. geri?

 
Vitaly Muzichenko :

Aynen öyle. Danışmanı "kene yok" sırasında çizelgeye asarız. Herhangi bir şey olabilir ve hatta bir gün izinli olabilir.

Seans/piyasa kapandıktan 15 dakika sonra, 15 dakika önceki son onay saatimiz var (EA bunu bilmiyor, ama biz de bilmiyoruz), ancak sunucu ne zaman çalışıyor? Gerçekten 15 dakika önce, ya da belki 1h15m veya 3h15m. geri?

Vitaly, saat dilimleri birbirinden en az 1 saat farklıdır. Daha doğrusu, 1 saatin katları. Buna göre, fark bir saatten fazla ise, o zaman bir şey olmuştur.

Daha spesifik olarak, OnInit'te yerel ve sunucu zamanı arasındaki farkı alabilir, ardından bunu mevcut farkla karşılaştırabilirsiniz. Genel olarak, bir amatör için seçenekler.

 
Alexey Viktorov :

Vitaly, saat dilimleri birbirinden en az 1 saat farklıdır. Daha doğrusu, 1 saatin katları. Buna göre, fark bir saatten fazla ise, o zaman bir şey olmuştur.

Daha spesifik olarak, OnInit'te yerel ve sunucu zamanı arasındaki farkı alabilir, ardından bunu mevcut farkla karşılaştırabilirsiniz. Genel olarak, bir amatör için seçenekler.

Danışmanı Cumartesi günü çizelgeye asıyorum, ancak danışman son tik saatini alabilir, örneğin, Piyasa İzleme 23:58'de ve yerel saatim 04:45'te. Sunucu Saati bilmiyorum.

Soru: Sunucu (terminal) zamanındaki son işaretten bu yana ne kadar zaman geçti

Neden: