
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bence sorun, ilk kez start() öğesinin bir Gösterge için çağrılmasının yeni bir onay işaretinin sonucu olmayabileceğidir. . . bu durumda TimeCurrent() yanlış zamanı bildirir. Bunu doğrulamadım. . .
Bu durumda, ilk onay işaretini görmezden gelirdim. . . ve tik 2'den itibaren normal olarak devam edin.
Paul_B :
I'm plotting certain times on a chart which match to GMT, so it matters a great deal when trying to get the offset between MT4 server time and GMT.
<g> Henüz bu forumun kültürüne hakim olduğunuzu düşünmüyorum. Moderatörlerden ve forumun diğer uzun süreli kullanıcılarından gelen yanıtların sırası her zaman "Yanlış bir şey yapıyorsun" ve ardından "Bunu neden yapmak isteyesin?" şeklindedir. yanlış bir şey yapmadığınız ortaya çıktığında.
Yerinde olsaydım, IsConnected() yanlışsa start() çağrılarından çıkardım. Veya statik bir değişkende bir tik sayısını tutabilir ve 1 numaralı tik'i yok sayabilirsiniz, ancak bu, normal koşullar altında başlatmayı gereksiz yere geciktirir.
Bir gösterge için RaptorUK'un önerisini ikinci olarak yapacağım. İlk onay işaretini yoksayın ve ikincideki tüm çubukları güncelleyin.
Ayrıca tamamen beklenmedik değil. Göstergeler uyuyamadığından, bir EA kendi init'ine iCustom aracılığıyla bir gösterge yüklerse, gösterge başlatılıp başlatılıncaya kadar çağrı bir arabellek değeri döndüremez.
Cyclops993 girişi için teşekkürler, şu anda çalışmasını sağladım, ancak elimdeki ideal bir çözüm veya özellikle sağlam görünmüyor. IsConnected()'i biraz daha keşfedeceğim.
Fazla seçeneğin olduğunu sanmıyorum. MT4, göstergelerin çevrimdışı çizelgelerde doldurulmasını sağlamak için ve daha genel olarak göstergelerin MT4 yüklenir yüklenmez, bağlantı kurulmasını beklemeden çizelgelerde (yeniden) görünmesini istediğinden, start() işlevine sahte bir çağrı oluşturur.
Düzgün kurulmuş bir bağlantı ve geçerli bir TimeCurrent() olduğundan emin olmak istiyorsanız, o zaman AccountNumber() != 0 ve AccountBalance() > 0'a da bakabilirsiniz. Veya ikinci onay işaretini de bekleyebilirsiniz. ince likiditeye sahip sembollerde çok saniyelik gecikmelerin maliyeti.
Teşekkürler beyler, göstergeyi ikinci tik gelene kadar bekleyecek şekilde programlayacağım.
Bu arada, IsConnected() olasılığını araştırdım, ancak IsConnected() doğru olarak bildirildiğinde bile hala "yanlış" TimeCurrent() alıyordum.
<g> Henüz bu forumun kültürüne hakim olduğunuzu düşünmüyorum. Moderatörlerden ve forumun diğer uzun süreli kullanıcılarından gelen yanıtların sırası her zaman "Yanlış bir şey yapıyorsun" ve ardından "Bunu neden yapmak isteyesin?" şeklindedir. yanlış bir şey yapmadığınız ortaya çıktığında.
Yerinde olsaydım, IsConnected() yanlışsa start() çağrılarından çıkardım. Veya statik bir değişkende bir tik sayısını tutabilir ve 1 numaralı tik'i yok sayabilirsiniz, ancak bu, normal koşullar altında başlatmayı gereksiz yere geciktirir.
Bir kullanıcı sorunu göstermek için test kodu sağlamazsa [...]
OP'de yanlış veya eksik bir şey yoktu. Paul_B'nin MT4 belgelerine göre gayet makul bir şekilde start() öğesinin yalnızca yeni tiklere yanıt olarak çağrıldığını varsaydığı açıktı. ( Neden TimeCurrent()'i kontrol etmek istedi, bir fark yaratmıyor ve aslında bizi ilgilendirmez.)
El kitabının bu alanda açıkça eksik olmasına rağmen yanıtınız temelde RTFM'nin güzel bir versiyonuydu [bunun alışılmadık olduğunu vurgulayacağım; MT4 belgelerinin kalitesi oldukça iyi]. Angevoyageur'un yanıtı, bunu, ne kadar hafif olursa olsun, MT4'ün herhangi bir eleştirisine patolojik olarak duyarlı yanıtların bir modelinin parçası gibi görünen bir yaygara olarak tanımlamaktı. WHRoeder daha sonra "bunu yapmak istemezsin" ile girdi, ardından Paul_B bir GMT ofsetinin nasıl hesaplanacağını açıkça bildiği için açıkça alakasız olan bazı kodları kopyalayıp yapıştırdı.