[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 263

 
kwadrad:
Chicos, necesito su ayuda, no puedo usar la función iMAOnArray para promediar el RSI en mi EA. ¿Alguien puede arrojar un código sobre este tema? Gracias.
//+------------------------------------------------------------------+
//|                                         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);
  }
//+------------------------------------------------------------------+
 

Una pregunta más. Puede que ya se haya discutido, pero no obstante. En el probador, en el modo de visualización (todos los ticks) se puede establecer la velocidad de llegada de la cotización. Máximo = 32. He puesto el máximo 31 y la prueba es relativamente lenta. Pongo el máximo de 32 y se va muy rápido. ¿Cómo puedo evitarlo? Aquí tienes un vistazo a lo que obtienes:

>
 
Y no voy a mirar. Este tema es tan antiguo como el foro. Por alguna razón, todavía no ha mejorado.
 
granit77:
Y no lo miraré. Este tema es tan antiguo como el foro. Por alguna razón, todavía no ha mejorado.

Esto es lo más destacado del probador.

;)

 
drknn:

Una pregunta más. Puede que ya se haya discutido, pero no obstante. En el probador, en el modo de visualización (todos los ticks) se puede establecer la velocidad de llegada de la cotización. Máximo = 32. He puesto el máximo 31 y la prueba es relativamente lenta. Pongo el máximo de 32 y se va muy rápido. ¿Cómo puedo evitarlo? Aquí tienes un vistazo a lo que obtienes:


Vaya a https://www.mql5.com/ru/forum/131853/page5#548438, deténgase en los puntos o intervalos adecuados, establezca una velocidad de "32" y disfrute.
 
Es una lástima: se perdió irremediablemente mucho tiempo de vida por ello. Y no soy el único.
 
FAQ:

Vaya a https://www.mql5.com/ru/forum/131853/page5#548438, deténgase en los puntos o intervalos adecuados, establezca una velocidad de "32" y disfrute.

Simplemente no puedo golpear físicamente la palanca de cambios a tiempo :(
 
¿Es difícil reducir la velocidad al principio de cada vela durante un par de milisegundos o es un diseño de software complicado?
 
Gracias. Pregunta despejada - se probará a precios de apertura:(
 

¡Hola amigos!

Estoy dominando mql4 del folleto de introducción al comercio de Forex He leído una estrategia simple en

¡Lo he probado con OsMA + SAR, he añadido Klimov trall, lo he optimizado (mi técnica es muy débil) !

Ya he empezado a utilizar mi propio EA, pero no tengo ningún consejo sobre cómo utilizarlo.

Fichero compilado y conjunto,

Currenex EURUSDcx 5 dígitos M15 EC Renesource Capital

Estadísticas de 6 semanas

Me temo que muy a menudo sobrepasa la posición.

Ajustes

extern double  lots                 = 0.1;
extern int     Stoploss             = 0,      //стоплосс, если 0 то не изменяется
               Takeprofit           = 0;      //тейкпрофит, если 0 то не изменяется
extern int     TrailingStop         = 30;     //длинна тралла, если 0 то нет тралла
extern int     StepTrall            = 0;      //шаг тралла - перемещать стоплосс не ближе чем StepTrall
extern int     NoLoss               = 0,     //перевод в безубыток при заданном кол-ве пунктов прибыли, если 0 то нет перевода в безубыток
               MinProfitNoLoss      = 0;      //минимальная прибыль при переводе вбезубыток
extern int     VolumeFiltr          =200;     // Фильтр по Volume
extern int     OsMaFast_ema_period  =12; 
extern int     OsMaSlow_ema_period  =26; 
extern int     OsMaSignal_period    =9;
extern bool    Dolivka              =false;  // до ТФ М15 включительно лучше не использовать
extern int     doliv                =300;    //отступ от уже отрытого ордера
extern int     dolivK               =2;      // множитель лота на доливку

Me temo que puedo usar alguna configuración diferente, que alguien lo pruebe con el probador y no me reprenda, estoy estudiando :-)

Archivos adjuntos:
pips4.0.zip  10 kb