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

 


 #property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- input parameters
//extern double    TakeProfit=250.0;
//extern double    Lots=1;
extern int        barn= 1000 ;
extern int        Length= 10 ;
extern int        PatternLength= 10 ;
extern int         PatternWidth= 4 ;
extern color        PatternColor = Red;
extern bool        DrawZigZag = true ;
extern bool     ShowValues = true ;
extern color    ValueColor = Blue;
//---- buffers
double ExtMapBuffer1[];
//double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexEmptyValue ( 0 , 0.0 );
   //SetIndexDrawBegin(0, barn);
   if (DrawZigZag == true )  { SetIndexStyle ( 0 , DRAW_SECTION );}
   else { SetIndexStyle ( 0 , DRAW_NONE );}
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
ObjectsDeleteAll ();
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
 
   int shift,Swing,Swing_n,alf,uzl,i,zu,zd,mv;
   double LL,HH,BH,BL,NH,NL; 
   double Uzel[ 10000 ][ 3 ]; 
   string text;
    
     ObjectDelete ( OBJ_TREND );
    

// loop from first bar to current bar (with shift=0) 
      Swing_n= 0 ;Swing= 0 ;uzl= 0 ; 
      BH = High [barn];BL= Low [barn];zu=barn;zd=barn; 



for (shift=barn;shift>= 0 ;shift--) { 
      LL= 10000000 ;HH=- 100000000 ; 
   for (i=shift+Length;i>=shift+ 1 ;i--) { 
         if ( Low [i]< LL) {LL= Low [i];
           
         } 
         if ( High [i]>HH) {HH= High [i];} 

  }
 
   if ( Low [shift]<LL && High [shift]>HH){ 
      Swing= 2 ; 
       if (Swing_n== 1 ) {zu=shift+ 1 ;} 
       if (Swing_n==- 1 ) {zd=shift+ 1 ;
 
      } 
      
   } else { 
       if ( Low [shift]<LL) {Swing=- 1 ;} 
       if ( High [shift]>HH) {Swing= 1 ;} 
   } 

   if (Swing!=Swing_n && Swing_n!= 0 ) { 
   if (Swing== 2 ) {
      Swing=-Swing_n;BH = High [shift];BL = Low [shift]; 
   } 
   uzl=uzl+ 1 ; 
   if (Swing== 1 ) {
      Uzel[uzl][ 1 ]=zd;
      Uzel[uzl][ 2 ]=BL;
      NewSid(i,zd,BL);
     
   } 
   if (Swing==- 1 ) {
      Uzel[uzl][ 1 ]=zu;
      Uzel[uzl][ 2 ]=BH; 
       NewSid(i,zu,BH);
   } 
      BH = High [shift];
      BL = Low [shift]; 
      

   } 
 
   
/*

 */
   
   

   if (Swing== 1 ) { 
       if ( High [shift]>=BH) {BH= High [shift];zu=shift;}} 
       if (Swing==- 1 ) {
           if ( Low [shift]<=BL) {BL= Low [shift]; zd=shift;}} 
      Swing_n=Swing; 
   } 

   

   
   for (i= 1 ;i<=uzl;i++) { 
         mv= StrToInteger ( DoubleToStr (Uzel[i][ 1 ], 0 ));
      ExtMapBuffer1[mv]=Uzel[i][ 2 ];
      

   
   } 


   return ( 0 );
  }
  
   void NewSid( int i, int re,   double Uzels)
{

int zed=re-PatternLength;

if (zed < 0 )
   {
   ObjectCreate ( "priceLine1_" +i, OBJ_TREND , 0 , 0 , 0 , 0 , 0 );
   ObjectSet ( "priceLine1_" +i , OBJPROP_TIME1 , Time [re]);
   ObjectSet ( "priceLine1_" +i , OBJPROP_PRICE1 ,Uzels);
  
   ObjectSet ( "priceLine1_" +i , OBJPROP_TIME2 , Time [re+PatternLength]); 
   ObjectSet ( "priceLine1_" +i , OBJPROP_PRICE2 ,Uzels);   
    
   ObjectSet ( "priceLine1_" +i , OBJPROP_COLOR ,PatternColor);
   ObjectSet ( "priceLine1_" +i, OBJPROP_RAY , false );
   ObjectSet ( "priceLine1_" +i, OBJPROP_WIDTH ,PatternWidth);
   

   }
   
   
   
   
   else {

   ObjectCreate ( "priceLine1_" +i, OBJ_TREND , 0 , 0 , 0 , 0 , 0 );
   ObjectSet ( "priceLine1_" +i , OBJPROP_TIME1 , Time [re]);
   ObjectSet ( "priceLine1_" +i , OBJPROP_PRICE1 ,Uzels);
  
   ObjectSet ( "priceLine1_" +i , OBJPROP_TIME2 , Time [re-PatternLength]); 
   ObjectSet ( "priceLine1_" +i , OBJPROP_PRICE2 ,Uzels);   
    
   ObjectSet ( "priceLine1_" +i , OBJPROP_COLOR ,PatternColor);
   ObjectSet ( "priceLine1_" +i, OBJPROP_RAY , false );
   ObjectSet ( "priceLine1_" +i, OBJPROP_WIDTH ,PatternWidth);
}

       string high  = DoubleToStr ( High [re], 4 );
       string low   = DoubleToStr ( Low [re], 4 );
       string open  = DoubleToStr ( Open [re], 4 );
       string close = DoubleToStr ( Close [re], 4 );

 Comment (low, "   " ,high);

if (ShowValues == true )

{
   ObjectCreate ( "price_text" +i, OBJ_TEXT , 0 , 0 , 0 );
   //ObjectSetText("price_text"+i,"Date: "+TimeToStr(Time[re],TIME_DATE | TIME_MINUTES)+" | Time: ",10,"Calibri", Green);
   
   ObjectSetText ( "price_text" +i, "Open: " +open+ " | High: " +high+ " | Low: " +low+ " | Close: " +close, 10 , "Calibri" , ValueColor);
   ObjectSet ( "price_text" +i , OBJPROP_TIME1 , Time [re]);
   ObjectSet ( "price_text" +i , OBJPROP_PRICE1 ,Uzels);
   
};
}


