![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Göstergelerin inceliklerini hâlâ anlıyorum ve sorularım var. Gösterge arabelleğini OnInit() içinde sıfırlıyorum , ancak nedense gösterge derlendiğinde arabellek sıfırlanmıyor. Mantıksal olarak, derlemelerden sonra her arabellek için bir tam hücre olmalıdır, ancak resim birçoğunun olduğunu gösteriyor (bunların önceki arabellek hücreleri olduğunu düşünüyorum). Hatam nerede?
if(rates_total-8==i)// || rates_total-5==i || rates_total-2==i) { ColorHistogram_2Buffer1[i]=high[i]; ColorHistogram_2Buffer2[i]=low[i]; ColorHistogram_2Colors[i]=0; }
Göstergelerin inceliklerini hâlâ anlıyorum ve sorularım var. Gösterge arabelleğini OnInit() içinde sıfırlıyorum , ancak nedense gösterge derlendiğinde arabellek sıfırlanmıyor. Mantıksal olarak, derlemelerden sonra her arabellek için bir tam hücre olmalıdır, ancak resim birçoğunun olduğunu gösteriyor (bunların önceki arabellek hücreleri olduğunu düşünüyorum). Hatam nerede?
OnInit'te gösterge arabelleklerinin uzunluğu sıfırdır.
O halde onlarla gönlünün istediğini yap, bütün bunlar onlar için ölü bir lapa gibidir.
Ancak kod yürütme OnCalculate'e gittiğinde, boyut hemen Rates_total'a eşit olur.
ve dizinin tüm hücrelerinde "çöp" var. Göstergenin eski hesaplamasından da kalabilir.
OnInit'te gösterge arabelleklerinin uzunluğu sıfırdır.
O halde onlarla gönlünün istediğini yap, bütün bunlar onlar için ölü bir lapa gibidir.
Ancak kod yürütme OnCalculate'e gittiğinde, boyut hemen Rates_total'a eşit olur.
ve dizinin tüm hücrelerinde "çöp" var. Göstergenin eski hesaplamasından da kalabilir.
Çok teşekkür ederim, her şeyi anladım ve her şey yolunda gitti! Böyle mi yaptı:
Çok teşekkür ederim, her şeyi anladım ve her şey yolunda gitti! Böyle mi yaptı:
Neden bir değişkene iki kez bir değer atanır?
Ve soru şu: Bütün bunlar neden gerekli? Sonuçta, bir döngüdeki tüm çubuklardan geçerek, dizinin tüm hücreleri zaten bir şeyle doldurulmalıdır. Gösterge yalnızca geçerli konumu göstermedikçe, ancak dizi yalnızca başlangıçta değil, her çubukta başlatılmalıdır...
Neden bir değişkene iki kez bir değer atanır?
Ve soru şu: Bütün bunlar neden gerekli? Sonuçta, bir döngüdeki tüm çubuklardan geçerek, dizinin tüm hücreleri zaten bir şeyle doldurulmalıdır. Gösterge yalnızca geçerli konumu göstermedikçe, ancak dizi yalnızca başlangıçta değil, her çubukta başlatılmalıdır...
Bu örnekte, sadece arabelleğin nasıl temizleneceğini anlamak istedim. Ancak gelecekte (şu anda üzerinde çalıştığım göstergede), önceki hücreleri tutmam ve yenilerini eklemem gerekecek. Ve tam olarak bunun üzerinde çalışmaya başladım, yani - ilk testler.
OnInit()'in çizelgedeki tüm eylemleri, örneğin zaman dilimlerini değiştirmeyi taklit ettiğinden emin değildim. Zaman dilimlerinin değişikliği sıfırlandı (şu anda kontrol ettim), ama belki başka bir şey vardır, bu yüzden emin olmak için ikincisini OnInit () içine koydum. Ama yapmazsan, oraya bahse girmem.
Ahh... Evet, grafik periyodunu değiştirirken global seviyedeki değişkenler başlatılmaz. ???Tam hatırlamıyorum.
Ve genel olarak, bu ek bool değişkeni olmadan yapabilirsiniz.
Ve genel olarak, bu ek bool değişkeni olmadan yapabilirsiniz.
Evet, bu doğru, daha da iyi, teşekkürler.
Süre 30 dakikadan fazlaysa neden böyle garip bir sayı döndürdüğünü söyleyebilir misiniz?
KP 0 14:33:22.423 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,M30) DÖNEM: 30
GG 0 14:33:24.402 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H1) DÖNEM: 16385
RJ 0 14:33:25.675 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H4) DÖNEM: 16388Süre 30 dakikadan fazlaysa neden böyle garip bir sayı döndürdüğünü söyleyebilir misiniz?
MT5'te, periyotların değerleri, MT4'teki gibi dakika sayısına eşit değildir.