- 2010.10.04
- Konstantin Gruzdev
- www.mql5.com
Teşekkürler, çok güzel bir makale.
На форуме как-то проскользнула мысль о том, что было бы хорошо иметь стандартный обработчик события «новый бар». Быть может когда-то разработчики придут к этому, а может и нет.
Neden gözden kaçmış. Tam burada büyük harflerle https://www.mql5.com/ru/forum/2176/page21/#comment_26385 isNewBar()'ın gerekli olduğu ve programlanabileceği yazıyor.
Ayrıca "on fark bul" oyununu oynayabilirsiniz. Uzman Danışmanın demo hesabındaki çalışmasının tuhaflıklarının yanı sıra, demo hesabında ve test cihazında farklılıklar olduğu açıktır ve bunlar çıplak gözle görülebilir... Bunu forumdaki tutkulara veya ihtiyaç varsa bir sonraki makaleye bırakacağım.
Tutkuları göremiyorsunuz, korkarım birçok kişi görmedi bile. Şampiyonluktaki tutkular meclis üyeleri düşmeye başladığında başlayacak....
Şimdi daha ileri gidebilir ve çok para birimli bir NewBar olay işleyicisi yapabiliriz. Ancak bu başlı başına bir makale konusu.
Ve buna sadece büyük bir şairin harika bir şiirini ekleyebilirim.
Oh ne kadar harika keşifler
Aydınlanma ruhunu hazırlayın
Ve deneyim, zor hataların oğlu,
Ve deha, paradoksların dostu,
Ve şans, Tanrı'nın mucidi....
Teşekkürler, çok güzel bir makale.
Neden gözden kaçtı. Tam orada büyük harflerle https://www.mql5.com/ru/forum/2176/page21/#comment_26385 isNewBar()'ın gerekli olduğunu ve programlanabileceğini söylüyor.
Oops, bunu kaçırmışım. Birkaç fikir daha atabilirdim. Bu arada, 5. maddeye dayalı bir EA yayınladım.
Tutkuları göremiyorsunuz, korkarım birçok insan bunu görmedi bile.
Evet, görünen o ki pek çok insan şampiyonanın başlamasının şokunu hala yaşıyor.
Ve buna sadece harika bir şiir, harika bir şair ekleyebilirim.
Temaya uygun bir şiir. Keşke birileri gerçek çözümler sunsa.
geliştiricilerin isNewBar fonksiyonunu standart bir fonksiyon olarak tanıtmaları daha iyi olurdu...
Gördüğüm kadarıyla, bu OnTick'in özel bir durumu olduğu için geliştiricilerin standart bir isNewBar işlevi sunması mantıklı değil. Ve bunun programlanabilir bir olay olduğu konusunda Prival ile aynı fikirdeyim.
Muhtemelen bu olayın standart bir şekilde işlenmesi bile gereklidir. En azından uzman seviyesinde.
En azından işte çoklu iş parçacığı açısından daha uygundur. Sonuçta, terminal seviyesindeki herhangi bir işlem birkaç iş parçacığında organize edilebilir, ancak MQL'de yalnızca bir iş parçacığı alacağız.
Bence, standart işleme özellikle çok para birimli işler için avantajlı olacaktır.
PS
Genel olarak, geliştiriciler mevcut olay işleyicilerini, aynı OnTrade() ve OnTick()'i değiştirmeyi düşünmelidir.
Ben şahsen onları en azından bir sembolü parametre olarak görmeyi tercih ederim ...
OnTick() işlevini veya daha doğrusu mantığını da değiştirirdim. Şimdi bu olay, Uzman Danışmanın asılı olduğu döviz çiftinde yeni bir kene varsa oluşturulur. Çoklu para birimi analizi açısından, herhangi bir enstrümanda yeni bir tik varsa, bu olayı oluşturmak daha iyi olacaktır (bence öyle).
Yani matris değişti (piyasanın adresini gözden geçirin) newTick() olayı, matriste neyin değiştiğini gösteren ile oluşturulur. Her şeyi senkronize etmek daha uygun olacaktır.
Nadiren, ancak bir enstrüman için tekliflerin uzun süre donduğu durumlar vardır (Yen'de böyle bir durum gördüm). Ve Uzman Danışman bu çifte takılırsa, tüm kodu OnTime() içine çevirmediyseniz başınız belada demektir.
Muhtemelen bu olayın standart olarak işlenmesi bile gereklidir. En azından uzman seviyesinde.
En azından iĢte çoklu iĢ parçacığı açısından daha uygundur. Sonuçta, terminal seviyesindeki herhangi bir işlem birkaç iş parçacığında organize edilebilir ve MQL'den sadece bir iş parçacığı alacağız.
Yani matris değişti (piyasaya genel bakış), newTick() olayı matriste neyin değiştiğini gösteren ile oluşturulur. Her şeyi senkronize etmek daha uygun olacaktır.
Böyle bir olay TimeCuurent() kullanılarak alınabilir, ancak bununla daha sonra ne yapılacağı, nasıl senkronize edileceği bir sorudur.
Ayrıca OnTick() işlevini veya daha doğrusu mantığını da değiştirirdim. Şu anda, Uzman Danışmanın asılı olduğu döviz çiftinde yeni bir kene varsa bu olay oluşturulur. Çoklu para birimi analizi açısından, herhangi bir enstrüman için yeni bir tıklama olduğunda bu olayı oluşturmak daha iyi olacaktır (bence öyle).
Aynı şeyi kastediyorum, OnTick() ve OnTrade()'de en azından sembol adını bir parametre olarak eklemeniz gerekir (OnTrade()'de olay türünü de eklemeniz istenir).
Bu durumda OnTick(), örneğin, genel bakışta bulunan sembollerden (enstrümanlardan) birinde yeni bir tik olduğunda oluşturulabilir.
- www.mql5.com
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale "Yeni Çubuk" Olay İşleyicisi yayınlandı:
MQL5 programlama dili, sorunları yepyeni bir düzeyde çözme kapasitesine sahiptir. Halihazırda bu tür çözümlere sahip olan görevler dahi, nesne yönelimli programlama sayesinde bir üst düzeye çıkabiliyor. Bu makalede, oldukça güçlü ve çok yönlü bir araca dönüştürülmüş bir grafikteki yeni çubuğu kontrol etmenin özellikle basit bir örneğini ele alıyoruz. Peki bu araç ne? Bu makalede bunu öğreneceğiz.
Her iki Expert Advisor'ı da aynı çift ve dönemi içeren grafiklerde çalıştıralım. Bakalım elimizde ne var:
İlk olarak, her iki Expert Advisor da yeni çubuk hakkında eşzamanlı olarak rapor verir. Ardından dururlar ve yalnızca dört dakika sonra yeni bir çubuk olduğunu bildirirler (bu kez, 1 olarak işaretlenir). Sorun değil - Birkaç dakikalığına internet bağlantımı kestim ve ne olacağına bakmaya karar verdim. Birkaç çubuk oluşturulmuş olmasına rağmen, bu bilgiyi almadık. Yeni Expert Advisor'da isNewBar() yöntemimiz böyle bir şeye izin verdiği için bu dezavantajı düzeltebiliriz.
Yazar: Konstantin Gruzdev