Hatalar, hatalar, sorular - sayfa 1392

 
Ilya Malev :

...

Genel olarak, OnTimer'dan OnCalculate'i çağırmanın işe yaradığını bir eğride gösterir)

Zaman serilerinde doğru değerlerin aktarımını eklemek gerekir.

Makalede, sadece bu örnek gösterilmektedir. )

Aynı yöntemle yapılan testler için başka bir örnek: MQL5 Tarifler - Fiyat farklılığını analiz etmek için çoklu para birimi göstergesinin geliştirilmesi >>>

 
Karputov Vladimir :

Sayma değişkeni, OnCalculate()'den çıkmadan önce artırılmalıdır - bu durumda, bu değişken OnCalculate'deki tüm girişleri doğru bir şekilde sayacaktır.

Orada her şeyi değil, sadece Ichimoku'nun hesaplanmasına kadar saymak gerekiyordu. Bunca zaman, sayı 0'dan büyük veya 0'a eşit ve ardından -1 idi. Gerçekten önemli değil. önemli ki

1) İlk başlatmada, gösterge 1 kez başlatıldı (OnCalculate) ve "Güncelle" düğmesini tıklamazsanız bir sonraki onay işaretine kadar (hafta sonları ve tatil günlerinde birkaç güne kadar) başlatılmaz

2) Bu ilk arama sırasında, Ichimoku göstergesinin hesaplamak için zamanı yoktu (daha karmaşık göstergeleri bırakın)

3) OnCalculate yerine OnTimer kullanırsanız (veya OnTimer'dan OnCalculate'i çağırırsanız), kullanıcı kendini oluşturacak bir gösterge başlatabilir, aksi takdirde Yenile'ye (belki birkaç kez) tıklaması veya sonraki onayları beklemesi gerekir. Aynı MT4'e kıyasla bariz bir rahatsızlık.

Anatoli Kazharski :
Basit göstergelerde oldukça normaldir. Ancak daha karmaşık olanlarda, nedense bazen durur. )
Bence en kolay yol OnCalculate yerine OnTimer kullanmaktır.
 
Ilya Malev :

Orada her şeyi değil, sadece Ichimoku'nun hesaplanmasına kadar saymak gerekiyordu. Bunca zaman, sayı 0'dan büyük veya 0'a eşit ve ardından -1 idi. Gerçekten önemli değil. önemli ki

...

Buradaki fikir, kullanıcının OnCalculate'deki giriş sayısını görmesidir. Aynı zamanda OnCalculate'in kendisinde, CopyBuffer işleminin sonucu sıfırdan büyükse, değerlerin arabelleğe başarılı bir şekilde alındığına dair mesajlar görüntülenir. Sonuç olarak, OnCalculate'de başarılı girişlerin sayısını görsel olarak görebilirsiniz.
 
Karputov Vladimir :
Buradaki fikir, kullanıcının OnCalculate'deki giriş sayısını görmesidir. Aynı zamanda OnCalculate'in kendisinde, CopyBuffer işleminin sonucu sıfırdan büyükse, değerlerin arabelleğe başarılı bir şekilde alındığına dair mesajlar görüntülenir. Sonuç olarak, OnCalculate'de başarılı girişlerin sayısını görsel olarak görebilirsiniz.

Anlıyorum, bu örnekten biraz daha ileri gittik. Kullanıldı, ayıklandı ve ana konuya geri döndü. Örnek, ilk çalıştırmadan itibaren hesaplamanın hafta sonları yapılmadığını doğruladı. Neyse onayladım. Sürekli olarak "Güncelle" ye tıklamam gerekecekti. Şahsen bunun kullanıcılar için kabul edilemez olduğunu düşünüyorum. Bu yüzden OnTimer üzerinden yapmaya çalışacağım.

 

OnCalculate'de zaman serilerinin hazır olmasını beklemek imkansızdır, çünkü her şey asılacak. Bu nedenle, hazır değilse, bir milisaniye için bir EventTimer yaparız ve OnTimer'da hazır olup olmadığını kontrol ederiz. Zaman serileri hazır olur olmaz OnCalculate'i çağırır ve zamanlayıcıyı KillTimer aracılığıyla öldürürüz.

Sorum şu, gerekli tüm zaman serilerinin hazır olup olmadığından nasıl %100 emin olabilirim?

 

Diğer göstergelerden çağrılan göstergelerdeki OnTimer hiç tetiklenmemiş gibi görünüyor. Bu nedenle, OnTimer aracılığıyla bunları güncellemek mümkün olmayacaktır. MT4'e kıyasla bu süreçte "Güncelleme" tablosuna onlarca ekstra tıklama yapmanız gerekiyor gibi görünüyor.

