MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1898

 
Vitaly Muzichenko # :

Neden önce verileri yazıp sonra kaydırıyorsunuz?

  Buffer1[ 0 ]=b;
  Buffer2[ 0 ]=a;
   for ( int j=H; j> 0 ; j--) {
    Buffer1[j]=Buffer1[j- 1 ];
    Buffer2[j]=Buffer2[j- 1 ];
  }

Bu, gerçek onay grafiğiyle eşleşmiyor!

Bu şekilde doğru olacaktır.

   for ( int j=H; j> 0 ; j--) {
    Buffer1[j]=Buffer1[j- 1 ];
    Buffer2[j]=Buffer2[j- 1 ];
  }
  Buffer1[ 0 ]=b;
  Buffer2[ 0 ]=a;
 
Vitaly Muzichenko # :

Yine, ArrayCopy() içinde bir döngü var ve muhtemelen birden fazla. Bu nedenle, değiştirme kodunun daha kolay ve daha hızlı olması pek olası değildir.

Yukarıda bir kereden fazla söyledim: Bir döngü olmadan yapamazsınız!

 
Mihail Matkovskij # :

Neden önce verileri yazıp sonra kaydırıyorsunuz?

Bu, gerçek onay grafiğiyle eşleşmiyor!

Bu şekilde doğru olacaktır.

koşer, elbette, ama aynı.)

Evet ve birkaç atama karşılaştırmasıyla 1000'e kadar yinelemeden oluşan kısa bir döngü kolaydır. bu yüzden seni korkutmamalı.

 
EVGENII SHELIPOV # :

Yeni ekstremum yoksa ve 0, 1, 2 olan üç çubuktan sonra bir fraktal oluşur.

Hiçbirşey değişmedi.

Ya da başka bir şey doğru değil

D1'deki fraktal göstergesini çalıştırın ve orada bir fraktal olup olmadığına bakın.
 
Valeriy Yastremskiy # :

koşer, elbette, ama aynı.)

Aynı değil. İlk önce bir onay işareti kaydettiysek ve ardından diziyi kaydırdıysak, kaydırdığımız diğer işaretlerle birlikte 1 çubuk sola kaydırıldığı ortaya çıkıyor. Ama önce diziyi kaydırırsak ve sonra sıfır dizinine tik değerini yazarsak, önce tik için yer açarız ve sonra oraya yazarız. Ve sonuç olarak, hiçbir yere yerinden edilmedi.

 
Mihail Matkovskij # :

Yukarıda bir kereden fazla söyledim: Bir döngü olmadan yapamazsınız!

doğru anlamış gibiyim


Dolguyu değiştirmeye çalıştım, hata alıyorum


 
Vitaly Muzichenko # :

Dolguyu değiştirmeye çalıştım, hata alıyorum


Garip, neden böyle?... Görünüşe göre her şey işe yaramalı, sadece keneler yerlerinde olacak ve sola kaydırılmayacak.

PS Ek bir dizinin daha eklenmesi gerekiyordu (başta söylediğim gibi). Aksi takdirde, yeni bir çubuk göründüğünde, tüm işaretler otomatik olarak sola kayar, çünkü bunlar gösterge arabellekleridir! Veya yeni bir çubuğun göründüğü anı izleyin ve arabellekleri sağa kaydırın.
 
Ve diziyi taşımazsanız, ancak ilk öğenin mevcut konumunu hatırlayarak onu bir halka arabelleği olarak kullanırsanız?
 
Mihail Matkovskij # :

Aynı değil. İlk önce bir onay işareti kaydettiysek ve ardından diziyi kaydırdıysak, kaydırdığımız diğer işaretlerle birlikte 1 çubuk sola kaydırıldığı ortaya çıkıyor. Ama önce diziyi kaydırırsak ve sonra sıfır dizinine tik değerini yazarsak, önce tik için yer açarız ve sonra oraya yazarız. Ve sonuç olarak, hiçbir yere yerinden edilmedi.

Evet, benim durumumda sıfırdan değil, ilkinden başlamanız gerekiyor.) Doğru açıklama.

ZY, evet olmasına rağmen. ilk önce yer değiştirmek ve sonra uygun sıfıra gitmek gerekir. hangi yoldan olursa olsun.

ZYZY, kaymadan önce sıfır değerinin üzerine yazarsa, sıfır indeksinin değerini kaybederiz.

 
JRandomTrader bir halka arabelleği olarak kullanırsanız, ilk öğenin geçerli konumunu hatırlıyor musunuz?

µl olarak halka tamponu nedir