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:
- 51
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Este asesor experto es un sistema multistrategia dividido en cuatro subsistemas de negociación independientes (del Ciclo 1 al Ciclo 4). Cada ciclo opera con su propio «Magic Number», indicadores, señales de entrada y parámetros de gestión del capital exclusivos.
1. Lógica del Ciclo 1: Confluencia de múltiples indicadores
El Ciclo 1 se basa en un filtro compuesto que combina hasta tres medias móviles (MA), un índice de fuerza relativa (RSI) y el rango porcentual de Williams (WPR).
Señales de entrada
Una variable principal, c1_signal, actúa como un registro binario para garantizar que los indicadores no entren en conflicto. Si el indicador A da una señal de compra, c1_signal pasa a ser 1. Si, a continuación, el indicador B da una señal de venta, c1_signal se restablece a 0 para invalidar la operación.
-
Medias móviles 1, 2 y 3:
-
Condición de compra: la barra anterior cierra por encima de la media móvil y la barra actual abre por encima de la media móvil ($Close[1] > MA$ y $Open[0] > MA$).
-
Condición de venta: La barra anterior cierra por debajo de la media móvil, y la barra actual abre por debajo de la media móvil ($Close[1] < MA$ y $Open[0] < MA$).
-
-
Filtro RSI:
-
Condición de compra: el RSI cae por debajo del umbral de sobreventa (RSI_Buy_Level, p. ej., 30).
-
Condición de venta: el RSI se sitúa por encima del umbral de sobrecompra (RSI_Sell_Level, p. ej., 70).
-
-
Filtro WPR:
-
Condición de compra: el WPR cae por debajo de WPR_Buy_Level (p. ej., -80).
-
Condición de venta: el WPR supera el nivel WPR_Sell_Level (por ejemplo, -20).
-
Procesamiento de señales
-
Regla de señales inversas: Si Reverse_Signals = true, una señal de compra final (1) se invierte a una señal de venta (2), y viceversa.
-
Restricción de una operación por barra: El EA comprueba si el precio de apertura actual coincide con c1_open_price. Si es así, ya se ha gestionado una posición en esta barra, y se bloquean nuevas ejecuciones hasta que se abra una nueva barra.
2. Lógica del ciclo 2: seguimiento de tendencias con envolventes
El ciclo 2 utiliza un indicador clásico de envolventes de doble banda para identificar las rupturas estructurales del mercado.
-
Desencadenante de compra: la barra anterior cierra por encima de la banda superior de la envolvente y la barra actual abre por encima de ella ($Close[1] > UpperBand$ y $Open[0] > UpperBand$). Esto supone una ruptura con un fuerte impulso alcista.
-
Desencadenante de venta: La barra anterior cierra por debajo de la banda inferior de la envolvente y la barra actual abre por debajo de ella ($Close[1] < LowerBand$ y $Open[0] < LowerBand$), lo que indica una ruptura bajista.
-
Inversión de señales: Si Reverse_Signals2 = true, convierte las rupturas en trampas de falsa ruptura (atenúa la ruptura a la baja o al alza).
3. Lógica del ciclo 3: reversión a la media de las envolventes
El ciclo 3 sigue parámetros idénticos a los del ciclo 2, pero invierte la lógica de ejecución predeterminada para apuntar a la reversión a la media (atenuando los extremos).
-
Desencadenante de compra: La barra anterior cierra por encima de la banda superior de la envolvente y la barra actual abre por encima de ella. Lógica: El código asigna aquí una señal de venta porque asume que el activo está sobrevalorado y retrocederá dentro de las bandas.
-
Desencadenante de venta: La barra anterior cierra por debajo de la banda inferior de la envolvente y la barra actual abre por debajo de ella. Lógica: El código asigna aquí una señal de compra, apostando por un rebote inmediato desde la zona de sobreventa.
4. Lógica del ciclo 4: Ruptura de la distancia entre puntos de las envolventes
El ciclo 4 introduce una restricción estricta de volatilidad/distancia en pips al indicador de envolventes, actuando como un sistema de ruptura agresivo.
-
Condición de compra: La distancia entre la banda inferior de la envolvente y el cierre anterior es mayor que «Distance» en puntos, Y la distancia entre la banda inferior de la envolvente y el precio de compra actual también es mayor que «Distance» ($LowerBand - Close[1] > Distance$ y $LowerBand - Bid > Distance$).
-
Condición de venta: La distancia entre el cierre anterior y la banda superior, así como la distancia entre el precio de compra actual y la banda superior, superan ambas la «Distancia» ($Close[1] - UpperBand > Distance$ y $Bid - UpperBand > Distance$).
5. Salida, cierre de la cesta y lógica de riesgo
La arquitectura de gestión de salidas no utiliza órdenes estándar de Stop Loss (SL) o Take Profit (TP) por posición. En su lugar, se basa en un sistema global de seguimiento de la cartera de capital de la cuenta, asignado por ciclo.
Captura de hitos
Cuando el recuento de posiciones de un ciclo pasa de 0 a 1 (seguido mediante c1_Buycount == 0 o c1_Sellcount == 0), el EA establece como referencia el capital base exacto de la cuenta de trading en ese momento:
Utilizando esta referencia, establece objetivos globales estáticos para esa dirección de negociación específica:
-
Objetivo de Take Profit: si se especifica target_amount, asigna $\text{Referencia} + \text{target\_amount}$. De lo contrario, utiliza una fórmula porcentual:
$$\text{Precio objetivo} = \text{Saldo de referencia} + \left(\frac{\text{Saldo de referencia} \times \text{porcentaje\_objetivo}}{100}\right)$$ -
Objetivo de stop loss: utiliza una restricción de caída porcentual en relación con el patrimonio capturado en la instantánea:
$$\text{Precio de riesgo} = \text{Baseline} - \left(\frac{\text{Baseline} \times \text{Account\_Risk\_percent}}{100}\right)$$
Verificación dinámica de la cesta
En cada tick, el EA calcula el total acumulado de las ganancias/pérdidas flotantes en tiempo real, los swaps y las comisiones de todas las posiciones activas que coincidan con el número mágico y el tipo de operación (MyAccountProfit_Buy o MyAccountProfit_Sell) de ese ciclo específico.
Ejecución de la salida
Si $\text{Valor actual de la cartera} \ge \text{Precio objetivo}$ (se alcanza el objetivo de beneficio) O $\text{Valor actual de la cartera} \le \text{Precio de riesgo}$ (se supera el límite máximo de riesgo):
-
El EA llama a ClosePositions().
-
Recorre hacia atrás todas las posiciones de mercado, filtrando por coincidencia de número mágico y tipo de posición.
-
Cada una de las operaciones correlacionadas se liquida al instante mediante una orden de mercado.
-
El contador de ciclos de la dirección se restablece a 0, lo que prepara al EA para establecer una instantánea de referencia completamente nueva en la siguiente señal del indicador estructural.
6. Lógica de dimensionamiento (gestión del capital)
Los cálculos de volumen se realizan de forma dinámica mediante la rutina getLots(int cycle):
-
Lotes fijos: si AutoLots es «false», devuelve el ajuste de tamaño de lote predeterminado (por ejemplo, LotSize = 0,01).
-
Escalado dinámico del riesgo: Si AutoLots = true, el sistema ajusta automáticamente el volumen de la operación en función del margen libre:
-
Consulta el margen exacto necesario para gestionar una operación estándar de 1,0 lotes sobre el activo actual mediante OrderCalcMargin.
-
Proyecta una capacidad de inversión asequible utilizando la fórmula:
$$\text{Volumen proyectado} = \frac{\text{Margen libre de la cuenta} \times \left(\frac{\text{Lots\_Risk}}{100}\right)}{\text{Margen por 1,0 lote}}$$ -
El resultado final se compara con los límites impuestos por el bróker utilizando MathMin y MathMax para garantizar que se encuentre exactamente dentro del rango válido entre SYMBOL_VOLUME_MIN y SYMBOL_VOLUME_MAX, redondeado con precisión al tamaño de paso del activo de la bolsa más cercano (SYMBOL_VOLUME_STEP).
-
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/74818
KCI Volatility Distance
La «KCI Volatility Distance» es un algoritmo avanzado y adaptativo, diseñado meticulosamente para reflejar el impulso del mercado y la dirección de la tendencia con absoluta precisión. Mediante un cálculo propio basado en matrices, esta herramienta filtra dinámicamente el ruido del mercado y ofrece una perspectiva estrictamente cuantitativa sobre la fuerza direccional. Desarrollada con un núcleo de programación orientada a objetos (OOP) altamente optimizado, está diseñada tanto para ofrecer claridad visual en las operaciones como para integrarse a la perfección en asesores expertos o módulos de aprendizaje automático, lo que garantiza un rendimiento ultraligero de la CPU en múltiples activos.
Double Enevlopes (Historical Gauged)
Una herramienta y un sistema para gestionar el servicio de cuidado de niños :D
MA + Envelope Breakouts
Roturas basadas en el canal o la banda de envolvente; lógica de múltiples EA en un solo EA
CKS Position Risk Dashboard
Un panel de control de MT5 de solo lectura para el cálculo del tamaño de los lotes en función del riesgo, el estado de la cuenta, los límites de volumen del bróker y la exposición actual a los símbolos.

