Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 38
- Ranking:
- Publicado:
- Actualizado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Modify_Orders.mqh está destinado a la gestión de posiciones y órdenes en MetaTrader 5
Propósito
Modificar_Órdenes.mqh proporciona dos potentes funciones para la gestión de posiciones abiertas y órdenes pendientes en Asesores Expertos e indicadores en la plataforma MetaTrader 5. Está diseñado para automatizar las operaciones de rutina para modificar Stop Loss, Take Profit niveles y precios de las órdenes.
Características principales:
-
Modificación de Stop Loss y Take Profit para posiciones abiertas
-
Modificación de preciosde órdenes pendientes
-
Filtrado flexible por tipos de posición, rentabilidad y símbolos
-
Soporte para diferentes modos de cálculo del valor (en pips o precios absolutos).
Estructura
Función Modify_Position()
Diseñada para modificar los niveles de Stop Loss y Take Profit de las posiciones abiertas.
void Modify_Position( string tp_and_sl, // "SL" o "TP" - lo que cambiamos. string price_and_value, // "Valor" o "Precio" - tipo de valor string type_position, // Filtrar por tipo de posición double price_tp_and_sl, // Valor a fijar string symb, // Símbolo del instrumento de negociación long magicNumber // Experto en números mágicos. );
Parámetros del filtrado de posiciones:
| Parámetro tipo_posición | Descripción |
|---|---|
| "Todas | Todas las posiciones |
| "All Profit" | Sólo posiciones rentables |
| "Todas las pérdidas | Sólo posiciones perdedoras |
| "Comprar" | Sólo comprar posiciones |
| "Comprar ganancias" | Sólo posiciones de compra rentables |
| "Buy Loss | Sólo posiciones de compra perdedoras |
| "Vender | Sólo posiciones de venta |
| "Sell Profit | Sólo posiciones de venta rentables |
| "Vender pérdida | Sólo posiciones de venta perdedoras |
Ejemplos de uso:
// Fijar SL en 1000 puntos para todas las posiciones Modify_Position("SL", "Value", "All", 1000, _Symbol, 0); // Fijar TP en 1.2345 para posiciones de Compra rentables Modify_Position("TP", "Price", "Buy Profit", 1.2345, _Symbol, 12345); // Fijar SL a 500 puntos para posiciones de Venta no rentables Modify_Position("SL", "Value", "Sell Loss", 500, "EURUSD", 98765);
Función Modify_Order()
Diseñada para modificar órdenes pendientes (órdenes Stop y Límite).
void Modify_Order( string tp_sl_price, // "Precio", "SL" o "TP". string type_order, // Tipo de orden para filtrar double price_tp_sl_price, // Un nuevo significado. string symb, // Símbolo del instrumento de negociación long magicNumber // Experto en números mágicos. );
Tipos de órdenes soportadas:
-
"Buy Stop" - orden pendiente Buy Stop
-
" Buy Limit" - orden pendiente Buy Limit.
-
"Sell Stop" - orden pendiente Sell Stop.
-
"Sell Limit" - orden pendiente Sell Limit.
Ejemplos de uso:
// Cambiar el precio de la orden Buy Stop Modify_Order("Price", "Buy Stop", 1.2345, _Symbol, 0); // Establecer Stop Loss para orden Limitada de Venta Modify_Order("SL", "Sell Limit", 1.2350, "GBPUSD", 12345); // Cambiar el Take Profit para la orden Buy Limit Modify_Order("TP", "Buy Limit", 1.2300, "EURUSD", 98765);
Principio de funcionamiento
Algoritmo Modify_Position:
-
Búsqueda de todas las posiciones abiertas en orden inverso
-
Filtrado de posiciones por símbolo y Magic Number
-
Comprobación de condiciones adicionales ( tipo de posición, rentabilidad)
-
Cálculo de nuevos valores SL/TP :
-
Para el modo "Valor" : Precio ± (Valor × Punto)
-
Para el modo "Precio" : asignación directa del valor
-
-
Envío de la orden de modificación mediante OrderSend()
Algoritmo Modify_Order:
-
Enumera todas las órdenes pendientes
-
Filtrado por símbolo, Magic Number y tipo de orden
-
Modificación del parámetro especificado ( precio, SL o TP)
-
Guardado de los parámetros no modificados
-
Envío de la orden de modificación
Características de la aplicación
Seguridad y fiabilidad:
-
Doble comprobación de los tipos de órdenes - por parámetro de cadena y tipo real del sistema
-
Filtrado complejo - garantiza que sólo se vean afectadas las posiciones/órdenes de destino
-
Conservación de los parámetros no modificados - cuando se modifica SL, se conserva TP y viceversa
Cálculos matemáticos:
Paraposiciones de Compra:
-
Stop Loss: Precio actual - (Valor × Punto)
-
Take Profit: Precio actual + (Valor × Punto)
Paraposiciones de Venta:
-
Stop Loss: Precio actual + (Valor × Punto)
-
Toma de beneficios: precio actual - (valor × punto)
Recomendaciones de uso
Para expertos en trading:
#include <Modify_Order.mqh> // En función OnTick() o por condición: if(Условие_для_трейлинга) { // Tirar SL al precio cuando se mueve en la dirección deseada Modify_Position("SL", "Value", "All Profit", 500, _Symbol, ExpertMagic); }
Para scripts manuales:
// Script para SL rápido en todas las posiciones void OnStart() { Modify_Position("SL", "Value", "All", 1000, _Symbol, 0); }
Parámetros óptimos:
-
Marco temporal: cualquiera (las funciones son independientes del marco temporal)
-
Instrumentos: cualquier par de divisas, metales, índices.
-
Número mágico: se recomienda utilizar valores únicos para cada Asesor Experto.
Ventajas de la Biblioteca
-
Versatilidad - funciona con cualquier instrumento de negociación
-
Flexibilidad - 18 modos diferentes de filtrado de posiciones
-
Facilidad de uso - interfaz intuitiva
-
Fiabilidad - comprobaciones exhaustivas antes de la modificación
-
Eficacia: gasto mínimo de recursos informáticos
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/68540
nPosiciones de pérdidas y ganancias
Calculadora de pérdidas y ganancias de posiciones (órdenes abiertas)
nCerrar órdenes
Función para cerrar posiciones y borrar órdenes
Sideways Martingale
Martingala detector de tendencias uso onnx AI
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)
