[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 411
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
Numara
Buradaki sorun sadece döngü. numaralandırma 0'dan 2'ye kadar devam eder, ancak 2'den 0'a kadar gereklidir.
Bana bir örnek göster lütfen yaptım Yardım etmedi
ss2019 :
Bana bir örnek gösterin lütfen, yaptım yardımcı olmadı
şöyle bir script yaptım
Sonuç olarak, Print aşağıdaki çıktıları verir
0 4
on dört
Ve işte bu, nedense döngü çıktı vermiyor
24
3 4
Döngüye I 0 yerine OrderSelect (i, SELECT_BY_POS, MODE_TRADES) eklendi yani ilk sipariş her zaman seçili olsun ve script çalışmaya başlasın. listede yalnızca iki sipariş olduğunda üçüncü sıra.
şöyle bir script yaptım
Sonuçta...
Bana bir örnek göster lütfen yaptım
Yardım etmedi
çünkü düşünürün hala açılması gerekiyor
Bu ikilemi çözmeme yardım et
Komut dosyası, satırlar arasındaki maksimum mesafeyi arar. Sonuçlara göre, tüm değerleri tüm çubuklarda görüntüledim, maksimum mesafe bir çubukta 1.6235 ve diğerinde 1.6208 olduğunda elde edilir.
Print'i (maxrange) görüntülemeye çalışıyorum; 0.086 gösteriyor, nedenini hiç anlamıyorum, Noktaya göre bölme yapıyorum
Bu ikilemi çözmeme yardım et
Komut dosyası, satırlar arasındaki maksimum mesafeyi arar. Sonuçlara göre, tüm değerleri tüm çubuklarda görüntüledim, maksimum mesafe bir çubukta 1.6235 ve diğerinde 1.6208 olduğunda elde edilir.
Print(maxrange) yazdırmaya çalışıyorum; 0.086 gösteriyor, nedenini hiç anlamıyorum, Noktaya göre bölme yapıyorum
Bu bir ikilem değil. İkilem, iki çözümden hangisini seçmenin daha iyi olduğunu bilmemenizdir.
İlk olarak, iMA() işlevinin altı değil yedi parametresi vardır. İkinci olarak, int i dizesiyle bir değişken bildirdiniz. Ve sonra i değişkeni hiçbir yerde bir değerle başlatılmaz. Sonuç olarak, ya sıfırdır ya da önceki aktiviteden hücrelerde kalan gereksiz RAM hücreleri içerir. Üçüncüsü, while döngüsü doğru organize edilmemiştir. Diyelim ki başlatmadan sonraki i değişkeni sıfıra eşit. Ma1 > Ma2 ifadesinin de doğru olduğunu varsayalım. Sonuç olarak while(Ma1 > Ma2) satırı döngüyü çalıştıracaktır. Döngünün bir sonraki yinelemesinde, (Ma1 > Ma2) ifadesinin doğru olmadığı ve döngünün kesintiye uğrayacağı ortaya çıkıyor. MA1 ve MA2 değişkenleri maksimum olan mesafeyi içermeyecektir - maksimum bir kezdi. Bu koşul yalnızca MA1'in şimdi MA2'den küçük veya ona eşit olduğunu gösterecektir.
Ayrıca, maxrange değişkeni yalnızca satır aralığındaki değerle başlatılır = (Ma1 - Ma2)/Nokta; Peki, if(range > maxrange) koşulu hiçbir zaman yürütülmezse, çünkü kodun daha önceki hiçbir yerinde maxrange değişkenini bir değerle başlatmazsanız? Hesaplamaların sonucunu ve RAM hücrelerinin çöplerini karşılaştırdığınız ortaya çıktı. Burada kod yürütmenin bir sonucu olarak anlaşılmaz baskılarınız var.
if(aralık > maksimum aralık) maksimum aralık = aralık;
Yani işin aslı şu ki döngüdeki tüm MA değerlerinin çıktısını yaptım ve tüm değerler doğru görüntüleniyor yani bu döneme ait tüm MA değerleri sıralandı. Ama nedense bu yerde hesaplama yanlıştır = (Ma1 - Ma2)/Nokta;
if(aralık > maksimum aralık) maksimum aralık = aralık;
*Nokta
aralık = (Ma1 - Ma2) *Nokta
*Nokta
aralık = (Ma1 - Ma2) *Nokta
Yani işin gerçeği şu ki döngüdeki tüm MA değerlerinin çıktısını yaptım ve tüm değerler doğru görüntüleniyor yani bu periyoda ait tüm MA değerleri sıralandı. Ama nedense bu yerde hesaplama yanlıştır = (Ma1 - Ma2)/Nokta;
if(aralık > maksimum aralık) maksimum aralık = aralık;
Peki bu yüzden bir girdi üzerine gelen kontrol etmek gereklidir. Hesaplamalara dahil olan değişkenlerin değerleri tam olarak nedir?