Hatalar, hatalar, sorular - sayfa 1088

 
MoneyJinn :

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ş

 
Olegts :

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.

 
MoneyJinn :

Dahil edilen dosya yok.

o zaman göstergeyi düzenlemelisin, belki birileri boş zamanlarına bakar)
 

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.

 
MoneyJinn :
Dinamik bir diziye bir şey eklemeye çalışırken neden "dizi aralık dışında" hatası oluşuyor? O da dinamik.
bu, kendi boyutunu büyüttüğü anlamına gelmez, bu ArrayResize işlevi tarafından yapılır ve daha sonra zaten veri girebilirsiniz, ancak dizinin yeni boyutundan fazla olamaz
 
MoneyJinn :
Dinamik bir diziye bir şey eklemeye çalışırken neden "dizi aralık dışında" hatası oluşuyor? O da dinamik.
(fcplm)
 
TheXpert :
(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.

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
MoneyJinn :

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.

 
Renat :

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.