[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 131
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
Konunun devamı
Bir önceki burada https://www.mql5.com/ru/forum/111497
Tek boyutlu bir ValueArr[] dizisini doldurmaya çalışıyorum.
Doğru olup olmadığından emin değilim.
Her onayda GetValue() işlevi bir int değeri döndürür. ValueArr[] nasıl doldurulur?
Girişim doğru mu?
Dizi boyutunun her onayda bir artmasını istiyor musunuz? Daha sonra boyutu bilgisayarın kullanılabilir belleği ile sınırlı olacaktır.
Her tikte, ValueArr[] dizisinin boyutunu ArrayResize() işleviyle artırın ve diziye yeni veriler ekleyin. Tekrar - nereye eklenir? Başına mı sonuna mı???
Başa ise, daha önce kaydedilen verileri kaydırmak gerekir, aksi takdirde yeni kaydedilenler tarafından silinirler.
Sonunda ise, o zaman:
init'te dizi size = sıfır olarak ayarlayın ve başlangıçta onu 1 (size++) artırın, ardından dizi boyutunu değiştirin ( ArrayResize(ValueArr, size);) ve size- tarafından indekslenen ValueArr[] dizi hücresini girin. GetValue() işlevi tarafından alınan 1 (ValueArr[size -1]) verisi; (ValueArr[size-1]=GetValue();)
Dizi boyutunun her onayda bir artmasını istiyor musunuz? Daha sonra boyutu bilgisayarın kullanılabilir belleği ile sınırlı olacaktır.
Her tikte, ValueArr[] dizisinin boyutunu ArrayResize() işleviyle artırın ve diziye yeni veriler ekleyin. Tekrar - nereye eklenir? Başına mı sonuna mı???
Başa ise, daha önce kaydedilen verileri kaydırmak gerekir, aksi takdirde yeni kaydedilenler tarafından silinirler.
init'te dizi boyutu = sıfır olarak ayarlayın ve başlangıçta onu 1 (size++) artırın, ardından dizi boyutunu değiştirin ArrayResize(ValueArr, size); ve size-1 (ValueArr[size-1]) tarafından indekslenen ValueArr[] dizisinin hücresine GetValue() işlevi tarafından alınan verileri girin;
Evet, GetValue()'dan gelen veriler her onayda ValueArr[] dizisine yazılacaktır.
Dizi boyutu her onayda artar, ancak hemen tanımlanabilir, örneğin [10000].
Dizinin öğeleri, alındıkları sıraya göre düzenlenir, yani. ilk kaydedilen - "genel kuyrukta" ilk,
ikinci öğe, sıradaki ikinci öğedir.
Eğer doğru anladıysam, şöyle görünüyor:
Umarım seni doğru anlamışımdır.
Dizinin öğeleri, alındıkları sıraya göre düzenlenir, yani. ilk kaydedilen - "genel kuyrukta" ilk,
neden bir zaman serisi dizisi kullanmıyorsunuz?
Tek boyutlu bir ValueArr[] dizisini doldurmaya çalışıyorum.
Doğru olup olmadığından emin değilim.
Her onayda GetValue() işlevi bir int değeri döndürür. ValueArr[] nasıl doldurulur?
Girişim doğru mu?
int ValueArr[size];
yasaktır. Bir dizi bildirildiğinde, boyut olarak bir sabit belirtilir veya hiçbir şey belirtilmez ve ardından dizi dinamik olarak kabul edilir.
doğru olacak
int ValueArr[]; int init() { ArrayResize(ValueArr,size); }
Lütfen bana söyle! MT4'te yeni bir işlem açmak için öncekinin sonucunu dikkate alacak bir fonksiyon var mı? Evet ise, nasıl doğru yazılır?
Lütfen bana söyle! MT4'te yeni bir işlem açmak için öncekinin sonucunu dikkate alacak bir fonksiyon var mı? Evet ise, nasıl doğru yazılır?
öyle bir yerleşik fonksiyon yok, kendiniz yazmanız gerekiyor, burada bir örnek gösterdim: https://www.mql5.com/en/forum/131277/page113
Böyle
yasaktır. Bir dizi bildirildiğinde, boyut olarak bir sabit belirtilir veya hiçbir şey belirtilmez ve ardından dizi dinamik olarak kabul edilir.
doğru olacak
O zaman muhtemelen şöyledir:
Bu doğru?