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

 
Alexey Viktorov :

Bu yüzden orta ile sınırlayın. Kim yasaklıyor???

erkek değilse, görünüşe göre PMS sendromu okumayı ve yeterli soru sormayı yasaklıyor, şimdilik bana sadece ciyaklamalar verin ... Gerçekten bunu istiyorum, bunu değil ...

Not: 4 forumdayım, mümkünse ayda MT4 kapsamında ücretsiz olarak yaklaşık 20 eser ve bireysel TK için yaklaşık 10 sipariş yapıyorum ancak düzenli olarak her 1.5 -2 ayda bir beyni uçuracak bir peri masalı karakteri ortaya çıkıyor. , çünkü MT4 ile uğraşmasına ya da belirli bir görev yapmasına gerek yok...

Artyom'un ömrü boyunca sabretmesi için bir anıt dikerdim, bu kadar uzun sürede böyle karakterlerle başa çıkabilmek için.

 
Alexey Viktorov :

Bunu yapmak çok kolay.

Seçenek 1 beyninizi zorlar.

Bu işe yaramazsa, 2. seçeneği kullanabilirsiniz.

Vyezhivaya olmadan ve geliştiricilere ve özellikle forum kullanıcılarına hakaret etmeden forumda yardım isteyin.

Aksi takdirde, ... postasına gönderilirsiniz.

Bu "özelliği" nasıl aşacağımı biliyorum.

Bu forumun "saygın insanlarından" farklı olarak, bunu bir sır yapmayacağım.

Bu yol şöyle görünür:

Bizi ilgilendirmeyen dizinin kalanını maksimum değerle doldurursak, göstergeler çizgi çizmeyi durdurur.

Standart MT4 göstergelerinde (örneğin, SMA, EMA, SMMA ve diğerlerinde) gördüğümüz bu sorunun bu "aptal" çözümüdür.

Ama görüyorsunuz, bu tam bir aptallık. Ve tam da bu aptallık yüzünden, açıklamada bu sorunu "çözme" yöntemi hakkında tek bir kelime söylenmediğinden şüpheleniyorum.

Belki yanılıyorum ama standart göstergelerde başka bir yol bulamadım.

 
Alexey Viktorov :

Aynen öyle. Yeni bir hesap açarsınız ve eskisinden yenisine kesinlikle hiçbir ücret ödemeden dahili havale ile para aktarırsınız.

Hiçbir şey anlamadım. Alexey, neyle ilgili olduğunu nasıl anladın? Ve bunun bazı çevirmenlerin çeviremediği 8 gösterge tamponu ile ne ilgisi var? Lanet olsun ayağını kır...
 
Igor Makanu :

erkek değilse, görünüşe göre PMS sendromu okumayı ve yeterli soru sormayı yasaklıyor, şimdilik bana sadece ciyaklamalar verin ... Gerçekten bunu istiyorum, bunu değil ...

Not: 4 forumdayım, mümkünse ayda MT4 kapsamında ücretsiz olarak yaklaşık 20 eser ve bireysel TK için yaklaşık 10 sipariş yapıyorum ancak düzenli olarak her 1.5 -2 ayda bir beyni uçuracak bir peri masalı karakteri ortaya çıkıyor. , çünkü MT4 ile uğraşmasına ya da belirli bir görev yapmasına gerek yok...

Artyom'un ömrü boyunca sabretmesi için bir anıt dikerdim, bu kadar uzun sürede böyle karakterlerle başa çıkabilmek için.

Muhtemelen dinlenmeye ihtiyacın var.

 
Gelecekte sorun olmaması için çocukları ayık hale getirmek gerekir.
 

Peki, neyi yanlış yapıyorum?

 //+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                                                        RomanRott |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "RomanRott"
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot HL_CCI
#property indicator_label1    "HL_CCI"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- input parameters
input int       Period_= 70 ; //Период
//--- indicator buffers
double          HL_CCIBuffer[];
int cci_h1, cci_h2;
double cci1[], cci2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,HL_CCIBuffer, INDICATOR_DATA );
   cci_h1 = iCCI ( _Symbol , PERIOD_CURRENT , Period_, PRICE_HIGH );
   cci_h2 = iCCI ( _Symbol , PERIOD_CURRENT , Period_, PRICE_LOW );
   
   //ArraySetAsSeries(cci1, true);
   //ArraySetAsSeries(cci2, true);
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   CopyBuffer (cci_h1, 0 , 0 , rates_total-prev_calculated, cci1);
   CopyBuffer (cci_h2, 0 , 0 , rates_total-prev_calculated, cci2);
   for ( int i = prev_calculated; i<rates_total;i++){
      HL_CCIBuffer[i] = cci1[i]-cci2[i];
   }
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :
Hiçbir şey anlamadım. Alexey, neyle ilgili olduğunu nasıl anladın? Ve bunun bazı çevirmenlerin çeviremediği 8 gösterge tamponu ile ne ilgisi var? Lanet olsun ayağını kır...

