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

 
Vitaly Muzichenko # :

Sorunu nasıl çözeceğimi bulamıyorum

Bir onay grafiğine ihtiyacımız var, yani bir onay geldi - arabelleği bir kaydır ve çiz

Son 60 tik yani 60 bar çizmeniz gerekiyor.

---

"Tiki" penceresinin terminalinde uygulandığı gibi yapmanız gerekir.


Barlar değil, bir çizgi var.

Barkod yeni bir pencerede çizilir. O yardımcı olabilir.

Dosyalar:
SaveTicks.mq4  6 kb
 
Vitaly Muzichenko # :

Sorunu nasıl çözeceğimi bulamıyorum

Bir onay grafiğine ihtiyacımız var, yani bir onay geldi - arabelleği bir kaydır ve çiz

Son 60 tik yani 60 bar çizmeniz gerekiyor.

---

"Tiki" penceresinin terminalinde uygulandığı gibi yapmanız gerekir.


Bu sorunu çözmek için başka bir diziye ihtiyaç vardır. Sabit bir uzunluğa sahip olabilirsiniz, örneğin 60. Bir döngü kullanarak verileri her 1 kaydırdığınızda onu kenelerle doldurmanız gerekir. Her bir onay işaretini kaydettikten sonra, bu dizi Buffer dizisine kopyalanmalıdır ve verileri grafikte görüntülenecektir.

 
Valeriy Yastremskiy   # :

Barlar değil, bir çizgi var.

Barkod yeni bir pencerede çizilir. O yardımcı olabilir.

Oradan bir şey alamadım. Belki yanlış yöne bakıyorum?


Michael Matkovskij :

Bu sorunu çözmek için başka bir diziye ihtiyaç vardır. Sabit bir uzunluğa sahip olabilirsiniz, örneğin 60. Bir döngü kullanarak verileri her 1 kaydırdığınızda onu kenelerle doldurmanız gerekir. Her bir onay işaretini kaydettikten sonra, bu dizi Buffer dizisine kopyalanmalıdır ve verileri grafikte görüntülenecektir.

Geçişi nasıl yapacağımı bulamıyorum.

Zor değilse kodu göster

 
Vitaly Muzichenko # :

Oradan bir şey alamadım. Belki yanlış yöne bakıyorum?


Geçişi nasıl yapacağımı bulamıyorum.

Zor değilse kodu göster

A[0]=teklif;

for(i=0;i<60;i++){A[i+1]=A[i]}

 
Valeriy Yastremskiy # :

A[0]=teklif;

for(i=0;i<60;i++){A[i+1]=A[i]}

ben yaptım işe yarıyor

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   if (prev_calculated== 0 ) {
     ArrayInitialize (Buffer1, EMPTY_VALUE );
  }
   double b= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
  Buffer1[ 0 ]=b;
   for ( int j= 10 ; j> 0 ; j--) {
    Buffer1[j]=Buffer1[j- 1 ];
  }
   return (rates_total);
}

---

Bir şey size döngü olmadan yapabileceğinizi söylüyor.

Öyle mi?

 
Vitaly Muzichenko # :

ben yaptım işe yarıyor

---

Bir şey size döngü olmadan yapabileceğinizi söylüyor.

Öyle mi?

Bu döngü zaman serilerinde gizlidir. hangi tarafa gidersen git. 0 benim için daha mantıklı ve anlaşılır. MCL'de shift işlevlerini görmedim. İndekslerle çalışmaktır. İlk giren, son çıkan. python'da var. MKL'de değil.

 

Sorun bu mu?

Normal çalışmaya başlar, ancak her yeni çubukta aralıktan bir kayma ve çıkış vardır.

Nasıl önlenir?

---

PS Görünüşe göre her şey yolunda gidiyor, eklendi

   if (rates_total-prev_calculated== 1 ) {
    Buffer1[H+ 1 ]= EMPTY_VALUE ;
  }
 
Vitaly Muzichenko # :

Sorun bu mu?

Normal çalışmaya başlar, ancak her yeni çubukta aralıktan bir kayma ve çıkış vardır.

Nasıl önlenir?

---

PS Görünüşe göre her şey yolunda gidiyor, eklendi

dizinin küçük tarafından sıfırdan küçük olup olmadığını, büyük tarafından dizinin boyutundan fazlasını kontrol edin. Diziyi veya son değeri sıfırlamak her tikte mantıklı değildir.

 
Valeriy Yastremskiy # :

dizinin küçük tarafından sıfırdan küçük olup olmadığını, büyük tarafından dizinin boyutundan fazlasını kontrol edin. Bir diziyi veya son değeri sıfırlamak, olduğu gibi mantıklı değildir.

Mevcut tüm geçmiş için bir dizi, buna ihtiyacım yok.

Kelimenin tam anlamıyla 50-100 bara ihtiyaç var

Bunun gibi


 

Günün iyi zamanı.

Günlük fraktalın değerini monitörde değeri veya dikey bir çizgi şeklinde gösteriyorum. Satır görüntülenmiyor ve değer 0.

İşte kodun bir parçası

 double FractalDayUpper = iFractals ( Symbol (), PERIOD_D1 , MODE_UPPER, 0 );
   ObjectCreate ( "signal00" , OBJ_LABEL , 0 , 0 , 0 , 0 , 0 );
   ObjectSet( "signal00" , OBJPROP_XDISTANCE , 600 );
   ObjectSet( "signal00" , OBJPROP_YDISTANCE , 100 );
   ObjectSetText( "signal00" , DoubleToString (FractalDayUpper, 5 ), 18 , "Times New Roman" , clrRed );


Bana neyin yanlış olduğunu söyle