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

 
Vitaly Muzichenko :

:D


Teşekkürler Nazik Adam!

 

İşte daha detaylı

 
Ras al Ghul :

Ya seçeneğin çok karmaşık ya da ne anlamdan bahsettiğini anlamadım ...


Benim versiyonumda, seçilen parçaya yemin ediyor:

'Dizi' - dizi gerekli.

Gösterge değerini bir diziye böyle koymuyor muyuz?



Lütfen doğru hesaplama için dizideki değerin birden fazla olması gerektiğini unutmayın. Vitaly Muzichenko size hatayı doğru bir şekilde işaret etti, tekrar etmeyeceğim

 
voron_026 :

Evet haklısın. Dikdörtgenler bir koordinatta çizilir. Sorunu şu şekilde çözdü:

Hesaplanan zaman çerçevesini hızla değiştirmek için bir TimeFrame değişkeni eklendi

Evet, her şey doğru görünüyor.

Eşittir işaretine dikkat edin UseDojiCandles

 if (UseDojiCandles == true && Doji() == 1 && New_Bar == true )
 
Aleksey Vyazmikin :

Evet, her şey doğru görünüyor.

Eşittir işaretine dikkat edin UseDojiCandles

Peki, cevabı daha da genişletirsiniz, "==" karşılaştırması vardır ve "=" ataması vardır.

 
Vitaly Muzichenko :

Peki, cevabı daha da genişletirsiniz, "==" karşılaştırması vardır ve "=" ataması vardır.


Adam açıkça biliyor, sadece yazım hatası.

 
Aleksey Vyazmikin :

Adam açıkça biliyor, sadece yazım hatası.


Evet, doğru, bahşiş için teşekkürler. Zaten düzeltildi.

daha fazla çalışıyorum

"Çekiç" ve "Ters Çekiç" desenini bağladı
 
voron_026 :

Evet, doğru, bahşiş için teşekkürler. Zaten düzeltildi.

daha fazla çalışıyorum

"Çekiç" ve "Ters Çekiç" desenini bağladı

Fiyat kuzeye ve güneye hareket ettiğinde benzer rakamların farklı şekilde çalışacağına dair bir varsayımım var - bunları yorumlarken bunun dikkate alınması gerektiğini düşünüyorum.

 
   for ( int i= 0 ; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1* iClose (Symbol1_Name, 0 , iBarShift (Symbol1_Name, 0 , Time [i])) - 
              Symbol2_Vol*Vol2* iClose (Symbol2_Name, 0 , iBarShift (Symbol2_Name, 0 , Time [i]));



 for ( int i=0; i<limit; i++) {
     if (ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]= iMAOnArray (Last, 0 ,Env_Period, 0 , MODE_SMA ,i);
     LineUp[i]= iEnvelopesOnArray (Last, 0 ,Env_Period, MODE_SMA , 0 ,Env_Dev, MODE_UPPER ,i);
     LineDn[i]= iEnvelopesOnArray (Last, 0 ,Env_Period, MODE_SMA , 0 ,Env_Dev, MODE_LOWER ,i);
    } else {
     MA[i]= iMAOnArray (Last, 0 ,BB_Period, 0 , MODE_SMA ,i);
     LineUp[i]= iBandsOnArray (Last, 0 ,BB_Period,BB_Dev, 0 , MODE_UPPER ,i);
     LineDn[i]= iBandsOnArray (Last, 0 ,BB_Period,BB_Dev, 0 , MODE_LOWER ,i);
    }
  }

Teknik olarak, nasıl yapılacağı, öyle görünüyor ki, her şey açık.

 for ( int i= 0 ; i< limit ; i++) {
    RSI[i] = iRSI ( Symbol (),TimeFrame, 14 , PRICE_CLOSE , i );
  }

for ( int i= 0 ; i< limit ; i++) {
    BandsMn[i]= iBandsOnArray (RSI, 0 ,BB_Period,BB_Dev, 0 , MODE_MAIN , i );
    BandsUp[i]= iBandsOnArray (RSI, 0 ,BB_Period,BB_Dev, 0 , MODE_UPPER , i );
    BandsDn[i]= iBandsOnArray (RSI, 0 ,BB_Period,BB_Dev, 0 , MODE_LOWER , i );
  }

Ancak sürecin özü net değil:

örneğin limitin değeri ne olmalı ve neden böyle bir değer?

Gösterge fonksiyonlarının sonundaki i değişkenine bakarak kaydırmalı veri giriyoruz.

Yani limit göstergenin periyoduna mı bağlı olmalıdır?


Dikkatiniz ve sabrınız için teşekkür ederiz.

 
Ras al Ghul :

Teknik olarak, nasıl yapılacağı, öyle görünüyor ki, her şey açık.

Ancak sürecin özü net değil:

örneğin limitin değeri ne olmalı ve neden böyle bir değer?

Gösterge fonksiyonlarının sonundaki i değişkenine bakarak kaydırmalı veri giriyoruz.

Yani limit göstergenin periyoduna bağlı olmalıdır?


Dikkatiniz ve sabrınız için teşekkür ederiz.

limit - grafikteki çubukların sayısı , böylece geçmiş içinde gezinirken gösterge geçmişin sonuna kadar görüntülenir.