Artyom, sen programcı... Bir keresinde M. Botvinnik bilgisayarın aptal olduğunu söylemişti. Bu nedenle, her programcı bir aptalla nasıl konuşulacağını bilir.

Yaklaşık 8 veya 512 arabellek biraz daha önceydi ve bu metin, komisyoncunun hesabı MT4'ten MT5'e aktarmayı reddettiği bir şikayetti.


Igor Makanu :

Artyom'un ömrü boyunca sabretmesi için bir anıt dikerdim, bu kadar uzun sürede böyle karakterlerle başa çıkabilmek için.

Çoktan...


 
Roman Sharanov :

Peki, neyi yanlış yapıyorum?

 //+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots    1
//--- plot DivCCI
#property indicator_label1    "DivCCI"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    C'143,188,139'
#property indicator_style1    STYLE_SOLID
#property indicator_width1    2
//--- input parameters
input uint      InpPeriod= 70 ;   // CCI period
//--- indicator buffers
double          BufferDivCCI[];
double          BufferHCCI[];
double          BufferLCCI[];
//--- global variables
int             period_cci;
int             handle_hcci;
int             handle_lcci;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- set global variables
   period_cci= int (InpPeriod< 2 ? 2 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,BufferDivCCI, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,BufferHCCI, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 2 ,BufferLCCI, INDICATOR_CALCULATIONS );
//--- setting indicator parameters
   IndicatorSetString ( INDICATOR_SHORTNAME , "HL CCI (" +( string )period_cci+ ")" );
   IndicatorSetInteger ( INDICATOR_DIGITS , Digits ());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries (BufferDivCCI, true );
   ArraySetAsSeries (BufferHCCI, true );
   ArraySetAsSeries (BufferLCCI, true );
//--- create CCI's handles
   ResetLastError ();
   handle_hcci= iCCI ( NULL , PERIOD_CURRENT ,period_cci, PRICE_HIGH );
   if (handle_hcci== INVALID_HANDLE )
     {
       Print ( "The iCCI(" ,( string )period_cci, ") object was not created: Error " , GetLastError ());
       return INIT_FAILED ;
     }
   handle_lcci= iCCI ( NULL , PERIOD_CURRENT ,period_cci, PRICE_LOW );
   if (handle_lcci== INVALID_HANDLE )
     {
       Print ( "The iCCI(" ,( string )period_cci, ") object was not created: Error " , GetLastError ());
       return INIT_FAILED ;
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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 (rates_total< fmax (period_cci, 4 )) return 0 ;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if (limit> 1 )
     {
      limit=rates_total- 1 ;
       ArrayInitialize (BufferDivCCI, EMPTY_VALUE );
       ArrayInitialize (BufferHCCI, 0 );
       ArrayInitialize (BufferLCCI, 0 );
     }
//--- Подготовка данных
   int count=(limit> 1 ? rates_total : 1 ),copied= 0 ;
   copied= CopyBuffer (handle_hcci, 0 , 0 ,count,BufferHCCI);
   if (copied!=count) return 0 ;
   copied= CopyBuffer (handle_lcci, 0 , 0 ,count,BufferLCCI);
   if (copied!=count) return 0 ;

//--- Расчёт индикатора
   for ( int i=limit; i>= 0 && ! IsStopped (); i--)
     {
      BufferDivCCI[i]=BufferHCCI[i]-BufferLCCI[i];
     }

//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 

göstergenin her kene değil saniyede çalışması için mahkeme eklemek için neye ihtiyacınız olduğunu söyleyin ??

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 1

#özellik göstergesi_renk1 Kırmızı

#mülkiyet katı

çift arabellek[];

geçersiz başlangıç()

{

SetIndexBuffer(0, arabellek);

SetIndexStyle(0,STYLE_SOLID);

}

geçersiz başlangıç()

{


double vbid_1 = MarketInfo("USDRUB",MODE_BID);

double vbid_2 = MarketInfo("EURUSD",MODE_BID);




çift a = vbid_1;

çift b = vbid_2;

çift x = a / b ;

arabellek[0] = x;

yorum(x);

}


 
gonsharov :

göstergenin her kene değil saniyede çalışması için mahkeme eklemek için neye ihtiyacınız olduğunu söyleyin ??

https://docs.mql4.com/en/basis/function/events okumanız gerekir.

ve kendi olay işleyicinizi OnTimer() yazın

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...