[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 263

 
Ragazzi, ho bisogno del vostro aiuto, non posso usare la funzione iMAOnArray per la media RSI nel mio EA. Qualcuno può lanciare un pezzo di codice su questo argomento? Grazie.
 
kwadrad:
Ragazzi, ho bisogno del vostro aiuto, non posso usare la funzione iMAOnArray per la media RSI nel mio EA. Qualcuno può lanciare un pezzo di codice su questo argomento? Grazie.
//+------------------------------------------------------------------+
//|                                         Heiken Ashi Smoothed.mq4 |
//+------------------------------------------------------------------+
//|                                                      mod by Raff |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Forex-TSD.com "
#property link      "https://www.forex-tsd.com/"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Magenta
#property indicator_color2 MediumSpringGreen
#property indicator_color3 Magenta
#property indicator_color4 MediumSpringGreen
//---- parameters
extern int MaMetod  = 2;/*

0 - MODE_SMA Простое скользящее среднее 
1 - MODE_EMA 1 Экспоненциальное скользящее среднее 
2 - MODE_SMMA 2 Сглаженное скользящее среднее 
3 - MODE_LWMA 3 Линейно-взвешенное скользящее среднее 


*/
extern int MaPeriod = 6;
extern int MaMetod2  = 3;
extern int MaPeriod2 = 2;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];

double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//----
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//|------------------------------------------------------------------|
int init()
  {
//---- indicators
   IndicatorBuffers(8);

   SetIndexStyle(0,DRAW_HISTOGRAM, 0, 1, Magenta);// Хай/лоу отрисованной свечи
   SetIndexBuffer(0, ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM, 0, 1, MediumSpringGreen);// Хай/лоу отрисованной гистограммы
   SetIndexBuffer(1, ExtMapBuffer2);
   SetIndexStyle(2,DRAW_HISTOGRAM, 0, 3, Magenta);// Оупен/Клоуз отрисованной гистограммы
   SetIndexBuffer(2, ExtMapBuffer3);
   SetIndexStyle(3,DRAW_HISTOGRAM, 0, 3, MediumSpringGreen);// Оупен/Клоуз отрисованной гистограммы
   SetIndexBuffer(3, ExtMapBuffer4);
//----
   SetIndexDrawBegin(0,5);
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexBuffer(3,ExtMapBuffer4);
   
   // Накопительные массивы - они подготавливаются, а затем усредняются второй скользящей
   // результат усреднения вносится в индикаторный буффер и отрисовывается на графике
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexBuffer(5,ExtMapBuffer6);
   SetIndexBuffer(6,ExtMapBuffer7);
   SetIndexBuffer(7,ExtMapBuffer8);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   double maOpen, maClose, maLow, maHigh;// переменные для показаний скользящих, построенных по разным ценам
   double haOpen, haHigh, haLow, haClose;// переменны вычисленные 
   if(Bars<=10) return(0);
   ExtCountedBars=IndicatorCounted();
//---- check for possible errors
   if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
   if (ExtCountedBars>0) ExtCountedBars--;
   int pos=Bars-ExtCountedBars-1;
   int pos2=pos;
   while(pos>=0)
     {
      maOpen=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_OPEN,pos);
      maClose=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_CLOSE,pos);
      maLow=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_LOW,pos);
      maHigh=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_HIGH,pos);

      haOpen=(ExtMapBuffer5[pos+1]+ExtMapBuffer6[pos+1])/2;
      haClose=(maOpen+maHigh+maLow+maClose)/4;
      haHigh=MathMax(maHigh, MathMax(haOpen, haClose));
      haLow=MathMin(maLow, MathMin(haOpen, haClose));

      if (haOpen<haClose) 
        {
         ExtMapBuffer7[pos]=haLow;
         ExtMapBuffer8[pos]=haHigh;
        } 
      else
        {
         ExtMapBuffer7[pos]=haHigh;
         ExtMapBuffer8[pos]=haLow;
        } 
      ExtMapBuffer5[pos]=haOpen;
      ExtMapBuffer6[pos]=haClose;

           pos--;
     }
     
   int i;
   for(i=0; i<pos2; i++) ExtMapBuffer1[i]=iMAOnArray(ExtMapBuffer7,Bars,MaPeriod2,0,MaMetod2,i);
   for(i=0; i<pos2; i++) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer8,Bars,MaPeriod2,0,MaMetod2,i);
   for(i=0; i<pos2; i++) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer5,Bars,MaPeriod2,0,MaMetod2,i);
   for(i=0; i<pos2; i++) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer6,Bars,MaPeriod2,0,MaMetod2,i);

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

Un'altra domanda. Forse è già stato discusso, ma comunque. Nel tester, in modalità di visualizzazione (tutti i tick) è possibile impostare la velocità di arrivo delle quotazioni. Massimo = 32. Ho impostato il massimo 31 e il test è relativamente lento. Ho impostato il massimo 32 e va molto veloce. Come posso aggirare il problema? Ecco uno sguardo a ciò che si ottiene:

>
 
E non guarderò. Questo problema è vecchio come il forum. Per qualche ragione, non è ancora migliorato.
 
granit77:
E non lo guarderò. Questo problema è vecchio come il forum. Per qualche ragione, non è ancora migliorato.

Questo è il "pezzo forte" del tester!

;)

 
drknn:

Un'altra domanda. Forse è già stato discusso, ma comunque. Nel tester, in modalità di visualizzazione (tutti i tick) è possibile impostare la velocità di arrivo delle quotazioni. Massimo = 32. Ho impostato il massimo 31 e il test è relativamente lento. Ho impostato il massimo 32 e va molto veloce. Come posso aggirare il problema? Ecco uno sguardo a ciò che si ottiene:


Vai su https://www.mql5.com/ru/forum/131853/page5#548438, fermati nei punti o negli intervalli giusti, imposta una velocità "32" e divertiti.
 
Un peccato - un sacco di tempo della vita è stato irrimediabilmente perso a causa di questo. E non sono l'unico.
 
FAQ:

Vai su https://www.mql5.com/ru/forum/131853/page5#548438, fermati nei punti o negli intervalli giusti, imposta una velocità "32" e divertiti.

Non riesco proprio a colpire fisicamente il cambio in tempo :(
 
È difficile rallentare all'inizio di ogni candela per un paio di millisecondi o è un complicato design del software?
 
Grazie. Domanda rimossa - testerà ai prezzi di apertura:(
Motivazione: