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

 
Carcass77 :

Göstergem çalışıyor, sadece genişliyor. dizeler ; Eklendi.

Tamam, gideceğim

Bu sizin göstergenizse, soru, en hafif tabirle, endişe verici görünüyor...

 
Сергей Таболин :

Bu sizin göstergenizse, soru, en hafif tabirle, endişe verici görünüyor...

kazanıldı. Soru, dize değişkenlerinin bildiriminin "biçiminde" idi. Hala öğreniyorum, beyler programcılar.

 
Carcass77 :

kazanıldı. Soru, dize değişkenlerinin bildiriminin "biçiminde" idi. Hala öğreniyorum, beyler programcılar.

herkes öğreniyor, sorun değil

sorum ortaya çıktı çünkü Örneğiniz başlangıç seviyesinde değildi, ancak kodunuzu ilk kez yazmaya çalıştığınızda anlamanız gereken ilk şey değişken türleri ve kapsamı sorusudur - bunu anlamadan gelecekte hiçbir şey işe yaramaz.

 
Carcass77 :

kazanıldı. Soru, dize değişkenlerinin bildiriminin "biçiminde" idi. Hala öğreniyorum, beyler programcılar.

Ben de hala öğreniyorum )))) Ve umarım daha çok şey öğrenebilirim ;)

 

Hepiniz hoşgeldiniz ! buton , isim + değer nasıl geçilir (örnek buton Lot = 0.1) ?

Hepinize şimdiden teşekkürler!

 
Merhaba! Alt fraktallara bir trend çizgisi çizmeye çalışıyorum ve işe yaramıyor. İlk nokta için zamanın başlangıcını alır, bir çizgi çizer ve bu kadar. Bir sonraki fraktala geçmiyor.Neyi yanlış yapıyorum, nasıl düzeltebilirim?
 datetime firsttime1;
datetime firsttime2;
datetime secondtime1;
datetime secondtime2;
double   firstprice1;
double   firstprice2;
double   secondprice1;
double   secondprice2;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (Hour()>= 9 && Hour()< 22 )
   {
    Fun_New_Bar();
     if (New_Bar)      
     {

double vallo= iFractals ( NULL , 0 ,MODE_LOWER, 2 ); Alert ( "vallo = " ,vallo);
      { if (vallo> 0 )
       {
       //забиваем координаты второй точки для линии Low
       secondtime1=( TimeCurrent ()- 7200 );
       secondprice1= iLow ( NULL , 0 , 2 );
       
       //рисуем трендовую линию Low
       ObjectCreate ( "LowLine" , OBJ_TREND , 0 ,firsttime1,firstprice1,secondtime1,secondprice1);

      firsttime1=secondtime1;
      firstprice1=secondprice1;
   
       }
      }
     }
   }
  } 
 

Kod tabanından indirilen SuperTrend göstergesine oklar eklendi. Başlangıçta okları normal şekilde çizer,


ama grafiği geri/sola kaydırırsam, çöp çıkıyor ve her şey bozuluyor.


İşte kod:

 //+------------------------------------------------------------------+
//|                                                   SuperTrend.mq4 |
//|                   Copyright © 2008, Jason Robinson (jnrtrading). |
//|                                   http://www.spreadtrade2win.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Jason Robinson."
#property link        "http://www.spreadtrade2win.com"
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrLime
#property indicator_color2 clrRed
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 3
#property indicator_width4 3

enum en_trend {
   Modern,   // Modern
   Classic,   // Classic
};

//+------------------------------------------------------------------+
//| Universal Constants                                              |
//+------------------------------------------------------------------+
#define PHASE_NONE 0
#define PHASE_BUY   1
#define PHASE_SELL - 1

//+------------------------------------------------------------------+
//| User input variables                                             |
//+------------------------------------------------------------------+
input en_trend TrendMode      = Modern;   // Trend Line Mode
input int       ATR_Period     = 10 ;       // ATR Period
input double    ATR_Multiplier = 3.0 ;       // ATR Multiplier
input int       BarsToCount    = 0 ;         // Bars to count (0 - all bars)
input color     clr_Up         = clrLime ;   // Arrow Up Color
input color     clr_Dn         = clrRed ;   // Arrow Down Color

//+------------------------------------------------------------------+
//| Universal variables                                              |
//+------------------------------------------------------------------+
double buffer_line_up[];
double buffer_line_down[];
double ArrowUpBuffer[];
double ArrowDnBuffer[];

double atr,
       band_upper,
       band_lower,
       shift;
int     phase=PHASE_NONE;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  
   IndicatorShortName( "Super Trend" );
   IndicatorDigits(( int )MarketInfo( Symbol (),MODE_DIGITS));
   SetIndexBuffer ( 0 ,buffer_line_up);
   SetIndexLabel( 0 , "Up Trend" );
   SetIndexBuffer ( 1 ,buffer_line_down);
   SetIndexLabel( 1 , "Down Trend" );

//--- 2 additional arrows buffers
//---- drawing settings
   SetIndexStyle( 2 , DRAW_ARROW , STYLE_SOLID ,EMPTY,clr_Up);
   SetIndexArrow( 2 , 233 );
   SetIndexStyle( 3 , DRAW_ARROW , STYLE_SOLID ,EMPTY,clr_Dn);
   SetIndexArrow( 3 , 234 );
//---- indicator buffers
   SetIndexBuffer ( 2 ,ArrowUpBuffer);
   SetIndexBuffer ( 3 ,ArrowDnBuffer);
   SetIndexEmptyValue( 2 , 0.0 );
   SetIndexEmptyValue( 3 , 0.0 );  
  
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
   int limit= Bars -counted_bars;
   if (counted_bars== 0 ) limit-= 1 + 2 ;

   for ( int i=limit; i>= 0 ; i--) 
     {
      atr   = iATR ( Symbol (), 0 ,ATR_Period,i);
      shift = 0.5 * iATR ( Symbol (), 0 , 100 ,i);;
      band_upper = (High[i]+Low[i])/ 2 + ATR_Multiplier * atr;
      band_lower = (High[i]+Low[i])/ 2 - ATR_Multiplier * atr;

       if (phase==PHASE_NONE) 
        {
         buffer_line_up[i]=(High[i+ 1 ]+Low[i+ 1 ])/ 2 ;
         buffer_line_down[i]=(High[i+ 1 ]+Low[i+ 1 ])/ 2 ;
        }

       if (phase!=PHASE_BUY && Close[i]>buffer_line_down[i+ 1 ] && buffer_line_down[i+ 1 ]!= EMPTY_VALUE ) 
        {
         phase = PHASE_BUY;
         buffer_line_up[i]=band_lower;
         buffer_line_up[i+ 1 ]=buffer_line_down[i+ 1 ];
        }

       if (phase!=PHASE_SELL && Close[i]<buffer_line_up[i+ 1 ] && buffer_line_up[i+ 1 ]!= EMPTY_VALUE ) 
        {
         phase = PHASE_SELL;
         buffer_line_down[i]=band_upper;
         buffer_line_down[i+ 1 ]=buffer_line_up[i+ 1 ];
        }

       if (phase==PHASE_BUY
         && ((TrendMode== 0 && buffer_line_up[i+ 2 ]!= EMPTY_VALUE ) || TrendMode== 1 )) 
        {
         if (band_lower>buffer_line_up[i+ 1 ]) 
           {
            buffer_line_up[i]=band_lower;
           }
         else 
           {
            buffer_line_up[i]=buffer_line_up[i+ 1 ];
           }
        }
       if (phase==PHASE_SELL
         && ((TrendMode== 0 && buffer_line_down[i+ 2 ]!= EMPTY_VALUE ) || TrendMode== 1 )) 
        {
         if (band_upper<buffer_line_down[i+ 1 ]) 
           {
            buffer_line_down[i]=band_upper;
           }
         else 
           {
            buffer_line_down[i]=buffer_line_down[i+ 1 ];
           }
        }
        
         // Make Arrows
         if (buffer_line_up[i+ 1 ]  != EMPTY_VALUE && 
            buffer_line_up[i+ 2 ]  != EMPTY_VALUE && 
            buffer_line_down[i+ 2 ]!= EMPTY_VALUE ) {
           ArrowUpBuffer[i+ 1 ]=Low[i+ 1 ]-shift;
           ArrowDnBuffer[i+ 1 ]= 0.0 ;

        }
         if (buffer_line_down[i+ 1 ] != EMPTY_VALUE && 
            buffer_line_down[i+ 2 ] != EMPTY_VALUE && 
            buffer_line_up[i+ 2 ]   != EMPTY_VALUE ) {
           ArrowDnBuffer[i+ 1 ]=High[i+ 1 ]+shift;
           ArrowUpBuffer[i+ 1 ]= 0.0 ;

        }
     }

   return ( 0 );
  }
//+------------------------------------------------------------------+

Lütfen bana neyi batırdığını söyle.

Supertrend
Supertrend
  • www.mql5.com
AudioPrice Revision 1 Have audio output of latest price in stereo! Revised to cater for fractional pips as now offered by some brokers to MT4. Stochastic Net Stochastic net for the the classification problems with the instruction provided.
Dosyalar:
 
Grigori.SB :

Lütfen bana neyi batırdığını söyle.

Bu eklentiyi ayrı olarak eklediğim için hata yaptım. Oklar yalnızca arabellek değiştirilirken ayarlanmalıdır. Aynı zamanda, diğer tüm durumlarda, arabelleğe boş bir değer koymayı unutmayın.

Bu şekilde daha da iyi: hemen boş bir değer ayarlayın ve eğilim değiştiğinde arabelleklerden birini bir okla doldurun.

 
Grigori.SB :

ama grafiği geri/sola kaydırırsam, çöp çıkıyor ve her şey bozuluyor.

hikaye çıkmaza girer mi? bu durum için bir yeniden hesaplamanız yok ve ortaya çıkan gösterge arabelleklerinin yeni öğeleri çöple dolu.

 
Ne, muhtemelen, kimse cevap vermek istemediğinden, yine temel bir şeyi mi özlüyorum?