Asesores Expertos: VR Breakdown level - Estrategia de trading basada en la ruptura del máximo o mínimo anterior

 

VR Breakdown level - Estrategia de trading basada en la ruptura del máximo o mínimo anterior:

Estrategia de trading basada en la simple ruptura de los niveles anteriores de máximo (High) o mínimo (Low)

VR Breakdown level - Estrategia de trading basada en la ruptura del máximo o mínimo anterior

Autor: Vladimir Pastushak

 

Hay mucho ruido, y el código es extraño en algunos sitios.

Por ejemplo, la parte de verificación de lotes.

// Obtener el paso de lote mínimo para el símbolo
  double stepvol = ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
  if(stepvol > 0)
    // Calcular el tamaño del lote redondeado al paso válido más próximo
    lt = stepvol * (int)(iLots / stepvol);
// Comprobar si el lote calculado es inferior al lote mínimo permitido
  if(lt < ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))
    lt = 0.0;  // Poner a 0 si está por debajo del mínimo (inválido)
// Devuelve la inicialización correcta
  return(INIT_SUCCEEDED);
}

Tenemos el lote 0.0

Entonces vamos a OnTick() y abrimos una posición con el lote "0.0".

if(trade.Buy(lt))

Este es un enfoque interesante, creo que el comercio será rentable.

--

No hay una simple comprobación de fondos suficientes, sin esta comprobación el EA da miedo de funcionar incluso en el tester, por no hablar del modo demo.

--

No entiendo la intención, ¿por qué este enfoque, para que sea diferente de "como todo el mundo y en todas partes" --

  if(new_time != old_time)
    // Actualiza old_time y devuelve true (nueva barra detectada)
    if((old_time = new_time) != NULL)
      return(true);

--

La comprobación de ajuste de orden TP y SL está implementada incorrectamente - si falla, la posición se deja al azar con valores cero.



 
Vitaly Muzichenko #:

Demasiado ruido, y el código es un poco raro en algunos lugares.

Por ejemplo, la parte de verificación de lotes

Tenemos lote 0.0

Entonces vamos a OnTick() y abrimos una posición con el lote "0.0".

Interesante enfoque, probablemente será rentable para el comercio

--

No hay una simple comprobación de fondos suficientes, sin esta comprobación el EA da miedo de funcionar incluso en el tester, por no mencionar en el modo demo

--

No entiendo la intención, ¿por qué tal enfoque, para que sea diferente "como todo el mundo y en todas partes".

--

La comprobación del ajuste de órdenes TP y SL está implementada incorrectamente - si falla, la posición se deja al azar con valores cero

Parte del código fue hecho usando ayuda, es decir, no escribí mis propios códigos, sino que los tomé de fuentes externas, para que los programadores principiantes pudieran ver el código familiar.

Así el código es más corto por 1 línea, es más conveniente y familiar para mí, además los principiantes verán la posibilidad adicional del lenguaje.

if(new_time != old_time)
    // Actualiza old_time y devuelve true (nueva barra detectada)
    if((old_time = new_time) != NULL)
      return(true);

и

if(new_time != old_time)
    // Actualiza old_time y devuelve true (nueva barra detectada)
      {
       old_time = new_time;
       return(true);
      }
 
Vitaly Muzichenko #:

La comprobación para establecer órdenes TP y SL se implementa incorrectamente - en caso de fallo la posición se deja al azar con valores cero.

¿Qué se debe hacer con esto?

Mi visión es fijar TP y SL en cualquier caso, si obtenemos un error de que la distancia es menor que la mínima permitida = fijarla al mínimo permitido.

Ahora en la forma actual, la orden no se establece, y la posición queda abandonada al azar.

 
Hola, he visto un post que en la versión MT4 del EA se ha arreglado el código, pero en la versión MT5 ¿se ha arreglado el código?