Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1177
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
Merhaba!
Göstergenin her tikte değil de sadece bar açılışında nasıl çalışacağını ve tarih boyunca her seferinde (her yeni barda) çalışmamasını nasıl sağlayacağımı söyler misiniz?
Şimdiden teşekkür ederim.
Rostislav
İlk olarak, barlar hakkında. Yeni bir çubuk oluşturulduğunda, Zaman[0]'a yeni bir değer yazılır - çubuğun açılma zamanı .
Hesapla (...)
{
if(Zaman[0] == t) dönüş(0); // Bu BAR işlenirse --> çık
t = Zaman[0];
Şimdi tarih boyunca: yavaşlayacak
tarihsaat t;
İlk olarak, barlar hakkında. Yeni bir çubuk oluşturulduğunda, Zaman[0]'a yeni bir değer yazılır - çubuğun açılma zamanı .
Hesapla(...)
{
if(Zaman[0] == t) dönüş(0); // Bu BAR işlenirse --> çık
t = Zaman[0];
Şimdi tarih boyunca: yavaşlayacak
Hızlı cevabınız için teşekkür ederim. Yeni bir çubuk göründüğünde yavaşlamaması ve tüm geçmişin üzerinden geçmemesi, sadece yeni bir çubuğu işlemesi için nasıl yapılacağını soruyorum...
Şimdi şu şekilde organize ediliyor: for(int i=limit-1; i>=0; i--) ve anladığım kadarıyla bu, her bar açılışında tarih boyunca tüm değerlerin yeniden hesaplanacağı anlamına geliyor. , ve sadece son çubuktaki işi yapmanız gerekiyor ...
Son çubukta nasıl hesaplanır:
Önce çizgiye bakalım
daha açık hale getirmek için, bu şekilde yeniden yazdım
Aha!!! Şimdi anlamaya başlıyorum... Döngüde a değişkeni 1'den 6'ya değişiyor. Bu değişkenin 1, 5 ve 6 değerleri ile herhangi bir işlem yok. O zaman sadece
ya da senin tarzında
Sonuç aynı olacak, ancak daha hızlı
Şimdi İstatistik işlevinden kurtulmanız mı gerekiyor? Gövdesini arka arkaya üç kez yazmanız, üç bölümün her birinde resmi parametreleri gerçek olanlarla değiştirmeniz ve değişken bildirimlerinin tekrarını kaldırmanız gerekir. Genel kod biraz daha uzun olacak, ancak yürütme daha hızlı olacaktır. print()'i atmak mantıklı - şu anda tam olarak kim mesaj günlüğüne bakacak? - veya ekranda görünmesi için Alert() ile değiştirin. Bir de namZz2 değişkeni var - değeri değişiyor mu?
Aksine, istatistikleri bırakıp dizileri stat () üzerinden değil, istatistiklerde () numaralandırmam gerekiyor. Aptallıkla, söylediğin gibi üç kez yeniden yazabileceğini biliyorum, ancak sorun şu ki, istatistik toplama sonuçlarına göre, daha fazla dizi eklemeniz gerekecek ve er ya da geç orijinal olanlara döneceğim. . Bu nedenle, görevi özellikle seslendiriyorum ve bana zaten bildiğim basit yollar sunuyorsunuz, ne yazık ki beni başlangıca götürecekler. Bu nedenle, gelecekte buna geri dönmemek için sabırsızlanıyorum!
bu kodu istatistiklere nasıl ekleyebilirim? yani tek işlemdi, soruyu dile getirdiğim gibi başındasın, lütfen bak!
Son çubukta nasıl hesaplanır:
İşte çalışma kodundan bir alıntı! Bu, ara boşluk Stat'ı olmadan tek bir boşlukta nasıl toplanır? Önerdiğiniz şey, tüm dizilerin bir araya getirilmesi ve ardından oradan çizilmesi için tüm kodu yeniden öğütmem gerekiyor!
Sağladığınız çalışma kodundan alıntı ya yanlış ya da Statistic() işleviniz Stat()'tan çağrıldığında yazdırmaktan başka bir şey yapmıyor.
Size döndükten hemen sonra işi tamamlar; her neyse.
Lütfen ne istediğinizi netleştirmek için tam kodu sağlayın.
Not. Forumda MQL4'e yeni başlayanlara yardımcı olacak çok fazla konu var.
Bu şube artık kullanımdan kaldırıldı ve kapatıldı .
Lütfen tüm sorularınızı aşağıdaki aktif şubelerden birine yönlendirin:
https://www.mql5.com/ru/forum/160683
https://www.mql5.com/ru/forum/160587
Bu konudaki sonraki tüm mesajlar silinecektir.