Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
1148
Ranking:
(61)
Publicado:
2018.12.04 11:18
\MQL5\Include\fxsaber\Virtual\
String.mqh (0.59 KB) ver
Sync.mqh (5.42 KB) ver
Order.mqh (15.77 KB) ver
Orders.mqh (12.19 KB) ver
Virtual.mqh (21.14 KB) ver
\MQL5\Experts\fxsaber\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Esta biblioteca multiplataforma permite trabajar con el entorno comercial virtual usando una de las maneras más simples.


Escenario del uso del entorno comercial virtual.

  1. Simulador en tiempo real. Eso quiere decir que Usted puede observar en tiempo real qué sería si el Asesor Experto negociara usando los precios más recientes en el Probador de Estrategias. Siempre es útil porque permite averiguar las razones de la divergencia entre lo real y el Probador de Estrategias. Además, no hace falta esperar la llegada del nuevo día (limitación del Probador MT5) o crear unas herramientas especiales para el Probador para que pueda captar datos recientes. Por tanto, no hace falta iniciar constantemente el Probador de Estrategias para las actualizaciones. Prácticamente, el entorno comercial virtual es el Probador de Estrategias capaz de trabajar en tiempo real.
  2. Optimización automática. El entorno comercial virtual supone que Usted le indica qué datos tiene que usar. Por eso, si tiene un array de datos históricos, Usted puede usarlos para testear cualquier sistema de trading dentro del entorno comercial virtual. De esta manera, aparece una simple posibilidad de hacer la optimización automática dentro de los programas (el programa optimiza a sí mismo como si lo hiciera el Probador estándar).
  3. Traspaso del trading real en virtual (y viceversa). Por ejemplo, se practica la desconexión del sistema comercial en caso de las pérdidas hasta los «mejores tiempos». Normalmente, se propone analizar los «mejores tiempos» a través del Probador de Estrategias, o tradeando con lote mínimo. Mientras que el entorno virtual permite dejar de negociar en el entorno comercial real siguiendo el trading en el entorno comercial virtual. Eso ofrece una comodidad importante al analizar los «mejores tiempos» y activación fácil inversa del trading en datos reales.
  4. Simplificación de la lógica comercial en la cuenta real. El mercado crea situaciones que no existen en el Probador de Estrategias. Se trata de las denegaciones y ejecución parcial. Eso causa muchas complicaciones para que el trading se realice en la cuenta real de la manera muy parecida a la situación ideal cuando el sistema comercial se creaba en el Probador. Generalmente, los autores de sistemas comerciales dedican muchos esfuerzos para luchar contra los detalles del mercado que son muy difíciles para prever. Prácticamente, aprenden en sus errores pagando su propio dinero. Eso se debe a que las cuentas demo no son capaces de emular muchas cosas del mundo real. El entorno virtual permite observar la imagen ideal de la ejecución en cualquier momento. Por tanto, para evitar los escollos del mercado real, sólo hace falta el acceso en tiempo real a esta imagen ideal y un sincronizador de calidad (servicio de copiado) desde el entorno virtual al entorno real. Por eso, los entornos virtuales nos ayudan bastante cuando resolvemos situaciones complicadas en el mercado real.
  5. Aceleración del Probador de Estrategias. El Probador estándar es universal. Eso significa que tienen que emular el entorno comercial al máximo. Eso supone unos altos costes en forma de las limitaciones de la velocidad del trabajo. Durante la creación y el análisis del sistema comercial, esta alta precisión es muy completa. Existen varias maneras de acelerar el Probador. Empezando de los símbolos personalizados (hasta centenares de por cientos) hasta los entornos comerciales virtuales (decenas y centenares de por cientos), que pueden permitir no tomar en cuenta algo para los índices de velocidad. La aceleración del Probador es un lado bastante fuerte de los entornos virtuales, porque ahorra los recursos computacionales, y sobre todo, el tiempo.
  6. Reversión de sistemas comerciales. El entorno comercial virtual permite invertir rápido cualquier sistema comercial.


Implementación.

Esta biblioteca permite crear el entorno comercial virtual, es decir, realizar el trading de tal manera como si fuera el entorno comercial real. Esta funcionalidad para las bibliotecas no es nueva, pero dicha biblioteca multiplataforma tiene una propiedad (a veces importante): para poder usarla, no es necesario estudiar nada, es suficiente saber sólo la lógica comercial de MT4 (no MT5).

Para realizar el trading virtual, ha sido elegida la lógica comercial MT4-style como la más conveniente y que permite escribir fácilmente los EAs topo multiplataforma.


Ejemplo.

Este ejemplo especial permite demostrar la funcionalidad de la biblioteca.

// Ejecución del sistema en el entorno real y virtual

// #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
#include <fxsaber\Virtual\Virtual.mqh> // Entorno comercial virtual

input double Lots = 1;
input int Interval = 100;  // Tiempo de vida de la posición
input bool Example = true; // Ejemplo del código a elegir

// Sistema comercial inversa
void System()
{
  if (!OrderSelect(OrdersTotal() - 1, SELECT_BY_POS))
    OrderSend(_Symbol, OP_BUY, Lots, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 100, 0, 0); // Si no hay posición, abrimos
  else if (TimeCurrent() - OrderOpenTime() > Interval) // Si la posición ha vivido más del tiempo especificado
  {
    // Invertir posición
    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100);
    OrderSend(_Symbol, 1 - OrderType(), Lots, OrderClosePrice(), 100, 0, 0);
  }
}

