![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
tf'yi değiştirirken.
göstergeler eski TF'nin arabelleğinde kalırsa, zamanlayıcıları da etkileyebilir. Ah bu Cuma deliryumu gibi.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MetaTrader 4 platformunun yeni versiyonu build 1065
Sergey Klimov , 2017.04.14 16:34
Hesaplar arasında geçiş yaparken, göstergede _Digits değişkeni değişmez.
daha güzel
daha güzel
Bu, MT4'teki doğru dizilimden bahsedenler içindir.
Bakın ve MT4'te her şeyin çok güzel olmadığını anlayın.
Sıra aynı.
Peki, o tam olarak nerede?
Bu ilkel örneği kullanın. Ve TF'yi değiştirirken "benzersizliği" anlayacaksınız.
Bu örnekte, OnInit'te geçerli saat ve fiyatın koordinatlarıyla bir nesne oluşturulur. OnCalculate'de bu nesne fiyatla birlikte hareket eder.
OnDeinit'te basitçe (mantıklı olan) kaldırılır.
TF'yi değiştirirken, nesnenin göründüğü veya kaybolduğu ortaya çıkıyor.
Bu neden oluyor?
Çünkü bazen eski TF'nin OnDeinit'i, yeni TF'nin OnInit'inde önceden oluşturulmuş olanı siler. Bu bir hata değil! Bu örneği oluşturan ve bu konuyu okumayan programcı ne düşünmelidir?
Peki, o tam olarak nerede?
Zamanlayıcı hakkında bir tartışma vardı.
Kimin umrunda. Unit'e nesne oluşturmak yerine EventSetTimer, Deunit'e nesne silmek yerine EventKillTimer koyabilirsiniz. Ve bundan dolayı belirsizlik azalmayacaktır, çünkü. ayarlanan zamanlayıcı , bazen ve bazen değil, eski TF'nin Deunit'i tarafından öldürülecektir. Ve daha da kötü olacak çünkü. nesne en azından görünür, ancak zamanlayıcı görünmüyor - çalışıyor veya çalışmıyor.
Belki de çoktan bulmuşlardır, her şeyi okumadım. Gösterge bir panel oluşturursa, terminalin global değişkenini kullanabilir, değerini init'te 1 artırabilir ve grafik nesnelerin adlarına ek olarak kullanabilirsiniz.
Başka bir görevim vardı - panel ayarlarını kaydetmek, bunun için deinite'ta global terminal değişkenleri yarattım. Sorunun çözümü basittir - init'te global terminal değişkenleri oluşturun ve grafik panelinde parametreler değiştikçe her birini güncelleyin. Tanımlamada, değişkenleri yalnızca başlatmadan kaldırma nedeni göstergeyi kaldırmaksa silin.
Gösterge bir panel oluşturursa, terminalin global değişkenini kullanabilir, değerini init'te 1 artırabilir ve grafik nesnelerin adlarına ek olarak kullanabilirsiniz.
Bu örneği oluşturan ve bu konuyu okumayan programcı ne düşünmelidir?
Tamamen katılıyorum. Okumayanlar bu özelliği bilmeyecek ve anlamaya çalışırken zamanlarını öldürecekler. Ve yüzlerce insan olacak ... özellikle yeni başlayanlar için üzgünüm.
Tek yapmanız gereken hatayı bir kez düzeltmek ve o kadar.
Kimin umrunda. Unit'e nesne oluşturmak yerine EventSetTimer, Deunit'e nesne silmek yerine EventKillTimer koyabilirsiniz. Ve bundan dolayı belirsizlik azalmayacaktır, çünkü. ayarlanan zamanlayıcı , bazen ve bazen değil, eski TF'nin Deunit'i tarafından öldürülecektir. Ve daha da kötü olacak çünkü. nesne en azından görünür, ancak zamanlayıcı görünmüyor - çalışıyor veya çalışmıyor.
Koltuk değnekleri her şeydir. Sadece terminalde doğru sırayı yapmanız gerekiyor ve hepsi bu. Önce önceki örneği tanımlayın ve ancak ondan sonra yenisini başlatın.
Tamamen katılıyorum. Okumayanlar bu özelliği bilmeyecek ve anlamaya çalışırken zamanlarını öldürecekler. Ve yüzlerce insan olacak ... özellikle yeni başlayanlar için üzgünüm.
Tek yapmanız gereken hatayı bir kez düzeltmek ve o kadar.
İşte bununla ilgili!
Ben şahsen çikolata içindeyim, tk. Çoğunluk üzerinde avantajımı hissediyorum, çünkü Tüm bunlarla nasıl başa çıkacağımı biliyorum, sadece kelimelerle değil, eylemlerle de. Programlarıma koltuk değneği taktım ve vidaladım.
Geliştiricilerin neden inatla bu "özelliği" bir hata olarak görmediklerini anlamıyorum.
Örneğin:
Göstergeler amaçlarına uygun olarak kullanılmalıdır.
Başka bir deyişle, grafiğin -dönemi sembolünü değiştirirken göstergenin OnInit ve OnDeinit'in yürütme sırası kimseyi endişelendirmemelidir.
Ama sonuçta, yukarıda animasyonlu bir gif ile bahsettiğim örnekte, bu konuyu okumayan bir programcı için bariz bir hata! Uygunsuz ne yapıldı?