[SERVICE DESK] Zamanlayıcıda kıdemli TF'nin zamanı alınırken hata oluştu! - sayfa 14

 
Şimdi birkaç kez sürmesine rağmen. Eğlenceli, ama her zaman çalışmıyor. Bazen bağlantı kurulamayabilir.
Kendimle iyi bir bağlantım var. Belki de nedeni budur.
 
Ancak bu testle birlikte bir şey daha fark ettim. Şimdi sayma geçişleriyle koşarken bile, bugün bile OnCalculate üzerinden 10 geçiş alıyorum. Göstergenin başlangıcında küçük bir gecikme yapmanız sizin için en iyi seçenek gibi görünüyor.
 
Konstantin Nikitin :
Ancak bu testle birlikte bir şey daha fark ettim. Şimdi sayma geçişleriyle koşarken bile, OnCalculate aracılığıyla 10 alıyorum. Göstergenin başlangıcında küçük bir gecikme yapmanız sizin için en iyi seçenek gibi görünüyor.

Koltuk değneği çözümüne gerek yok, bir kez daha tekrar ediyorum. Mevcut davranış bana uymuyor, geliştiricilerin kendileri tarafından verilen tavsiyeler çalışmıyor. Böyle anlar şansa bırakılırsa, bundan iyi bir şey çıkmaz. Bir sorun vardı, geliştiriciler tarafından çözülmesi gerekiyor.

 
Alexey Kozitsyn :

Koltuk değneği çözümüne gerek yok, bir kez daha tekrar ediyorum. Mevcut davranış bana uymuyor, geliştiricilerin kendileri tarafından verilen tavsiyeler çalışmıyor. Böyle anlar şansa bırakılırsa, bundan iyi bir şey çıkmaz. Bir sorun vardı, geliştiriciler tarafından çözülmesi gerekiyor.

Sana gördüklerimi anlattım. Ve bunun hakkında nasıl düşünmeli. Yani kimse için uygun değil, ilk geçişlerin takibi vb. çıkacak.

 
Konstantin Nikitin :

Sana gördüklerimi anlattım. Ve bunun hakkında nasıl düşünmeli. Yani kimse için uygun değil, ilk geçişlerin takibi vb. çıkacak.

Sanırım böyle "ince" yerlerde test edilmiş, hata numaralarıyla (her istek üzerine kurcalama) doğru çalışan veya bir tür ek mekanizmaya ihtiyacımız var. geçmiş erişim işlevlerini kontrol edin (bu tür sorunları saatlerce aramamak için tam olarak yerleşik). Ve bu mekanizma belgelerde ayrıntılı olarak açıklanmalıdır. O zaman geliştiricilere soru sorulmayacak. Şimdi nasıl? Belgelerde eski TF'lerden verilere erişimle ilgili hiçbir şey yok, bu nedenle geliştiricilerin kendileri verileri nasıl alacaklarını bilmiyorlar. Sadece aynı mantıkla sakallı yılların forumuna bazı bağlantılar var.

 
Sunucu ile arasındaki farkı saatlerce biliyorsanız. Geçerli yerel saatin son saatlik barın açılış saati ile karşılaştırmasını kullanabilirsiniz. TimeCurrent çalışmayacak, çünkü zaman güncellenmeyebilir.
Bunun gibi bir şey
     MqlDateTime mqlDateTime;
     TimeToStruct ( (TimeLocal ()-60*3), mqlDateTime );
     mqlDateTime.min = 0 ;
     mqlDateTime.sec = 0 ;
     
     if ( IsConnected () )
           Comment ( TimeToString ( iTime ( Symbol (), PERIOD_H1 , 0 ) ), "\n" , TimeToString ( StructToTime (mqlDateTime) ) );
 
Alexey Kozitsyn :

Bu arada, terminalin versiyonuyla ilgili soruyu cevaplamadınız.

terminal 1121 ve 1090

Alexey Kozitsyn :

Sunucuya bağlantı kuruldu. Üst düzey bir TF'den veri talep ederken, veriler hazır değilse - bir hata veya 0 döndürür. Veriler hazırsa - SADECE gerçek verileri döndürür. Herşey. Veriler uzun süre hazır değilse bize bir hata veya 0 döndürmesine izin verin.

Burada hata yok. Bir bağlantı var, geçmiş verileri var.
Halihazırda terminalde bulunan veriler anında görüntülenir.
Yeni veriler gecikmeli olarak gelir, çünkü aracıya bir istek göndermeniz ve eksik bir şey varsa yüklemeniz gerekir.

Yeni veriler ortaya çıkar çıkmaz hemen bir onay işareti oluşturulur (piyasa kapalıyken bile şimdi).
Sadece bir güncelleme olup olmadığını kontrol etmeniz gerekiyor - yeni bir çubuğun görünümü ve değişkenlerinizi kendiniz değiştirin.

not. MT4'te veri alaka düzeyi bayrağı yoktur.

 
Taras Slobodyanik :

terminal 1121 ve 1090

Burada hata yok. Bir bağlantı var, geçmiş verileri var.
Halihazırda terminalde bulunan veriler anında görüntülenir.
Yeni veriler gecikmeli olarak gelir, çünkü aracıya bir istek göndermeniz ve eksik bir şey varsa yüklemeniz gerekir.

Yeni veriler ortaya çıkar çıkmaz hemen bir onay işareti oluşturulur (piyasa kapalıyken bile şimdi).
Sadece bir güncelleme olup olmadığını kontrol etmeniz gerekiyor - yeni bir çubuğun görünümü ve değişkenlerinizi kendiniz değiştirin.

not. MT4'te veri alaka düzeyi bayrağı yoktur.

Dediğim gibi, güncellenen terminalde tekrar denemek gerekecek.

Kontrol edilemeyen davranışlara kesinlikle katılmıyorum. Hatasız bir işlev yanlış veri döndürür - bu yanlıştır. O zaman kendiniz de böyle bir durumla karşılaşacaksınız ve sorunun ne olduğunu merak edeceksiniz.

Diyelim ki, işlev önce bir hata döndürdü. Gittiler. Sonraki istekte, işlev bir hata döndürmedi ve bazı "sol" verileri döndürdü. Bu iyi?

 

Geçersiz veri ne anlama geliyor?

Hiçbiri olmadığında veya bağlantı olmadığında veya başka bir şey olduğunda - o zaman evet, bir hata oluşur.
Ve sayılacak bir şey yok.

Tüm veriler doğru olduğunda, her şey yolundadır ve her şey başlar.

Göstergeniz veri güncellemelerini izlemiyor.
Komisyoncudan yeni çubuklar gelir, ancak onları kontrol etmezsiniz.
Kontrol edildiğinde her şeyin doğru görüntülendiğini göstermek için birkaç satır ekledim.

Bu bir çalışma durumu - yeni bir çubuğu kontrol etmek.

 
Taras Slobodyanik :

Geçersiz veri ne anlama geliyor?

Ve ilk mesajıma bakın. Orada 4066 hatasını görüyor musunuz? Ardından 0 hatası ve yanlış verilerin döndürülmesi. İşlev (bu durumda SeriesInfoInteger() ) verileri göndermeden önce neden geçerliliğini kontrol etmiyor? Neden hata bayrağını kaldırmıyor? Görüyorsunuz, hataları daha sonra aramak yerine, dahili kontrollerin geçmesi için biraz daha beklemek daha iyidir.

Ancak ondan sonra, sonucun alınmadığı birçok tavsiye verildi. Ve zamanlayıcıda bile ortaya çıkmadı.

Neden: