Asesores Expertos: EA_MALR

 

EA_MALR:

El Asesor Experto EA_MALR ha sido desarrollado sobre la base del indicador MALR (autor desconocido).

Se abre una venta después que el precio cruza de arriba a abajo la línea <MALRHH> (la línea superior), se abre una compra después del cruce de la línea <MALRLL> (la línea inferior) por el precio.

Incluye las siguientes funciones:

  • promediado de la posición en la nueva señal,
  • reversión de la posición cuando aparece la señal contraria,
  • trailing stop con ajustes adicionales,
  • incremento de lotes para controlar la reducción del patrimonio.


Autor: Alexander Puzikov

 
Automated-Trading:

EA_MALR:

Autor: Im_ hungry

Buenas tardes, simplemente un gran EA en mi opinión. Al menos visualmente y en pruebas es bueno. De momento lo estoy probando. Pregunta. ¿Entiendo bien que el cruce de líneas en la apertura de posiciones lo consideráis al cierre de la vela? ¿O se considera cualquier cruce incluso dentro del periodo de la vela?
 
Buenas tardes, por favor haga posible descargar el EA inmediatamente en MetaTreider 5
 
Por alguna razón el búho no funciona(((
 

Uno de los EA bien escrito, en un buen orden,

Si alguien tiene hambre de un código bien escrito, acaba de tener éste,

Gracias a loooot al autor,

Todavía me pregunto, ¿por qué no otros comentarios sobre este EA.

 
fondo algún error en la nueva versión de mql5 alguien por favor arreglar esto
void OnTick()
  {
   bool pos=PositionSelect(Symbol());
   if(!pos || (pos && (use_Averaging || Position_overturn)))
     {
      datetime Now_time[1];
      int coptTime=CopyTime(Symbol(),NULL,0,1,Now_time);
      if(Now_time[0]>_time && coptTime!=-1)
        {
         int type=-1;
         double propn=0,prev_lot=0;
         if((use_Averaging || Position_overturn) && pos)
           {
            prev_lot=PositionGetDouble(POSITION_VOLUME);
            type=(int)PositionGetInteger(POSITION_TYPE);
            if(type==0 && prev_open!=0) propn = prev_open-SymbolInfoDouble(Symbol(),SYMBOL_ASK);
            if(type==1 && prev_open!=0) propn = SymbolInfoDouble(Symbol(),SYMBOL_BID)-prev_open;
           }
         ArrayInitialize(high_extr,0);
         ArrayInitialize(low_extr,0);
         int cop1 = CopyBuffer(handle_MALR,3,1,2,high_extr);
         int cop2 = CopyBuffer(handle_MALR,4,1,2,low_extr);
         if(cop1==2 || cop2==2 || high_extr[0]>0 || high_extr[1]>0 || low_extr[0]>0 || low_extr[1]>0)
           {
            double close[2];
            int copy_close = CopyClose(Symbol(),NULL,1,2,close);
            if(copy_close==2)
              {
               if(high_extr[0]<=close[0] && high_extr[1]>=close[1])
                 {

                  if(Position_overturn)
                    {
                     if(type==0)
                       {
                        if(close())
                          {
                           if(!open(1,prev_lot,3)) return;
                          }
                        _time=Now_time[0];
                        return;
                       }
                     if(!use_Averaging && pos)
                       {
                        _time=Now_time[0];
                        return;
                       }
                    }
                  if(use_Averaging)
                    {
                     if(type!=-1)
                       {
                        if(type==1 && propn>=loss_forAveraging*point && propn!=0)
                           if(!open(1,prev_avlot,2)) return;
                       }
                     else if(!open(1,0,1)) return;
                     _time=Now_time[0];
                     return;
                    }
                  else
                    {
                     if(!open(1,0,1)) return;
                    }
                 }
               if(low_extr[0]>=close[0] && low_extr[1]<=close[1])
                 {
                  if(Position_overturn)
                    {
                     if(type==1)
                       {
                        if(close())
                          {
                           if(!open(0,prev_lot,3)) return;
                          }
                        _time=Now_time[0];
                        return;
                       }
                     if(!use_Averaging && pos)
                       {
                        _time=Now_time[0];
                        return;
                       }
                    }
                  if(use_Averaging)
                    {
                     if(type!=-1)
                       {
                        if(type==0 && propn>=loss_forAveraging*point && propn!=0)
                           if(!open(0,prev_avlot,2)) return;
                       }
                     else if(!open(0,0,1)) return;
                     _time=Now_time[0];
                     return;
                    }
                  else
                    {
                     if(!open(0,0,1)) return;
                    }
                 }
               _time=Now_time[0];
              }
           }
        }
      else return;
     }
 
63839348 acceso inválido a array

Cambia close() por Close(). Poner la primera mayúscula.

Aunque tiene otro error. el error de tipo de relleno no soportado.