Hatalar, hatalar, sorular - sayfa 1088
![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östergeyi yeniden derledikten sonra, dinamik dizilerle çalışırken "dizi aralık dışı" hatası görünmeye başladı.
Daha önce orada değildi. Ne yapalım?
Dosyanın başında benzer satırlarınız varsa
#include <File.mqh> , o zaman büyük olasılıkla bu içerme dosyaları önceki derlemenizden bu yana siz veya başka biri tarafından değiştirilmiş
Dosyanın başında benzer satırlarınız varsa
#include <File.mqh> , o zaman büyük olasılıkla bu içerme dosyaları önceki derlemenizden bu yana siz veya başka biri tarafından değiştirilmiş
Dahil edilen dosya yok.
Dahil edilen dosya yok.
Dinamik bir diziye bir şey eklemeye çalışırken neden "dizi aralık dışında" hatası oluşuyor? O da dinamik.
Dizi B1[] Gösterge arabelleğine karşılık gelen olarak belirtildi
SetIndexBuffer(0,B1,INDICATOR_DATA); ArraySetAsSeries(B1,true);
Buradaki dizinin boyutu açıkça kullanıcı tarafından kontrol edilmiyor.
Dinamik bir diziye bir şey eklemeye çalışırken neden "dizi aralık dışında" hatası oluşuyor? O da dinamik.
Dinamik bir diziye bir şey eklemeye çalışırken neden "dizi aralık dışında" hatası oluşuyor? O da dinamik.
(fcplm)
Onu kim dikecek? O bir anıt!
Platform hatası.
Gösterge arabelleğinin B1 dizisi doldurulurken SetIndexBuffer(0,B1,INDICATOR_DATA) prosedürü tekrar çağrılırsa,
örneğin, gösterge başlatılırken, sonraki B1 dizisine bir şey yazma girişimi "dizi aralık dışı" hatasına neden olur.
SetIndexBuffer(0,B1,INDICATOR_DATA) prosedürüne yapılan tek bir çağrı ile her şey yolunda gider.
Daha önce durum böyle değildi.
Platform hatası.
Gösterge arabelleğinin B1 dizisi doldurulurken SetIndexBuffer(0,B1,INDICATOR_DATA) prosedürü tekrar çağrılırsa,
örneğin, gösterge başlatılırken, sonraki B1 dizisine bir şey yazma girişimi "dizi aralık dışı" hatasına neden olur.
SetIndexBuffer(0,B1,INDICATOR_DATA) prosedürüne yapılan tek bir çağrı ile her şey yolunda gider.
Daha önce durum böyle değildi.
Bunu neden tekrar tekrar yapıyorsun?
Bir arabelleği bağlamak, onu temizlemek ve sonraki hesaplamalar için dinamik bağlamaya hazırlamak anlamına gelir. İkinci kez aranırsa, önceki arabellek temizlenir ve göstergeyi yeniden hesaplamak için yalnızca bir sonraki aramada doldurulur.
Bunu neden tekrar tekrar yapıyorsun?
Bir arabelleği bağlamak, onu temizlemek ve sonraki hesaplamalar için dinamik bağlamaya hazırlamak anlamına gelir. İkinci kez aranırsa, önceki arabellek temizlenir ve göstergeyi yeniden hesaplamak için yalnızca bir sonraki aramada doldurulur.
Bu, göstergenin ilk başlatıldığında ortaya çıkan ve Oninit() aracılığıyla gerçekleştirilen standart tam başlatma işlemiydi.
Bazen geçmişi güncellerken vb. onun da yapılması gerekiyor.
Hiç kimse, göstergenin Oninit() aracılığıyla yeniden başlatılmasının bazı dizilerin yanıt vermesini durduracağını düşünmedi.