Neden Yorum çıktısı (düşük," ",yüksek);
sadece yüksek değer mi?
 
Birisi bana gösterge metninde farklı zaman dilimlerinde kullanıma nasıl kısıtlamalar koyacağımı söyleyebilir mi? Göstergeyi yüklerken, özelliklerdedir, ancak programlı olarak nasıl sınırlandırılır????
 
Vladimir Pavlov :
Birisi bana gösterge metninde farklı zaman dilimlerinde kullanıma nasıl kısıtlamalar koyacağımı söyleyebilir mi? Göstergeyi yüklerken, özelliklerdedir, ancak programlı olarak nasıl sınırlandırılır????
 if (InpTimeframeWork!= Period ())
  {
   // Здесь действия, которые нужно выполнить если период графике не совпадает с заданным в настройках
  }

OnInit() içinde işaretlenmişse, grafik uyuşmazlığı hakkında bir mesaj yayınlayabilir ve INIT_FAILED; döndürebilir veya terminal grafiğini gerekli olana ayarlayabilirsiniz: ChartSetSymbolPeriod(0,NULL,InpTimeframeWork);

 

Tünaydın!
Pliz'in fotokopi makinesini etkinleştirme sorununu çözmesine yardımcı olun. Uzun zaman önce piyasadan 25 dolara bir fotokopi makinesi aldım. Bu saat 35$ tutuyor, VPS'de kullanmak istiyorum ama nedense marketten MT4'e indiremiyorum. Sadece satın alma teklifleri. 7 tane daha ücretsiz aktivasyonum var. Neyin yanlış olduğunu anlayamıyorum, fotokopi makinesini etkinleştirmek için ne yapmam gerektiğini söyleyin https://www.mql5.com/ru/market/product/4319 ?

Şimdiden teşekkürler

 
Artyom Trishkin :

OnInit() içinde işaretlenmişse, grafik uyuşmazlığı hakkında bir mesaj yayınlayabilir ve INIT_FAILED; döndürebilir veya terminal grafiğini gerekli olana ayarlayabilirsiniz: ChartSetSymbolPeriod(0,NULL,InpTimeframeWork);

Bu seçenek bana tanıdık geliyor, ancak bunun özellikleri aracılığıyla. Gereksiz seviyelere girmenize izin vermeyecek şekilde programdaki "Görüntü" sekmesi nasıl kurulur.

 
//+------------------------------------------- --------------------+
//| eeee.mq4 |
//| Telif Hakkı 2018, MetaQuotes Yazılım A.Ş. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif Hakkı 2018, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
#özellik göstergesi_chart_window
dış int Dış Derinlik = 12;
dış int DışSapma = 5;
harici int ExtBackstep = 3;
extern int ShiftBars = 2;
//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{// modülde

// fonksiyonda
çift y3=0, y2=0, y1=0, zz; // Zig-Zag ekstremumları
int x3, x2, x1, sh=ShiftBars;// bar sayıları
// Üç Zig-Zag ekstremum al
while (y3==0) {
zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=BOŞ_DEĞER) {
if (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }
}
sh++;

}

Mevcut ekstremumun değeri nasıl alınır?

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как эффективно продвигать свой продукт в Маркете...
 
02031986dima :

Mevcut ekstremumun değeri nasıl alınır?

Kodu doğru yapıştırın :


 
02031986dima :
//+------------------------------------------- --------------------+
//| eeee.mq4 |
//| Telif Hakkı 2018, MetaQuotes Yazılım A.Ş. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif Hakkı 2018, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
#özellik göstergesi_chart_window
dış int Dış Derinlik = 12;
dış int DışSapma = 5;
harici int ExtBackstep = 3;
extern int ShiftBars = 2;
//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{// modülde

// fonksiyonda
çift y3=0, y2=0, y1=0, zz; // Zig-Zag ekstremumları
int x3, x2, x1, sh=ShiftBars;// bar sayıları
// Üç Zig-Zag ekstremum al
while (y3==0) {
zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=BOŞ_DEĞER) {
if (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }
}
sh++;

}

Mevcut ekstremumun değeri nasıl alınır?

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает экстремум ЗигЗага по его номеру.                    |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    tf - таймфрейм                  (      0     - текущий ТФ)              |
//|    ne - номер экстремума           (      0     - последний)               |
//|    dp - ExtDepth                                                           |
//|    dv - ExtDeviation                                                       |
//|    bs - ExtBackstep                                                        |
//+----------------------------------------------------------------------------+
double GetExtremumZZPrice( string sy= "" , int tf= 0 , int ne= 0 , int dp= 12 , int dv= 5 , int bs= 3 ) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double zz;
   int     i, k= iBars (sy, tf), ke= 0 ;

   for (i= 0 ; i<k; i++) {
    zz= iCustom (sy, tf, "ZigZag" , dp, dv, bs, 0 , i);
     if (zz!= 0 ) {
      ke++;
       if (ke>ne) return (zz);
    }
  }
   Print ( "GetExtremumZZPrice(): Экстремум ЗигЗага номер " ,ne, " не найден" );
   return ( 0 );
}
 

yuvalamalara izin verilirse kaç tane?

 if
{
   if
     {

     }
}
 
multiplicator :

yuvalamalara izin verilirse kaç tane?

Bunları yazmaktan bıkana kadar

Neden: