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

 
Vitaly Gorbunov :
Pekala, bunun bir koltuk değneği olduğunu söyleyemem. Sunucudan bir teklif akışı bekliyorum, aksi takdirde geçmiş güncellenmeyecek. Başka bir seçenek de, bilgisayarın yerel saatini alarak, otomatik olarak hesaplanabilen ve sonunda fiyatların güncellenmesini bekleyen saat dilimi için bir düzeltme girmektir. Evet, biraz çarpık ama Metaquotes'ın MT4'te hiçbir şeyi değiştireceğini düşünmüyorum. Sonunda, bu, şu veya bu şekilde ele alınması gereken sunucuya bir bağlantı sorunudur.

Burada. Ve bunun bir sorun olduğunu anladınız! Ancak düzeltilmesi gerektiğini ve/veya sertifikanın her durum için bir algoritma ile desteklenmesi gerektiğini düşünüyorum.

Veri alma işlevi, hatasız ve uyarısız kalan verileri üretmemelidir!

Bu benim ilk konu değil (bir önceki konu MT5 ile ilgiliydi, hala anlaşılır cevaplar alamadım) senkronizasyon ve sonraki donmalar/hatalar hakkında.

 
Alexey Kozitsyn :

Evet, bu işe yarıyor gibi görünüyor. Alternatif olarak kullanabilirsiniz. Teşekkür ederim! Ancak, yine de, işlevlerin normal çalışmasını istiyorum.

Yalnızca kaçırılan çubuklar yoksa çalışır - ve böyle bir garanti olamaz. Mevcut saat için (ve belki bir önceki saat için de) sunucuda yeni alıntı olmadığını varsayalım. Buna göre, son çubuk bir önceki çubuktur.

 
Ihor Herasko :

Doğrulama yaklaşımınızda iki önemli hata var:

  1. Göstergenin OnInit()'inde, mevcut olan bile olsa herhangi bir TF'nin doğru verilerini almak imkansızdır. Terminalin başlangıcındaki göstergenin OnInit()'i pratik olarak boş bir pencerede yürütülür (terminal kapatıldığında orada bulunan veriler bile olmayabilir). Pazar ortamı bile çoğu zaman henüz mevcut değildir. OnInit()'te ne yapılmaması gerektiği konusunda yardımda birçok uyarı var. Bu nedenle, koduna dahil edilebilecek çok az şey vardır. Genellikle bu, ayarların değerlerini kontrol etmek, gösterge arabelleklerini dizilere bağlamak ve varsa sınıfları oluşturmaktır. Diğer her şey OnCalculate() içinde yapılmalıdır.
  2. Tüm bu kontroller ancak OnCalculate en az bir kez çağrıldıktan sonra yapılabilir.

1. Igor, koda baktın mı? OnInit() içinde bir şeyi nereden edinebilirim?

2. Kontroller nelerdir? Doğru işlem için göstergenin OnCalculate()'i en az bir kez kullanması gerektiği nerede yazıyor?

 
Alexey Navoykov :

Yalnızca kaçırılan çubuklar yoksa çalışır - ve böyle bir garanti olamaz. Mevcut saat için (ve belki bir önceki saat için de) sunucuda yeni alıntı olmadığını varsayalım. Buna göre, son çubuk bir önceki çubuktur.

Bu (dediğim gibi, bir koltuk değneği) çözüm şimdiye kadar hiç olmamasından iyidir. Dediğim (ve kanıtladığım) gibi, bir hata var. Geliştiriciler ne kadar erken düzeltirse o kadar iyi.

 
Böylece sol veriyi vermez, son alınan veriyi verir ve terminal alıntı akışını almaya başlayana kadar hata oluşmaz. Sizin durumunuzda, alıntılar bitmeden veri almaya çalışıyorsunuz, programcı bu tür istisnai durumları kendi başına halletmelidir. İletişimdeki herhangi bir kesintinin yanı sıra. Ve MT5'in okuması çok ilginç olan sorun nedir?
 
Alexey Navoykov :