Ve bunu menüden fare ile her seferinde yapmanız ne kadar kötü, çünkü ne araç çubuğunda bu seçenek ne de bir kısayol tuşu var. Ve göstergeler, 1 saniyeden çok daha uzun süre oluşturulmuş "ağır" dır.

 
Ilya Malev :

... Ve 1 saniyeden çok daha uzun süre oluşturulmuş "ağır" göstergeler var.

"Ağır" göstergeler sorunu ile karşı karşıya. Bağlantılara sırayla bakın - ilgileneceksiniz.

1. Ağır gösterge sorununu gösteren video . Kilit nokta, sembol başına bir ağır göstergenin tüm Uzman Danışmanların bu sembol üzerindeki çalışmalarını yavaşlatmasıdır. Hatta başka bir sohbette! Ağır göstergeler kötüdür :)

2. Sorunu çözmek için bir açıklama ve seçenekler içeren konu

3. Sorunu pazarda çözmek

 
Andrey Miguzov :

"Ağır" göstergeler sorunu ile karşı karşıya. Bağlantılara sırayla bakın - ilgileneceksiniz.

Uzman Danışmanlar ve göstergeler arasında veri alışverişi yapmam gerekmiyor ve göstergelerin kendileri, biraz "ağır" olsa da, yalnızca başlangıçta tüm geçmişi hesaplarken nispeten uzun hesaplamalar yapıyor.

Şu anda sahip olduğum sorun , OnCalculate'in ilk başlangıcında bu göstergede kullanılan diğer tüm göstergelerin hesaplanmasını beklemenin imkansız olması ve OnCalculate'in kendisinin yalnızca bir sonraki onay işaretinde yeniden çağrılması, örneğin mevcut olmamasıdır. hafta sonları hiç. OnTimer, OnCalculate yerine (veya onunla birlikte) kullanılamaz, çünkü OnTimer, kullanıcı tarafından çağrılmayan göstergelerde hiç çağrılmaz, ancak örneğin, iCustom kullanılarak başka bir göstergeden çağrılır (şimdiye kadar testlerime göre, bu şekilde çıkıyor). Göstergenin başlatıldıktan sonra içinde kullanılan tüm göstergelerin hesaplanmasını otomatik olarak bekleyebilmesi ve kullanıcı müdahalesi olmadan (tablonun açılır menüsünden "Güncelle" düğmesine düzenli olarak basmadan) bilgi vermesi için bir çözüm bulmak istiyorum. , yeni kenelerin gelme sıklığı bunun için yeterli değilse).

 
Ilya Malev :

Uzman Danışmanlar ve göstergeler arasında veri alışverişi yapmam gerekmiyor ve göstergelerin kendileri, biraz "ağır" olsa da, yalnızca başlangıçta tüm geçmişi hesaplarken nispeten uzun hesaplamalar yapıyor.

Şu anda sahip olduğum sorun , OnCalculate'in ilk başlangıcında bu göstergede kullanılan diğer tüm göstergelerin hesaplanmasını beklemenin imkansız olması ve OnCalculate'in kendisinin yalnızca bir sonraki onay işaretinde yeniden çağrılması, örneğin mevcut olmamasıdır. hafta sonları hiç. OnTimer, OnCalculate yerine (veya onunla birlikte) kullanılamaz, çünkü OnTimer, kullanıcı tarafından çağrılmayan göstergelerde hiç çağrılmaz, ancak örneğin, iCustom kullanılarak başka bir göstergeden çağrılır (şimdiye kadar testlerime göre, bu şekilde çıkıyor). Göstergenin başlatıldıktan sonra içinde kullanılan tüm göstergelerin hesaplanmasını otomatik olarak bekleyebilmesi ve kullanıcı müdahalesi olmadan (tablonun açılır menüsünden "Güncelle" düğmesine düzenli olarak basmadan) bilgi vermesi için bir çözüm bulmak istiyorum. , yeni kenelerin gelme sıklığı bunun için yeterli değilse).

Görevi bu şekilde ayarlarsanız, gerçekten böyle bir ihtiyaç yoktur.

Ancak, göstergeler oluşturacak, onlardan veri alacak, bu verileri işleyecek ve sonucu gösterge-görselleştiriciye aktaracak bir uzman oluşturabilirsiniz. O zaman sizin tarafınızdan açıklanan tüm problemler olmayacak. Ve diğerleri de...

Çözüm çok güzel değil, ancak açıklanan sorunlardan kurtulmaya yardımcı oluyor.

 

MERHABA, SÖYLEYİN MT5 ÜZERİNDEN CANLI HESAP AÇARSANIZ, ŞİRKET ÇALIŞANI NE ZAMAN ARAYABİLİR VE HESAP AÇMA İŞLEMİNİ TAMAMLAMALIDIR?