Pending Order Grid EA MT5
- Utilidades
- Francisco Manuel Vicente Berardo
- Versión: 1.6
- Actualizado: 5 octubre 2024
- Activaciones: 20
La Cuadrícula de Órdenes Pendientes es un Asesor Experto multisímbolo y multimarco de tiempo que permite la implementación de estrategias múltiples basadas en cuadrículas de órdenes pendientes.
Descripción general
La Rejilla de Órdenes Pendientes permite la ejecución de una estrategia definida por el usuario a través de la creación de rejillas de órdenes pendientes. El Asesor Experto coloca órdenes pendientes de un tipo determinado (Buy Limit, Sell Limit, Buy Stop o Sell Stop) en niveles de precios equidistantes para formar cada cuadrícula. El usuario puede configurar diferentes cuadrículas para que existan simultáneamente - sólo es necesario adjuntar el EA en múltiples ventanas de gráficos del símbolo(s) deseado(s).
El inicio y el fin de una cuadrícula pueden elegirse entre dos modos: precio o tiempo. Dependiendo de los modos seleccionados, el robot de trading sólo comienza a colocar órdenes pendientes cuando el precio actual está "cerca" del primer precio objetivo (Precio de Inicio) o se alcanza la Hora de Inicio y se detiene la colocación cuando el último precio objetivo supera el Precio de Stop o se alcanza la Hora de Stop, donde Precio de Inicio, Hora de Inicio, Precio de Stop y Hora de Stop son parámetros de entrada.
La colocación de una orden pendiente está regulada por un intervalo de precios, cuyos límites se encuentran a las distancias Nivel Stop y Nivel Stop + Nivel Extra del precio objetivo de la orden, donde Nivel Extra es un parámetro de entrada. Cada vez que hay nuevas cotizaciones disponibles, y el precio del símbolo se encuentra en este intervalo, se coloca la orden pendiente. El precio objetivo de la siguiente orden viene dado simplemente por el anterior sumado (Sell Limit o Buy Stop) o restado (Buy Limit o Sell Stop) con el parámetro de entrada Price Level.
Una excepción al procedimiento anterior es cuando la primera orden pendiente de la parrilla se activa por la Hora de Inicio. En este caso, el robot de negociación intenta colocar inmediatamente la orden a la distancia del Nivel Stop. En caso de rechazo por parte del servidor de operaciones, añadirá 1 pip a la distanciaanterior e intentará de nuevo la colocación de la orden. Este procedimiento se repetirá hasta que se alcance la distancia Stop Level + Extra Level.
El número máximo de órdenes pendientes simultáneas colocadas por el EA viene dado por la expresión
- Ceil ( (Nivel Stop + Nivel Extra) / Nivel de Precio ), para Nivel de Precio > 0,
donde Ceil representa la función matemática habitual. La expresión puede tomar los siguientes valores:
- 1 para Nivel de Precio ≥ Nivel Stop + Nivel Extra,
- 2 para (Nivel Stop + Nivel Extra)/2 ≤ Nivel Precio < Nivel Stop + Nivel Extra,
- 3/más para Nivel de Precio < (Nivel Stop + Nivel Extra)/2.
Gestión del riesgo
El volumen utilizado para colocar una orden pendiente se elige entre un tamaño de lote fijo y uno variable, disponibles a través de los parámetros de entrada Volumen y Margen libre %, respectivamente. Si no hay suficiente dinero en la cuenta para el volumen elegido, se sigue enviando una solicitud de colocación de la orden al servidor de operaciones. El objetivo es permitir la apertura de la posición correspondiente si el margen libre aumenta lo suficiente hasta alcanzar el precio objetivo. Este aumento puede deberse a un depósito en la cuenta o al beneficio de la posición entre la colocación y la activación de la orden pendiente.
Parámetros de entrada
PARRILLA DE ÓRDENES PENDIENTES
- Precio de inicio: Precio utilizado para definir el inicio de la rejilla.
- Hora de inicio: Hora utilizada para definir el inicio de la cuadrícula.
- Precio Stop: Precio utilizado para definir el stop de la rejilla.
- Hora de parada: Hora utilizada para definir la parada de la parrilla.
- Nivel de Precio: Distancia utilizada entre órdenes pendientes del mismo tipo (pips).
- Nivel Extra: Distancia desde el Nivel de Stop, que a su vez es una distancia desde el precio objetivo, ambos representan los límites del intervalo de precios donde el precio del símbolo necesita estar para la colocación de la orden pendiente (pips).
COLOCACIÓN DE ÓRDENES PENDIENTES
- Número Mágico: Identificador del Asesor Experto.
- Tipo: Tipo de orden pendiente utilizada para formar la parrilla.
- Volumen: Tamaño del lote por operación (lotes).
- Margen Libre %: Porcentaje de margen libre de la cuenta utilizado para calcular el tamaño de lote de la operación actual (%).
- Stop Loss: Distancia desde el precio objetivo de la orden pendiente para colocar un Stop Loss (pips).
- Take Profit: Distancia desde el precio objetivo de la orden pendiente para colocar un Take Profit (pips).
- Desviación: Máximo deslizamiento permitido desde el precio solicitado (pips).
- Política de llenado: Política de ejecución por volumen.
- Tipo de Vencimiento: Modo de validez de la orden.
- Tiempo de expiración: Periodo de validez de la orden (sólo se utiliza con el modo de validez ORDER_TIME_SPECIFIED).
- Comentario: Mensaje de texto que se muestra en la ventana del gráfico después de una(n) (re)inicialización del EA, en la lista de Objetos después de crear una línea horizontal/vertical (en cada uno de los límites de la rejilla) o de colocar una orden pendiente, y en las pestañas Comercio o Historial de la ventana Caja de herramientas después de colocar una orden pendiente (sólo permite 31 caracteres).
MODIFICACIÓN DE POSICIONES
- Trailing Stop - SL: Distancia desde el precio de mercado para colocar un Stop Loss tras un movimiento favorable del precio (pips).
- Trailing Start - SL: Distancia desde el precio de apertura de la posición que debe alcanzarse para la activación de la función "Trailing Stop - SL" (pips).
- Trailing Step - SL: distancia desde el precio en el que se produjo la anterior modificación del Stop Loss que debe alcanzarse antes de la colocación de un nuevo Stop Loss (pips).
- Trailing Stop - TP: Distancia desde el precio de mercado para colocar un Take Profit después de un movimiento desfavorable del precio (pips).
- Trailing Start - TP: Distancia desde el precio de apertura de la posición que debe alcanzarse para la activación de la función "Trailing Stop - TP" (pips).
- Trailing Step - TP: Distancia desde el precio en el que se produjo la anterior modificación del Take Profit que debe alcanzarse antes de la colocación de un nuevo Take Profit (pips).
CRITERIO DE OPTIMIZACIÓN
- Expresión matemática: Expresión matemática utilizada para calcular un parámetro estadístico personalizado para ordenar los resultados de la optimización (véase la sección Criterio de optimización más adelante).
Algunos de los parámetros disponibles aceptan valores que conducen a opciones particulares.
- Precio Inicial o Precio Final: Un valor nulo/negativo significa la función inactiva del parámetro.
- Hora de Inicio o Hora de Parada: Un valor anterior a la hora actual significa la función inactiva del parámetro.
- Nivel de Precio: Un valor nulo significa que el precio objetivo es constante para todas las órdenes pendientes.
- Nivel Extra: Un valor nulo significa que el precio del símbolo tiene que estar exactamente a la distancia del Nivel Stop del precio objetivo para la colocación de la orden pendiente.
- Volumen: Un valor inferior al volumen mínimo permitido por el broker se convierte en este último. Un valor superior al volumen máximo disponible por el margen libre se convierte en esta horma.
- Margen Libre %: Un valor cuyo volumen no alcanza el volumen mínimo permitido por el broker se convierte en esta horma. Un valor cuyo volumen supere el volumen máximo disponible por el margen libre se convierte en esta horma.
- Stop Loss, Take Profit, Trailing Stop - SL o Trailing Stop - TP: Un valor nulo significa la función inactiva del parámetro. Cualquier valor entre 0 y el Nivel de Stop se convierte en esta horma.
- Trailing Start - SL o Trailing Start - TP: Un valor nulo significa la activación inmediata de la función "Trailing Stop - SL" o "Trailing Stop - TP", respectivamente.
- Trailing Start - SL: El valor spread significa la activación de la función "Trailing Stop - SL" en el punto de equilibrio, aunque éste no esté garantizado. Los valores spread + "Trailing Stop - SL" significan la activación de la función "Trailing Stop - SL" en un beneficio en el que se ha garantizado el punto de equilibrio.
- Trailing Step - SL o Trailing Step - TP: Un valor nulo significa el funcionamiento continuo de la función "Trailing Stop - SL" o "Trailing Stop - TP", respectivamente.
Los parámetros de entrada que definen los límites de la rejilla deben obedecer algunas reglas.
- Deben seleccionarse tanto el inicio como el stop de la rejilla, cada uno de ellos elegido entre un precio o un tiempo.
- Se puede utilizar cualquier combinación entre el inicio y el fin de la rejilla: Precio de Inicio + Precio de Parada, Precio de Inicio + Hora de Parada, Hora de Inicio + Precio de Parada y Hora de Inicio + Hora de Parada.
- El Precio de Inicio no puede superar el Precio Stop en la parrilla de órdenes Límite de Venta o Stop de Compra.
- El Precio Stop no puede exceder el Precio Start en la parrilla de órdenes Buy Limit o Sell Stop.
- La Hora de inicio no puede superar la Hora de finalización en ninguna cuadrícula de órdenes pendientes.
Criterio de Optimización
El Asesor Experto permite la creación y uso de un nuevo parámetro estadístico (además de los disponibles) para ordenar los resultados de la optimización. Este parámetro estadístico personalizado resulta de una expresión matemática calculada después de las pruebas. La expresión debe obedecer las reglas sintácticas y el orden de precedencia, estando constituida por los siguientes elementos:
- Números enteros y reales.
- Parámetros estadísticos.
- Operadores matemáticos de suma (+), resta (-), multiplicación (*), división (/) y exponenciación (^).
- Funciones matemáticas y trigonométricas.
- Paréntesis curvos (()) para definir la precedencia y contener el argumento o argumentos de la función.
- Punto (.) como punto decimal y coma (,) como separador de los argumentos de la función.
Los parámetros estadísticos se utilizan escribiendo la(s) inicial(es) del (de los) identificador(es) respectivo(s) después del término "STAT". En caso de que haya dos identificadores con la misma(s) inicial(es), se debe añadir además "1" o "2", dependiendo del orden en que ambos aparezcan en la lista. Por ejemplo, "STAT_PROFIT" y "STAT_MAX_CONLOSS_TRADES" serían "P" y "MCT2", respectivamente. Lista de identificadores, sin "STAT_", cuya(s) inicial(es) requiere(n) "1" o "2":
CONPROFITMAX (C1), CONPROFITMAX_TRADES (CT1), MAX_CONWINS (MC1), MAX_CONPROFIT_TRADES (MCT1), CONLOSSMAX (C2), CONLOSSMAX_TRADES (CT2), MAX_CONLOSSES (MC2), MAX_CONLOSS_TRADES (MCT2), EQUITYDD_PERCENT (EP1), EXPECTED_PAYOFF (EP2), LOSS_TRADES (LT1), LONG_TRADES (LT2).
Las funciones matemáticas/trigonométricas se utilizan escribiendo el nombre respectivo después de "Math" y uno o dos argumentos dentro de paréntesis, separados por una coma en este último caso. Por ejemplo, "MathLog10()" y "MathPow()" serían "Log10(argumento)" y "Pow(argumento1,argumento2)", respectivamente. Lista de nombres que corresponden a las funciones disponibles:
Abs, Arccos, Arcsin, Arctan, Arctan2, Ceil, Cos, Exp, Floor, Log, Log10, Max, Min, Mod, Pow, Rand, Round, Sin, Sqrt, Tan, Expm1, Log1p, Arccosh, Arcsinh, Arctanh, Cosh, Sinh, Tanh.
Nota: "MathRand()" sólo se ejecuta con "GetTickCount()" como argumento de "MathSrand()", se utiliza sin nada dentro de los paréntesis - simplemente escribiendo "Rand()".
Además, la expresión tiene las siguientes propiedades:
- Se permiten las notaciones científica, de ingeniería y E.
- La multiplicación debe indicarse explícitamente (mediante el símbolo correspondiente).
- El sistema no distingue entre mayúsculas y minúsculas.
- El espacio ( ) está permitido y no afecta al cálculo de la expresión.
- La expresión de entrada está limitada a 233 caracteres.
Ejemplos de representación de un número utilizando diversas notaciones: "0,0000325" (decimal), "3,25*10^-5" (científico), "32,5*10^-6" (ingeniería) y "32,5E-6" (E).
¡IMPORTANTE! El EA no verifica si la expresión de entrada cumple todos los requisitos, es decir, si obedece a las reglas de sintaxis/normas, por lo que cualquier infracción de éstas conduce a un resultado poco fiable.
Información mostrada
El Asesor Experto posee un gran número de mensajes para informar al usuario sobre errores y cambios de condiciones que puedan ocurrir durante su funcionamiento. Los mensajes se muestran a través de la función Alerta (mediante una ventana emergente), su contenido incluye:
- La advertencia de que un parámetro de entrada ha sido configurado incorrectamente.
- La información de que la cuenta no tiene suficiente dinero para el volumen elegido (ver la sección de Gestión de Riesgo más arriba).
- La información de que se ha alcanzado el número de órdenes permitidas por el broker.
- El valor anterior y actual del Nivel de Stop del símbolo cuando éste se actualiza.
- La descripción de los Códigos de Devolución del Servidor de Operaciones.
- Las cotizaciones del símbolo (inmediatamente) antes de la formación de la solicitud de operación, seguidas de las cotizaciones del símbolo (inmediatamente) después de la decisión del servidor de operaciones.
- La descripción de Errores de Tiempo de Ejecución.
- La función estándar en el archivo de inclusión donde se detectó el error de tiempo de ejecución (sólo relevante para el programador).
- Los Códigos de Razón de Desinicialización descripción.
Nota: Algunos elementos de la lista se muestran simultáneamente (en la misma línea de texto): 5, 6 y 7; 7 y 8.
Durante el funcionamiento del EA, los mensajes mostrados se agrupan por tipo de ocurrencia (relacionados con cada elemento de la lista, excepto el 1, 6 y 8) y se cuentan. Inmediatamente antes de la descarga del EA, se presentaun mensaje final que contiene los grupos con sus respectivos recuentos (si éstos son > 0).
Tras la (re)inicializacióndel EA, se muestran en el gráfico dos líneas de referencia en los límites de la rejilla (inicio y fin). Cada línea es horizontal/vertical cuando el límite de la rejilla es el precio/tiempo, respectivamente. Ambas líneas son azules/rojas cuando el tipo de orden pendiente de la cuadrícula es Compra/Venta, respectivamente. Consejo: Sitúe el puntero del ratón sobre una de esas líneas para ver su nombre de objeto ("Límite/Venta - Precio/Hora de inicio/parada"). Nota: Las propiedades de un objeto gráfico pueden editarse en la lista Objetos.
Después de la prueba/optimización del EA, el resultado de la expresión matemática, insertada en el parámetro de entrada Expresión Matemática, se presenta en las pestañas Diario/Resultados de Optimización de la ventana Probador de Estrategias, respectivamente. Después de la prueba del EA, los valores de losparámetros estadísticos disponibles también se presentan en la pestaña Diario.
Observaciones
En algunos casos, la sesión de cotización puede comenzar antes o terminar más tarde que la sesión de negociación correspondiente (con una diferencia de cinco minutos, por ejemplo). Durante el intervalo de tiempo en el que la sesión de cotización está abierta, pero la sesión de negociación está todavía/ya cerrada, el Asesor Experto inicia/continúa procesando los ticks disponibles, respectivamente. Si las condiciones actuales satisfacen los criterios de negociación del EA, se forma una solicitud de negociación y se envía al servidor. Sin embargo, no tendrá éxito, y se muestra un mensaje de error: "Falló el envío de la solicitud de operación; el mercado está cerrado".
Durante periodos de gran actividad, la decisión del servidor de operaciones sobre si una solicitud de operación se ejecuta o se rechaza puede sufrir retrasos significativos. Algunos datos utilizados en la solicitud enviada al servidor pueden ser incorrectos, lo que provoca el rechazo de la orden. Cuando el servidor está evaluando una solicitud y se actualizan las cotizaciones del símbolo, pueden darse tres casos:
- Colocación de una orden pendiente - el precio objetivo de la orden pendiente se convierte en una distancia incorrecta.
- Apertura/modificaciónde posición - el nivel previsto de Stop Loss o Take Profit de la posición se convierte en una distancia incorrecta.
- Posición modificando - el nivelprevio de Stop Loss o Take Profit de la posición se lleva a su cierre.
Las cotizaciones del símbolo mencionadas en el sexto elemento de la lista en la sección Información mostrada son especialmente útiles en este caso (ya que las primeras suelen diferir de las últimas). Un análisis cuidadoso de estas cotizaciones, conociendo la implicación que ciertos cambios de cotización tienen en la evaluación de la petición, permite entender el motivo por el que se producen estos casos. Para evitar que la petición sea rechazada por el servidor de operaciones debido a "stops no válidos" (casos 1 y 2), los precios/niveles utilizados deben superar en unos pips el Nivel de Stop del símbolo.
Los parámetros de entrada Precio de Inicio, Hora de Inicio, Precio de Stop, Hora de Stop o Tipo tienen un estatus especial en el programa. Cada vez que se cambia uno de ellos, ocurren dos cosas: el EA finaliza la parrilla actual y verifica las condiciones para crear una nueva. Entonces, si todos los valores de inicio/parada pasan esta comprobación, el EA comienza una nueva rejilla. Pero, si al menos uno falla, el EA no sigue adelante con la nueva rejilla y termina su operación.
Una posición de compra/venta se abre al precio Ask/Bid y se cierra al precio Bid/Ask. Dado que las órdenes stop de la posición (Stop Loss y Take Profit) se activan a este último precio, en una orden pendiente, se calculan a partir del precio objetivo de la orden -/+ el spread actual (Ask - Bid), respectivamente.
Al colocar una orden pendiente, el período de validez no puede ser inferior a 1 minuto. Durante la creación de una cuadrícula, el Asesor Experto no coloca órdenes pendientes si el tiempo actual supera el Tiempo de Expiración menos 1 minuto (cuando el período de validez se selecciona previamente).
Conclusión
La Rejilla de Órdenes Pendientes es una herramienta útil y eficaz en cuanto a la creación automática de rejillas de órdenes pendientes, especialmente cuando las rejillas constan de un número significativo de órdenes, permitiendo una configuración sencilla e intuitiva de las rejillas a formar.

El usuario no ha dejado ningún comentario para su valoración