Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 115

 
sss20192 :

Veri penceresinde göstergenin başka verileri vardır. Expert Advisor'ı H1 grafiğine ekliyorum ve verileri M5 M15 ve H1 zaman dilimlerinden kopyalıyor.


int    CopyBuffer (
   int        indicator_handle,     // handle индикатора
   int        buffer_num,           // номер буфера индикатора
   int        start_pos,             // откуда начнем 
   int        count,                 // сколько копируем
   double     buffer[]               // массив, куда будут скопированы данные
   );
Tamponlar (sıfırlarınız var) ve kopyaladığımız dizilerin hepsi aynı, 1 elemanla başlıyor, 1 eleman kopyalıyor, dizinin yönü de önemli olabilir.

 
zfs :
Tamponlar (sıfırlarınız var) ve kopyaladığımız dizilerin hepsi aynı, 1 elemanla başlıyor, 1 eleman kopyalıyor, dizinin yönü de önemli olabilir.

Evet, üç farklı tamframe üzerinde göstergenin ilk tamponu. Ve şimdilik, verileri günlüğe çıkarmak için aynı diziyi kullanıyorum.

ArraySetAsSeries doğru ve yanlış olarak ayarlanmaya çalışıldı. Yine de bazen günlükte -4.53e-32 gibi garip veriler görünüyor

 

Beyler nasıl uygulayacağımı söyler misiniz?

Bir dizi var, ona bir değer yazılıyor, eğer benzer bir değer içeriyorsa hatadır.

 
sss20192 : -4.53e-32 gibi garip veriler hala bazen günlükte görünüyor
İyi bir şekildeyse, koda hem tutamaç oluşturma başarısı hem de CopyBuffer () işlevinin başarısı için kontroller eklemeniz gerekir. Aksi takdirde, bu çöp değerinin CopyBuffer () fonksiyonunun başarılı bir şekilde çalışmasının sonucu olup olmadığını veya fonksiyonun “olması gerektiği gibi” çalışmadığını hala bilmiyoruz.
 
Top2n : Bir dizi var, ona bir değer yazılır, benzer bir değer içeriyorsa, sonra bir break.
İstenen değere uygunluk kontrolü ile dizinin öğelerinin aranmasını düzenlemek gerekir. Numaralandırma herhangi bir eşleşme göstermezse, değeri diziye yazın.
 
Yedelkin :
İstenen değere uygunluk kontrolü ile dizinin öğelerinin aranmasını düzenlemek gerekir. Numaralandırma herhangi bir eşleşme göstermezse, değeri diziye yazın.
Bir dizideki iki dizin nasıl karşılaştırılır?
 
Top2n :
Bir dizideki iki dizin nasıl karşılaştırılır?

Makaleyi dikkatlice okumak istemiyor musunuz? >> MQL5 programlamanın temelleri - Diziler

Dizilerle ilgili tüm durumlar için tüm ayrıntılar vardır. Kesinlikle yeterli olmalıdır. ))

 
tol64 :

Makaleyi dikkatlice okumak istemiyor musunuz? >> MQL5 programlamanın temelleri - Diziler

Dizilerle ilgili tüm durumlar için tüm ayrıntılar vardır. Kesinlikle yeterli olmalıdır. ))

Yardımlarınız için hepinize teşekkür ederim!) Size veda etmiyorum)))
 
Yedelkin :
İyi bir şekildeyse, koda hem tutamaç oluşturma başarısı hem de CopyBuffer () işlevinin başarısı için kontroller eklemeniz gerekir. Aksi takdirde, bu çöp değerinin CopyBuffer () fonksiyonunun başarılı bir şekilde çalışmasının sonucu olup olmadığını veya fonksiyonun “olması gerektiği gibi” çalışmadığını hala bilmiyoruz.

Kontrol. Tutamaçlar normal olarak oluşturulur, endeksleri 10, 11, 12'dir. Ve CopyBuffer işlevi bir ERR_INDICATOR_DATA_NOT_FOUND hatası verir. Neden böyle bir hata meydana gelebilir, seçilen çiftler piyasaya genel bakış penceresindedir, bu döviz çiftlerinin çizelgeleri açıktır.

Ayrıca CopyBuffer uygulamasının sonucunu gösteren bir değişken oluşturuyorum,

int aaa = CopyBuffer..., fonksiyonda belirtildiği gibi bir değerin kopyalandığı varsayılan 1 değerini gösterir.


MA arabelleği kopyalanırken aynı hata çıkıyor ancak diziye doğru değer yazılıyor.

Lütfen doğru arabellek kopyalamanın bir örneğini gösterin
 

 
sss20192 : Kontrol edildi. Tutamaçlar normal olarak oluşturulur, endeksleri 10, 11, 12'dir. Ve CopyBuffer işlevi bir ERR_INDICATOR_DATA_NOT_FOUND hatası verir. Neden böyle bir hata meydana gelebilir, seçilen çiftler piyasaya genel bakış penceresindedir, bu döviz çiftlerinin çizelgeleri açıktır.

Ayrıca CopyBuffer uygulamasının sonucunu gösteren bir değişken oluşturuyorum,

int aaa = CopyBuffer..., fonksiyonda belirtildiği gibi bir değerin kopyalandığı varsayılan 1 değerini gösterir.

MA arabelleği kopyalanırken aynı hata çıkıyor ancak diziye doğru değer yazılıyor.

Lütfen doğru arabellek kopyalamanın bir örneğini gösterin

Evet, CopyBuffer() işlevinin açıklamasında bir arabellek kopyalama örneği vardır. çizgilere dikkat

 //--- check if all data calculated
     if ( BarsCalculated (ma_handle)<rates_total) 

//--- try to copy
     if ( CopyBuffer (ma_handle, 0 , 0 ,to_copy,MABuffer)<= 0 ) return ( 0 );