void OnTick()
{
  static const int handle = VIRTUAL::Create(); // Creamos el manejador del entorno virtual. 0 - entorno real

  if (Example)
  {
    VIRTUAL::Select(); // Seleccionamos el entorno real
    System();          // Iniciamos el sistema en el entorno seleccionado (real)

    VIRTUAL::Select(handle); // Seleccionamos el entorno comercial virtual
    VIRTUAL::NewTick();      // Añadimos el tick en el entorno comercial virtual
    System();                // Iniciamos el sistema en el entorno seleccionado (virtual)
  }
  else // Escritura alternativa de las mismas acciones.
    // Repasamos todos los entornos comerciales
    for (int i = 0; i <= VIRTUAL::GetAmount(); i++)
    {
      VIRTUAL::Select(i); // Seleccionamos el entorno correspondiente
      VIRTUAL::NewTick(); // Añadimos el tick en el entorno comercial seleccionado

      System(); // Iniciamos el sistema en el entorno seleccionado
    }

  Comment(VIRTUAL::ToString()); // Mostramos el estado del entorno en el gráfico
}

Es un EA multiplataforma inverso, cuya lógica comercial cabe en apenas unas líneas (función System) gracias a MT4-style. El EA inicia el sistema en el entorno real y virtual simultáneamente. Se puede verlo perfectamente en el Probador de Estrategias de MT4 o MT5 (CTRL+F5)

En la captura de pantalla se muestra que el trading en el entorno real y virtual es idéntico.


Obsérvese que el código del sistema comercial no cambia en absoluto. Sólo se selecciona el entorno comercial: real o cualquier número de virtuales.

El código expuesto es sobrante: son dos versiones de lo mismo con el fin de demostrar la lógica del trabajo con la biblioteca.


Aceleración del Probador de Estrategias.

Puesto que el escenario de la aceleración del Probador (ver el punto 5 más arriba) puede ser requerido más a menudo que los demás, ha sido incluida la posibilidad de pasar cualquier sistema en el entorno virtual y viceversa mediante la adición de dos líneas al principio del código.

#define VIRTUAL_TESTER // Ejecutamos en el entorno virtual
#include <fxsaber\Virtual\Virtual.mqh> // Entorno comercial virtual

Precisamente la línea seleccionada ofrece la posibilidad de no meterse en el código original del sistema comercial.

Este modo ha sido ideado especialmente para el Probador de Estrategias. Se supone que se inicia una optimización prolongada con el entorno virtual activado, en vez del real (VirtualTester = true). Eso aumenta considerablemente la velocidad de la Optimización, ganando en el tiempo. Luego los resultados obtenidos (criterio OnTester - Balance) pueden usarse para los repasos clásicos únicos en el entorno real (VirtualTester = false).


Reversión de sistemas comerciales.

Las mismas dos líneas que sirven para la aceleración del Probador permiten solucionar otro problema, a saber. la reversión del sistema.

El modo ReverseDeals = true activa la reversión de transacciones. El algoritmo interno es el siguiente:

  • El EA original tradea dentro del entorno virtual, como si fuera en el entorno real.
  • En el entorno real se muestran las posiciones inversas a las posiciones correspondientes en el entorno virtual.

Así, la lógica del EA no se altera, pero podemos ver qué es lo que nos ofrece la reversión del sistema. Este modo también sirve para el Probador.


Particularidades.

  • No todo ha sido implementado en este entorno comercial virtual, en comparación con el Probador de Estrategias estándar.
  • Se soportan ambos modos: Hedge/Netting. Por ejemplo, se puede crear el entorno virtual Netting y Hedge simultáneamente en MT4/5 .
  • No hay limitación del número de entornos virtuales.
  • No hay y no habrá ejecución por los precios last, como sucede a veces en el Probador MT5. Ya que el precio last no es actual para cualquier momento de tiempo.
  • Las órdenes limitadas y los niveles TakeProfit siempre se ejecutan por los precios especificados: no se deslizan. Eso permite quitar la exclusividad de algunos sistemas comerciales que puede mostrarse por el Probador MT5.
  • Las órdenes Stop y los niveles Stop Loss siempre se ejecutan por el primer precio de aceptación (deslizamientos negativos). También con el fin de luchar contra los Grales de prueba.
  • La colocación de las órdenes pendientes y los niveles Sl/TP por los precios actuales inicia enseguida su aceptación, a diferencia de algunos modos del trabajo del Probador MT5. Este comportamiento corresponde a las realidades del mercado.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/22577

MAMy Expert MAMy Expert

Asesor Experto a base del indicador MAMy v.3

TrendLineAlert_V2 TrendLineAlert_V2

El indicador muestra la línea tendencial inclinada, cuyos parámetros se establecen cuando el trader inicia el indicador. Esta línea establece el nivel del disparo de la señal, y se saltan las alertas con el envío de los mensajes de correo y notificaciones Push al spartphone cuando esta línea tendencial se rompe.

VR Donchian Lite MT5 VR Donchian Lite MT5

Indicador clásico del canal de Donchian (Donchian Channel)

Stochastic - with normalized zones Stochastic - with normalized zones

Estocástico con zonas normalizadas