MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 683
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
Onları ne başlangıçta ne de başka bir yerde başlatmadın, sadece ilan ettin
Kullanmadan önce yazdım, yani. SredRazmax, SredRazmin, Sredn değişkenleriniz dizi değerlerinin toplamıysa, toplamı doğru bir şekilde hesaplamak için değişkeni sıfırlamanız ve ardından dizi öğelerini eklemeniz ve bunları bu değişkende saklamanız gerekir.
onlar.
Peki, hakkında bir sorunuz olacak ikinci şey, göstergede, OnCalculate() her tik olarak adlandırılacaktır , bu da her tikte ZigZag köşelerini sürekli olarak sayacağınız anlamına gelir, yani. saniyede yaklaşık 40-60 kez.
Teşekkürler ama onları sıfırlamaya çalıştım ve OnCalculate() yerine OnStart kullanmaya çalıştım , değerler hala zıplıyor ve ww=0 ise (dizi değeri sürekli görüntüleniyor), o zaman değerler neden bana net değil ortalama atla, nasıl yapılır, böylece her tik dikkate alınmaz ve sadece dizideki değerler dikkate alınır?
Teşekkürler, ama onları sıfırlamayı denedim ve OnCalculate() yerine OnStart'ı kullanmaya çalıştım.
Bunun neden olduğunu size açıklayabileceğimi sanmıyorum, gerçek şu ki komut dosyalarında OnStart() ve göstergelerde OnCalculate() kullanılıyor, komut dosyalarının MQL'deki göstergelerden nasıl farklı olduğunu bulmanız gerekiyor.
Hangi görevin olduğu tam olarak belli değil mi? Neyin değerlerini görüntülemek istiyor musunuz? kodda, tüm grafikte ZigZag zirvelerinin olduğu fiyatları toplarsınız, çıktıda "Ortalama aralık" yazın ve değeri görüntüleyin ( SredRazmax-SredRazmin)/nn ve hesaplama tüm çubuklar için yapılır
çizim için gösterge arabellekleri kullanmıyorsanız neden bir göstergeye ihtiyacınız var? göstergedeki arabellekler çubuklara bağlıdır ve yeni bir çubuk göründüğünde değerleri değişecektir
Bunun neden olduğunu size açıklayabileceğimi sanmıyorum, gerçek şu ki komut dosyalarında OnStart() ve göstergelerde OnCalculate() kullanılıyor, komut dosyalarının MQL'deki göstergelerden nasıl farklı olduğunu bulmanız gerekiyor.
Hangi görevin olduğu tam olarak belli değil mi? Neyin değerlerini görüntülemek istiyor musunuz? tüm grafikte ZigZag zirvelerinin olduğu fiyatları topladığınız kodda, çıktıya "Ortalama aralık" yazın ve değeri ( SredRazmax-SredRazmin)/nn görüntüleyin ve tüm çubuklar için hesaplayın
çizim için gösterge arabellekleri kullanmıyorsanız neden bir göstergeye ihtiyacınız var? göstergedeki arabellekler çubuklara bağlıdır ve yeni bir çubuk göründüğünde değerleri değişecektir
Dürüst olmak gerekirse, görevi basitleştirdim (başlangıçta formül biraz farklı görünüyor), dizideki sıfır değeri sabit kalırsa ortalama değerlerin neden zıpladığını anlamanın mümkün olacağını düşündüm. Biri diziyi doldurmak için, diğeri ortalamayı hesaplamak için iki döngüm var, ayrıca bir nn sınırı var, ancak aslında grafiği görüntülemek istedim ve grafik standart bir zikzak, ancak iCustom aracılığıyla cehennemi çiziyorum , ve ortalama ... Sıfır köşelerden, bir öncekinden büyükse, öncekini çıkarın ve öncekini bir öncekinden çıkarın (eksi işaretiyle olacaktır, bu nedenle eksi 1 ile çarpılmalıdır) ) ve tüm bunlar toplanır ve belirtilen nn köşe sayısına bölünür. Ortalama zirve aralığını elde ederiz. Gelecekte, başka zikzak ortalamaları almak istedim, ancak "atlama" değerleriyle ilgili bir engelim vardı.
Başlangıçta böyleydi:
Dürüst olmak gerekirse, görevi basitleştirdim (başlangıçta formül biraz farklı görünüyor), dizideki sıfır değeri sabit kalırsa ortalama değerlerin neden zıpladığını anlamanın mümkün olacağını düşündüm. Biri diziyi doldurmak için, diğeri ortalamayı hesaplamak için iki döngüm var, ayrıca bir nn sınırı var, ancak aslında grafiği görüntülemek istedim ve grafik standart bir zikzak, ancak iCustom aracılığıyla cehennemi çiziyorum , ve ortalama ... Sıfır köşelerden, bir öncekinden büyükse, öncekini çıkarın ve öncekini bir öncekinden çıkarın (eksi işaretiyle olacaktır, bu nedenle eksi 1 ile çarpılmalıdır) ) ve tüm bunlar toplanır ve belirtilen nn köşe sayısına bölünür. Ortalama zirve aralığını elde ederiz. Gelecekte, diğer zikzak ortalamalarını almak istedim, ancak "atlama" değerleriyle ilgili bir engelim vardı.
Başlangıçta böyleydi:
görev, prensipte, tam olarak anlamadım, çok geç, uyumak için çok geç, vizyonuma göre düzelttim, sanırım göstergenin sıfır çubuğunda nasıl davranacağı konusunda şüphelerim var (yapmadı) kontrol etmeyin), ancak formülünüze göre bir yorum çizer ve görüntüler.
Bu sorunu çözmeye yardım et? (Mümkünse.)
Belirli koşullar altında, danışman bir Uyarı verir. Onu çağıran pencerenin Alert ile birlikte aktif hale gelmesi mümkün müdür?
Bu sorunu çözmeye yardım et? (Mümkünse.)
Belirli koşullar altında danışman bir Uyarı verir. Alert ile birlikte onu çağıran pencerenin aktif hale gelmesi mümkün mü?
görev, prensipte, tam olarak anlamadım, çok geç, uyumak için çok geç, vizyonuma göre düzelttim, sanırım göstergenin sıfır çubuğunda nasıl davranacağı konusunda şüphelerim var (yapmadı) kontrol etmeyin), ancak formülünüze göre bir yorum çizer ve görüntüler.
Evet, bana zaman ayırdığınız için teşekkür ederim, gerçekten çiziyorsunuz, muhtemelen yanlış bir şey yaptım. Ama burada yorumda bir dizi göstermiyor (çünkü orada sadece köşeler olmalı?) Ve bir eksi ve bir sayı ile yanlış sayıyor ..., zikzak köşeleri arasındaki aralık aynı değil. Buradaki fikir, önceki küçük tepe noktasını son (az önce oluşmuş) tepe noktasından çıkarmak ve öncekini daha büyük olan ve sayı eksi işaretiyle olacak olan önceki daha küçük olandan çıkarmaktır, onu (- ile çarparız) 1) ve benzeri, ve tüm bunlar nn kez eklenir ve nn'ye bölünür, ortalama çıkıntıyı elde ederiz. Yaklaşık 4 saatte bu USDJPY'de 1.69(to) olacaktır. Gelecekte, tepe noktaları arasındaki ortalama çubuk sayısını hesaplamak istedim. Şimdi kodunuzu, neyi yanlış yaptığımı, neden çizmediğimi ve neden yanlış saydığını anlamaya çalışacağım, işe yarayabilir ...
Evet, bana zaman ayırdığınız için teşekkür ederim, gerçekten çiziyorsunuz, muhtemelen yanlış bir şey yaptım. Ama burada yorumda bir dizi göstermiyor (sonuçta orada sadece köşeler mi olmalı?) Ve bir eksi ve bir sayı ile yanlış sayıyor ..., zikzak köşeleri arasındaki aralık aynı değil. Buradaki fikir, önceki daha küçük olanı son (yeni oluşan) tepe noktasından çıkarmak ve öncekini daha büyük olan ve sayı eksi işaretiyle olacak olan önceki daha küçük olandan çıkarmaktır, onu (- ile çarparız) 1) ve benzeri, ve tüm bunlar nn kez eklenir ve nn'ye bölünür, ortalama çıkıntıyı elde ederiz. Yaklaşık 4 saatte bu USDJPY'de 1.69(to) olacaktır. Gelecekte, tepe noktaları arasındaki ortalama çubuk sayısını hesaplamak istedim. Şimdi kodunuzu, neyi yanlış yaptığımı, neden çizmediğimi ve neden yanlış saydığını anlamaya çalışacağım, işe yarayabilir ...
Yorumdaki köşeler görüntülenmeyecek, çünkü HZZ[] gösterge arabelleği, ZigZag gösterge arabelleğinin kopyalanmış değerlerini içerir, aksi takdirde çizim yapamayız, tepe algılamasını kasıtlı olarak yukarı ve aşağı 2 koşula ayırdım:
Artık hesaplamaları orada kendiniz yapabilirsiniz, 3Z'nin mevcut tepe noktası zz değişkenidir, önceki tepe değişkeni lastzz , eğer 3Z'nin birkaç köşesini bilmeniz gerekiyorsa, o zaman saklamak için başka bir dizi oluşturmanız gerekir. bu veriler, yeni gösterge arabelleği büyük olasılıkla sizin için her şeyi karmaşıklaştıracaktır, t .to. yeni bir çubuk göründüğünde, gösterge arabelleklerine eklenen tüm diziler grafikle birlikte "kayar"
Not: kod benim örneğim ve sanırım orada 1. çubuğa geçmeniz gerekiyor ve 0'a değil, sürekli olarak SredRazmax değerlerini yeniden hesaplayacak, şimdi kontrol edemiyorum, PC'de terminal yok
Yorumdaki köşeler görüntülenmeyecek, çünkü HZZ[] gösterge arabelleği, ZigZag gösterge arabelleğinin kopyalanmış değerlerini içerir, aksi takdirde çizim yapamayız, tepe algılamasını kasıtlı olarak yukarı ve aşağı 2 koşula ayırdım:
Artık hesaplamaları orada kendiniz yapabilirsiniz, 3Z'nin mevcut tepe noktası zz değişkenidir, önceki tepe değişkeni lastzz , eğer 3Z'nin birkaç köşesini bilmeniz gerekiyorsa, o zaman saklamak için başka bir dizi oluşturmanız gerekir. bu veriler, yeni gösterge arabelleği büyük olasılıkla sizin için her şeyi karmaşıklaştıracaktır, t .to. yeni bir çubuk göründüğünde, gösterge arabelleklerine eklenen tüm diziler grafikle birlikte "kayar"
Not: kod benim örneğim ve sanırım orada 1. çubuğa geçmeniz gerekiyor ve 0'a değil, sürekli olarak SredRazmax değerlerini yeniden hesaplayacak, şimdi kontrol edemiyorum, PC'de terminal yok