Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 239
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
Bir sembolün veri içerip içermediğini nasıl öğrenebilirim, böylece içermiyorsa [Piyasa İzleme] penceresinde bırakmam?
SymbolInfoTick.
SymbolInfoTick.
Bu seçeneği denedim. Ne yazık ki çalışmıyor. Bir sembol [Market Watch] penceresine ilk kez eklenirse, henüz üzerinde veri yoktur ve SymbolInfoTick null değerler döndürür.
CopyXXX fonksiyonlarını da test ettim, ancak bir zaman aşımı yok ve sunucudan veri bekleme süreci yaklaşık 45 saniye sürüyor, bu çok uzun.
Bir karakterin kullanılamaz olup olmadığını öğrenmek için hızlı bir yola ihtiyacım var. Bunun gibi durumlardan bahsediyorum:
//---
Bu tür sembollerin sunucuda verileri yoktur ve [Piyasaya Genel Bakış] penceresine eklenmemeleri veya eklenmişlerse listeden çıkarılmaları için onları tanımlamanın bir yoluna ihtiyaç vardır.
Not: Belki de[ Piyasa İzleme] penceresinde sembolleri listeden kaldırma kilidini kaldırmanın bir yolu vardır?
Bu seçeneği denedim. Ne yazık ki çalışmıyor. Bir sembol [Market Watch] penceresine ilk kez eklenirse, henüz üzerinde veri yoktur ve SymbolInfoTick null değerler döndürür.
Elle çalışan semboller elde etmek kolaydır.
Bu seçeneği denedim. Ne yazık ki çalışmıyor. Bir sembol [Market Watch] penceresine ilk kez eklenirse, henüz üzerinde veri yoktur ve SymbolInfoTick null değerler döndürür.
CopyXXX işlevlerini de test ettim, ancak zaman aşımı yok ve sunucudan veri bekleme işlemi yaklaşık 45 saniye sürüyor, bu çok uzun.
Bir karakterin kullanılamaz olup olmadığını öğrenmek için hızlı bir yola ihtiyacım var. Bunun gibi durumlardan bahsediyorum:
//---
Bu tür sembollerin sunucuda hiçbir verisi yoktur ve [Piyasa İzleme] penceresine eklenmemeleri veya eklenmişlerse listeden çıkarılmaları için bunları tanımlamanın bir yoluna ihtiyaç vardır.
Not: Belki de[Market Watch] penceresindeki listeden sembolleri kaldırma kilidini kaldırmanın bir yolu vardır?
Yaklaşık 6 yıldır bununla mücadele ediyorum ve geliştiricilerden burada işleri düzene koymalarını istiyorum.
Ne yazık ki, bu sorun çözülmedi ve şu anda herhangi biri bir finansal araca ilk kez eriştiğinde terminalin kilitlendiği durumlar var.
Bir sembolün veri içerip içermediğini nasıl öğrenebilirim, böylece içermiyorsa [Piyasa İzleme] penceresinde bırakmam?
Böyle bir kontrolü bir döngü içinde kullanıyorum:
Ancak bundan sonra, Uzman Danışman grafik üzerindeyken sembolleri [Market Watch] penceresinden tek tek veya hepsini birden manuel olarak kaldıramıyorum:
Son alıntının zamanını kontrol etmeyi deneyin.
Eğer 0 ise veri yok demektir.
Az önce açık grafiklere göre kontrol ettim.
Sunucular arasında geçiş yaparak ek veri almak mümkün. Bunu kod aracılığıyla uygulamanın mümkün olup olmadığını bilmiyorum.
"Sunucular arasında" derken "brokerlar arasında" demek istiyorsanız, profillerle oynamaya çalışmadığınız sürece pek mümkün değil.
Ancak bir brokerın farklı sunucuları arasında geçiş yapmam gerekseydi (Open'da çok sayıda, Finam'da iki tane vardı), bunu iptables/nftables ve bash komut dosyalarım aracılığıyla yapardım. Ama burada benim için daha kolay, Linux'um var.
Eğer "sunucular arasında" derken "brokerlar arasında" demek istiyorsanız.
.
Evet, prensipte bu mümkündür.
Ancak, MQL programından sunucunun adını ve ip'sini öğrenmenin bir yolu olmadığından, sunucuları değiştirerek ve bağlantının hangi ip'ye gittiğini kontrol ederek bunları manuel olarak bulmanız gerekecektir.
Daha sonra, güvenlik duvarının yapılandırmasında değişiklikler yaparak, bazı sunuculara bağlantıyı yasaklamak (burada zaman aşımını önlemek için paketleri düşürmek değil, yeniden paketlemek gerekir) ve MT'yi başka bir sunucuya geçmeye zorlamak mümkündür.
Tekrar ediyorum, bunu Linux altında yapmak benim için zor değil, ancak Windows'ta nasıl yapılacağını hayal edemiyorum.
Son alıntının zamanını kontrol etmeyi deneyin.
0 ise veri yok demektir.
Az önce açık grafiklere baktım.
Bu aynı zamanda benzer bir durum için de geçerlidir:
Keneler nadiren gelirse, bu tür tüm semboller hariç tutulacaktır.
Elle çalışan semboller elde etmek kolaydır.
Hayır. Tam otomatiğe ihtiyacınız var.
Zaten 6 yıldır bununla mücadele ediyorum ve geliştiricilerden buraya bir düzen getirmelerini istiyorum.
Ne yazık ki bu sorun çözülmüş değil ve şu anda herhangi biri bir finansal araca ilk kez eriştiğinde terminalin kapandığı durumlar var.
Bunu sadece aşağıdaki fonksiyonları çağırırken fark ettim:
//---
Terminal geliştiricileri:
1. Ticaret sunucusunda veri olmadan sembol ekleme olasılığını hariç tutun.
2. Market Watch] penceresinden sembol silme engellemesini devre dışı bırakmayı mümkün kılın veya bir hata ise düzeltin. Şimdi sadece terminali yeniden başlatarak yapılabilir.
3. CopyXXX gibi işlevler için, zaman aşımını (sunucudan veri beklemek için maksimum süre) ayarlamak için ek bir isteğe bağlı parametre ekleyin.
Bunu şu anda yeniden üretemiyorum. Şimdiye kadar gecikme olmadan çalışıyor. Ancak bazı durumlarda olabiliyor gibi görünüyor.
4. Aşağıdaki durumlarda Bars(), iBars(), SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT) fonksiyonlarını kullanırken sonsuz bekleme ile ilgili hatayı düzeltin:
Programı çizelgeden silme girişimi terminalin birkaç dakika boyunca kilitlenmesine neden olabilir.
5. Sunucuya bağlantı yoksa fonksiyonları kullanırken sonsuz bekleme ile ilgili hata düzeltildi:
Bu durumda, zaman aşımını (sunucudan veri beklemek için maksimum süre) ayarlamak için isteğe bağlı ek bir parametre de ekleyebilirsiniz.
//---
Not: Şimdiye kadar CopyXXX gibi fonksiyonlarla veri kontrolü yapan varyantta karar kıldım. Ancak yukarıda açıklanan sorunun tekrar ortaya çıkıp çıkmayacağını izleyeceğim.