Yalnızca kaçırılan çubuklar yoksa çalışır - ve böyle bir garanti olamaz. Mevcut saat için (ve belki bir önceki saat için de) sunucuda yeni alıntı olmadığını varsayalım. Buna göre, son çubuk bir önceki çubuktur.

iBarShift ile alım, geçmişteki delikleri tanımlamanıza izin verir, ancak bunun için belirli aralıklarla yün atmanız gerekir. Bunu yapan kendime bir prosedür yazdım, ondan sonra MTF programlarındaki boşlukları unuttum.
 
Vitaly Gorbunov :
Böylece sol veriyi vermez, son alınan veriyi verir ve terminal alıntı akışını almaya başlayana kadar hata oluşmaz. Sizin durumunuzda, alıntılar bitmeden veri almaya çalışıyorsunuz, programcı bu tür istisnai durumları kendi başına halletmelidir. İletişimdeki herhangi bir kesintinin yanı sıra. Ve MT5'in okuması çok ilginç olan sorun nedir?

Peki, e-may... Bu analiz aşamasını çoktan geçtik. Kendi günlüğünüzü görün:

 2018.09 . 21 15 : 02 : 42.910 Custom indicator test XAUUSD,H1: removed
2018.09 . 21 15 : 15 : 27.985 test XAUUSD,H1: initialized
2018.09 . 21 15 : 15 : 29.520 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.552 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.589 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.605 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.636 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.667 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.705 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.736 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.768 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.805 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.837 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.868 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.906 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.937 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 29.969 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.006 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.038 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.069 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.106 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.138 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 30.169 test XAUUSD,H1: OnTimer : Связь отсутствует!
2018.09 . 21 15 : 15 : 31.880 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 4066
2018.09 . 21 15 : 15 : 31.900 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 31.940 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 31.990 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 32.010 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 32.074 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 32.100 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 32.120 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0
2018.09 . 21 15 : 15 : 32.174 test XAUUSD,H1: test.mq4: Данные истории по последнему часу отсутствуют! Ошибка # 0

müteakip. Önce bağlantıyı kontrol edelim. Bağlantı kurulur kurulmaz, zamanı alırız . Lütfen bana açıklayın, neden önce 4066 hatası döndürülüyor ve sonra döndürülmüyor!? Son aramadan bu yana 20ms içinde ne değişti?

 
Vitaly Gorbunov :
Ve MT5'in okuması çok ilginç olan sorun nedir?

https://www.mql5.com/ru/forum/219829

Клинч в индикаторах mql5.
Клинч в индикаторах mql5.
  • 2017.11.15
  • www.mql5.com
Недавно столкнулся с одной крайне неприятной проблемой...
 
Alexey Kozitsyn :

Bu (dediğim gibi, bir koltuk değneği) çözüm şimdiye kadar hiç yoktan iyidir. Dediğim (ve kanıtladığım) gibi, bir hata var. Geliştiriciler ne kadar erken düzeltirse o kadar iyi.

Pekala, en iyi koltuk değneği hakkında konuşursak, o zaman sadece mevcut saati değil, aynı zamanda bilinen son çubuktan bu yana geçen tüm saatleri de kontrol etmeniz gerekir. Aksi takdirde, geçerli saat için herhangi bir fiyat teklifi yoksa bu çeke takılıp kalırsınız.
 
Alexey Kozitsyn :

Peki, e-may... Bu analiz aşamasını çoktan geçtik. Kendi günlüğünüzü görün:

müteakip. Önce bağlantıyı kontrol edelim. Bağlantı kurulur kurulmaz, zamanı alırız. Lütfen bana açıklayın, neden önce 4066 hatası döndürülüyor ve sonra döndürülmüyor!? Son aramadan bu yana 20ms içinde ne değişti?

Veriler 4066 hatasıyla yüklenir, ardından meta alıntılar yapılamaz, büyük olasılıkla alınan veriler bu durum için işlenir, hata icat edilmedi. Ve bu noktaya kadar her şey mantıklı.
Neden: