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

 
torblin :
herkese merhaba, yeni başlayanlar için g o go ile ilgili sorular bir gönderi gibi görünmüyor dp 200 ile nereye soracağımı söyle hangi danışman uygundur?
hemen hemen her
 

Sayın baylar, sizden "bir numaralı denemeye" tecrübeli bir gözle bakmanızı rica ediyorum. Vakanın konusu: MQL5'te yazılan fraktal göstergeyi ve özü sözde hariç tutmak olan azzx_larry-2.0 göstergesini "geçerek". "barların içinde" bir ekstremum aranırken, belirli bir kod alındı (ekli). Derlerken, dört hata uçar, hepsi kodun azzx'ten taşınan bölümünde "dört" ile yazılır. "Hataları" yorumlarken sorular ortaya çıktı:

1. Neden for fonksiyon operatörünün (koddaki yerin altı çizili) Global'e yerleştirilmesi önerildi. ('for' - genel kapsamda ifadelere izin verilmez).


2. Derleyici neden Yüksek[bar] ve Düşük[bar]'ı (kodda altı çizilmiştir) bildirilmemiş olarak kabul eder, kodda birkaç satır daha yukarıda Yüksek[i] ve Düşük[i] vardır, ki bunu yapar hataları dikkate almayın.

('Yüksek' - bildirilmemiş tanımlayıcı, 'Düşük' - bildirilmemiş tanımlayıcı).


3. Benzer şekilde, limit hakkında - derleyicinin neden bildirilmemiş olduğunu düşünüyor. ('limit' - bildirilmemiş tanımlayıcı).

Not: telif hakkı: kodun bir kısmı (fraktal gösterge) mql5 Belgelerinden elde edilir ve kodun bir kısmı azzx_larry2.0 göstergesinden mql4 kod tabanından elde edilir, yazar azzx


 //+------------------------------------------------------------------+
//|                                                     azzx 2.0.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2
#property indicator_type1   DRAW_ARROW
#property indicator_type2   DRAW_ARROW
#property indicator_color1  White
#property indicator_color2  White
#property indicator_label1   "azzx Up"
#property indicator_label2   "azzx Down"
//---- indicator buffers
double max[];
double min[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ()
  {
//---- indicator buffers mapping
   SetIndexBuffer ( 0 ,max, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,min, INDICATOR_DATA );
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );
//---- sets first bar from what index will be drawn
   PlotIndexSetInteger ( 0 , PLOT_ARROW , 108 );
   PlotIndexSetInteger ( 1 , PLOT_ARROW , 108 );
//---- arrow shifts when drawing
   PlotIndexSetInteger ( 0 , PLOT_ARROW_SHIFT , 0 );
   PlotIndexSetInteger ( 1 , PLOT_ARROW_SHIFT , 0 );
//---- sets drawing line empty value--
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                 const long &Volume[],
                 const int &Spread[])
  {
   int i,limit;
//---
   if (rates_total< 3 )
       return ( 0 );
//---
   if (prev_calculated< 3 )
     {
      limit= 1 ;
       //--- clean up arrays
       ArrayInitialize (max, EMPTY_VALUE );
       ArrayInitialize (min, EMPTY_VALUE );
     }
   else limit=rates_total- 1 ;

   for (i=limit;i<rates_total- 1 && ! IsStopped ();i++)
     {
       //---- Up azzx
       if (High[i]>High[i+ 1 ] && High[i]>=High[i- 1 ])
         max[i]=High[i];
       else max[i]= EMPTY_VALUE ;

       //---- Low azzx
       if (Low[i]<Low[i+ 1 ] && Low[i]<=Low[i- 1 ])
         min[i]=Low[i];
       else min[i]= EMPTY_VALUE ;
     }
//--- OnCalculate done. Return new prev_calculated.
   return (rates_total);
  }

//+------------------------------------------------------------------+

   // Поиск краткосрочных экстремумов.
    for (i= limit - 2 ;i> 1 ;i--) 
   {
    l = left_bar(i);
    r = right_bar(i);
    
     if ((l> 0 ) && (r> 0 )) 
      {
       if (((Low[l]>=Low[i]) && (Low[r]>Low[i])) ||
         ((Low[l]>Low[i]) && (Low[r]>Low[i]))) 
      {
        min[i] = 1 ;
      }
    }
 
     if ((l> 0 ) && (r> 0 )) 
      {
       if (((High[l]<= High[i]) && (High[r]<High[i])) ||
         ((High[l]<High[i]) && (High[r]<High[i]))) 
      {
        max[i] = 1 ;
      }
    }

   // Отметка экстремумов.
   ArrayInitialize (buf_st_min, 0 );
   ArrayInitialize (buf_st_max, 0 );

  
   for (i=limit- 1 ;i> 0 ;i--) 
  {
     switch (min[i]) 
    {
       case 1 : buf_st_min[i]=Low[i]; break ;
    }
 
     switch (max[i]) 
    {
       case 1 : buf_st_max[i]=High[i]; break ;
    }
  }
  
   return ( 0 );
}
 
// Проверка, что заданный бар - внутренний.
bool is_internal( int bar) 
{
   return ( (High[bar] < High[bar + 1 ]) && 
         (Low [bar] > Low [bar + 1 ]));
}
 
// Возвращает бар слева от заданного бара или -1.
int left_bar( int bar) 
    {
   int i;
  
   for (i=bar+ 1 ;i<limit- 2 ;i++) 
{
     if (is_internal(i)== false ) 
{
       return (i);
    }
  }
  
   return (- 1 );
}
 
// Возвращает бар справа от заданного бара или -1.
int right_bar( int bar) {
   int i;
  
   for (i=bar- 1 ;i> 0 ;i--) 
{
     if (is_internal(i)== false ) 
{
       return (i);
    }
  }
  
   return (- 1 );
}
//+------------------------------------------------------------------+
//| Indicator deinitialization function                              |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- почистим график при удалении индикатора
   Comment ( "" );
  }
nymi, kodda birkaç satır yukarıda olduğunda Yüksek[i] ve Düşük[i] var ve bu hataları dikkate almıyor. 3. Benzer şekilde, limit hakkında - derleyici neden bildirilmemiş olduğunu düşünüyor?
 

Reshetov:
А робот случаем не из Маркета?
только один.  что там продается - ужас. хотя наверное все они такие
 
beginner_mql :

kod, hataları dikkate almayan Yüksek[i] ve Düşük[i] öğelerini içerir. 3. Benzer şekilde, limit hakkında - derleyici neden bildirilmemiş olduğunu düşünüyor?

Burada erken kapanan bir küme ayracı var:

   return (rates_total);
   }

//+------------------------------------------------------------------+

   // Поиск краткосрочных экстремумов.
   for (i=limit- 2 ;i> 1 ;i--) 

Veya bildirilmediği için bazı satırlar eksik

     l = left_bar(i);
     r = right_bar(i);
 
vicmos :

Burada erken kapanan bir küme ayracı var:

Veya bildirilmediği için bazı satırlar eksik

Katıldığınız için teşekkürler. Köşeli parantez kodun sonuna taşındı, derleme 16 hata verdi - üzerinde çalışılacak bir şey var.

 
Herkese merhaba, G. Stanilevich'in ITrade Chaos yazılım ürünü ile çalışan forum kullanıcılarına duyurulur. Çok beğendim ama anlayamadığım kısımlar var. Bu ürünle çalışan veya çalışmış biri için zor olmazsa bana Skype üzerinden ulaşın. skype'ım Furkat1962 Şimdiden teşekkür ederim. Saygılarımla Furkat
 
torblin :
herkese merhaba, yeni başlayanlar için g o go ile ilgili sorular bir gönderi gibi görünmüyor dp 200 ile nereye soracağımı söyle hangi danışman uygundur?
hiçbir danışman uygun değildir !!! . Kim dolandırıcılardan geliyor, FOREX'in bedava olmadığını, herkesin yaptığı işi sadece emek yatırımı ile, getirisi daha yüksek olduğunu nasıl anlamak istemezsiniz?
 
EA'dan grafiğe bir gösterge ekledim - bu göstergeyi şimdi nasıl renklendirebilirim? Gösterge 3 çizgi kullanıyor, 3 tanesini de farklı renk ve kalınlıkta yapmak istiyorum.
 
YAndrey :
EA'dan grafiğe bir gösterge ekledim - bu göstergeyi şimdi nasıl renklendirebilirim? Gösterge 3 çizgi kullanıyor, 3 tanesini de farklı renk ve kalınlıkta yapmak istiyorum.
Monitörde keçeli kalem kullanabilirsiniz).
 
zfs :
Monitörde keçeli kalem kullanabilirsiniz).
Evet yapabilirsin. Ama istemezdim. Ve akıllı insanları duymak isterim;). Şimdiye kadar, her satır için renk biçiminde giriş parametreleri ekleyerek özel bir gösterge oluşturmanın bir yolunu buldum, ancak bu nasıl daha basit olabilir? Yani yine soru. Danışmanda iBands göstergesini yapıyorum. Grafiğe ekliyorum. Farklı renklerde 3 çizgi ile çizmek istiyorum. Belki?