![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
Lütfen bana öğeleri Mqlrates yapıları olan bir diziyle nasıl çalışacağımı söyleyin.
İşte tam olarak ilgilendiğiniz şey. Örneğin:
MqlRates AdaptedRates[];
ArraySetAsSeries(AdaptedRates,true);
AdaptedRates[300].open=1;
Hata ayıklayıcıda bir hata veriyor - Geçersiz dizi erişimi.
Anladığım kadarıyla bunun nedeni, bu gösterimi kullanarak, yalnızca sırayla bir dizi öğesi olan yapının öğelerini okuyabilmenizdir .
Soru, yapı elemanlarının nasıl doğru yazılacağıdır . İlgi çekmeyen tüm unsurlar doğrudan fiyatlardır .open .high .low .close .
Şimdiden özür dilerim, soru muhtemelen çok banal (ben bir programcı değilim), ancak cevabı yardımda bulamadım. Herhangi bir yardım için minnettar olacağım.
Dizinin boyutunu ayarlayın. Dizi Yeniden Boyutlandır
Anladığım kadarıyla örneğin bedeni siz belirlerseniz
:) Statik bir dizi değil, ArrayResize() kullanarak dinamik bir boyut ayarladınız.
Mesela: ArrayResize(AdaptedRates,302); vb.
AdaptedRates[] adlı dinamik bir dizi kullanıyorsunuz. Hatırladığım kadarıyla dinamik dizilerle çalışırken ArrayResize () fonksiyonunu kullanarak onların boyutlarını ayarlamalısınız. Bu arada, derleyici üçüncü satırda belirtilen indeks 300'e yemin eder.
Bu referanstan bir alıntıdır.
Swan, Yedelkin bu kadar çabuk yanıt verdiğiniz için teşekkürler.
Anladığım kadarıyla örneğin bedeni siz belirlerseniz
Evet.
MqlRates AdaptedRates[];//diziyi dinamik tut
ArrayResize(AdaptedRates,302);//ve istediğiniz boyutu ayarlayın
:) Statik bir dizi değil, ArrayResize() kullanarak dinamik bir boyut ayarladınız.
ArrayResize(AdaptedRates,302) gibi; vb.
Strateji test cihazında aksaklık .
Aniden durur ve tüm yerel ve uzak ajanlar yazıyı bitirir ve bu nedenle askıda kalır.
Bana daha fazla nasıl başlayacağımı söyleme, her şeye yeniden başlamanın zamanı geldi mi?Popüler açıklama için teşekkürler, anladığım kadarıyla, dinamik bir dizinin bir hücresine herhangi bir erişimden önce, onu gerekli sınırlara ArrayResize yapmak arzu edilir, deneyeceğim.
Not. Yalnızca gösterge arabellekleri için bu gerekli olmayacaktır. Orada, terminalin yürütme alt sistemi bunu kendi başına halleder.
Not 2. ArrayResize() öğesinin öğelerine herhangi bir erişimden önce değil, yalnızca dinamik bir dizinin boyutunu değiştirmeniz gerektiğinde kullanılması önerilir. Dinamik bir diziye boyutu bir kez verilecek ve ardından program basitçe öğelerine erişecek olabilir.
Not. Yalnızca gösterge arabellekleri için bu gerekli olmayacaktır. Orada, terminalin yürütme alt sistemi bunu kendi başına halleder.
Not 2. ArrayResize() öğesinin öğelerine herhangi bir erişimden önce değil, yalnızca dinamik bir dizinin boyutunu değiştirmeniz gerektiğinde kullanılması önerilir. Dinamik bir diziye boyutu bir kez verilecek ve ardından program basitçe öğelerine erişecek olabilir.