SkdonSeriesMulti
- Asesores Expertos
-
Igor Bulyshev
Умный, красивый, в меру упитанный и талантливый трейдер-программист в полном расцвете сил!!)) - Versión: 6.85
Asesor Experto (EA) para Trading Multicurrency de Largo Plazo
Este asesor está diseñado para el trading multicurrency a largo plazo (indefinido) en 28 pares de divisas (la lista de pares está fijada en el código) en el marco temporal M30. La lista de pares es la siguiente: EURUSD, GBPUSD, AUDUSD, USDCAD, USDJPY, USDCHF, GBPJPY, EURJPY, AUDCAD, AUDJPY, CHFJPY, EURCHF, EURGBP, NZDJPY, NZDUSD, CADJPY, AUDCHF, AUDNZD, CADCHF, EURAUD, EURCAD, EURNZD, GBPAUD, GBPCHF, GBPCAD, GBPNZD, NZDCAD, NZDCHF.
Su objetivo es capturar movimientos direccionales (tendencias) y gestionar los riesgos mediante mecanismos especiales de promediado, órdenes de bloqueo (cobertura) y protección de emergencia.
La estrategia principal es de seguimiento de tendencia, utilizando mi indicador Skdon2, que en cada vela cerrada genera una señal de COMPRA o VENTA.
Cuando la señal cambia, el asesor cierra las posiciones antiguas según una regla definida y coloca una serie de 4 órdenes pendientes (el número se configura en los parámetros) de tipo BUYSTOP o SELLSTOP en la dirección de la nueva señal.
1. Funcionalidad General del Asesor
Analiza cada par de divisas en el marco temporal de 30 minutos utilizando su propio indicador integrado en el código.
Cuando el indicador da una señal de compra o venta, el asesor abre una serie de órdenes: una orden de mercado (inmediata al precio actual) y varias órdenes pendientes (por encima del mercado para compras, por debajo para ventas) con un paso configurable. El número de órdenes pendientes se define con el parámetro InpPendingCount (por defecto 4, pero en el probador se reduce forzosamente a 2 para evitar errores de límite).
Si la señal cambia a la contraria, el asesor cierra la serie anterior (total o parcialmente) y abre una nueva en la nueva dirección.
De esta manera, sigue la tendencia, invirtiendo la posición continuamente cuando la señal cambia.
2. Modos de Funcionamiento
El asesor tiene tres modos principales:
-
Modo 0 – Normal (Normal): El asesor opera a pleno rendimiento: abre nuevas series, las gestiona, utiliza la compensación y el trailing stop. Este es el modo principal para la operativa diaria.
-
Modo 1 – Exit market (Salida del mercado): No se abren nuevas series. Las series existentes siguen gestionándose (trailing stop, promediado, cobertura), pero una vez que se cierren, no se abrirán nuevas. Se utiliza cuando se desea salir del mercado de forma gradual, sin cerrar todo de golpe.
-
Modo de liquidación (automático): Se activa automáticamente si, en algún par, la pérdida supera un porcentaje determinado del saldo (por defecto 5%). Al activarse:
-
Se prohíbe la apertura de nuevas series.
-
Se comienzan a cerrar solo las series que estén en ganancias para recoger beneficios y reducir la pérdida total.
-
El modo se desactiva cuando la pérdida total sea inferior al porcentaje configurado (por defecto 4%) o cuando no quede ninguna orden de mercado activa. Después, se reanuda la operativa normal.
-
3. Apertura y Cierre de Series
La señal del indicador Skdon2 se calcula en cada nueva vela M30. Si la señal cambia (por ejemplo, de "comprar" a "vender"), el asesor considera que la tendencia ha revertido.
Si aún no existe una serie, al aparecer la señal se abre:
-
1 orden de mercado (Buy o Sell) - de forma inmediata.
-
Varias órdenes pendientes (Buy Stop o Sell Stop) a una distancia StepDistance entre ellas. Su número se define con el parámetro PendingCount .
Si ya existe una serie y la señal cambia a la contraria, entonces:
-
Primero, se cierran (eliminan) todas las órdenes pendientes.
-
Luego, se cierran las órdenes de mercado según la siguiente regla:
-
Si el beneficio total de la serie es positivo, se cierran todas las órdenes de mercado de la serie.
-
Si el beneficio total es negativo, solo se cierran las órdenes que estén en positivo, dejando las perdedoras (para no fijar la pérdida).
-
-
Después de esto, se abre una nueva serie en la nueva dirección.
4. Modo de Compensación (Promediado y Cobertura)
Cuando en algún par se acumula una pérdida superior al 2.5% del saldo, el asesor activa el modo de compensación para ese par. En este modo operan:
-
Promediado (Averaging): Se identifica la orden más perdedora en ese par. Cuando el precio se aleja de la última orden de promediado una distancia AveragingStepPoints , se abre una nueva orden en la misma dirección que la perdedora. Esto permite reducir el precio medio de entrada. El lote de cada nuevo promediado se incrementa según el coeficiente multiplicador AveragingMultiplier , pero de forma fraccionaria (el lote inicial se toma como lote_inicial / FractionSize ). Esto proporciona un crecimiento gradual de los lotes, no abrupto. En cuanto el beneficio total de esta serie de compensación (orden objetivo + todos los promediados) alcance el valor objetivo ( lote_inicial * 250 ), toda la serie se cierra con beneficio.
-
Órdenes de bloqueo o cobertura (Locking): Se abren cuando la pérdida supera el 3% y existe un desequilibrio entre el volumen total de compras (Buy) y ventas (Sell) (diferencia superior a 0.01 lotes). La orden de bloqueo se abre en contra de la dirección predominante (si hay más Buy, se abre un Sell, y viceversa). Esto cubre parcialmente la posición. El lote del bloqueo = desequilibrio * LockLotPercent / 100 . Después de abrir el bloqueo, el desequilibrio disminuye, por lo que el siguiente bloqueo será de menor volumen.
-
Los nuevos bloqueos solo se abren en la dirección que mejora el anterior:
-
Para bloqueos Sell, cuando el precio cae (mejora la posición Sell).
-
Para bloqueos Buy, cuando el precio sube.
-
-
La distancia entre bloqueos es LockStepPoints . Esto evita la apertura frecuente de bloqueos en el mismo nivel.
-
-
Trailing Stop: Actúa solo en los pares que están en modo de compensación. Para cada orden (excepto las de promediado), el trailing se activa cuando el precio ha recorrido desde la apertura al menos TrailingActivation puntos. Luego, el stop-loss se mueve a una distancia TrailingStopDist del precio actual, pero no más frecuentemente que con un paso TrailingStep . Esto permite fijar ganancias a medida que el precio continúa moviéndose a favor.
5. Mecanismos de Protección Adicionales
-
Protección contra Gaps (Gap Protection): Al abrir una nueva vela M30, se verifica si hubo un gap (salto brusco de precio) entre el cierre de la vela anterior y la apertura de la actual. Si el tamaño del gap supera GapThreshold , el asesor elimina todas las órdenes pendientes en ese par y cierra las órdenes de mercado (si el beneficio total es positivo, cierra todas; si es negativo, solo las rentables). Después de un "enfriamiento" de 40 segundos, la señal se recalcula y, si ha cambiado, se abre una nueva serie.
-
Cierre de Órdenes Antiguas Perdedoras: Cada 8 minutos, se verifican las órdenes de mercado que han estado abiertas más de 35 horas y están en pérdidas. Para esa orden perdedora "peor", el asesor busca series rentables en otros pares y las cierra hasta acumular suficientes ganancias para cubrir la pérdida más un pequeño margen. Luego, cierra la orden antigua y perdedora.
-
Cierre de Órdenes Opuestas: Si en un mismo par hay órdenes Buy rentables y Sell perdedoras (o viceversa), y el beneficio de un lado cubre la pérdida de la orden más perdedora de la serie con margen, entonces las órdenes rentables se cierran junto con la orden más perdedora para reducir el riesgo general.
6. Panel de Información
En el gráfico se muestra un panel con dos bloques:
-
Panel Izquierdo: Muestra el modo actual, el estado de liquidación, el beneficio objetivo y la lista de pares de divisas que están en modo de compensación.
-
Panel Derecho: Muestra el beneficio de los últimos días, el número de órdenes, los volúmenes, las pérdidas antiguas y las últimas acciones del robot.
7. Descripción de Todos los Parámetros (Entradas)
Grupo 1: Configuración Principal
-
Base magic number=100: Identificador de todas las órdenes del asesor. Si tiene varias copias en diferentes cuentas, cambie este número para que no interfieran entre sí.
-
Work mode=0: 0 – Modo normal; 1 – Modo de salida (no se abren nuevas series). Se utiliza para la finalización manual.
-
Risk percent=30: Influye en el tamaño del lote. Cuanto mayor sea el número, mayor será el lote. Por ejemplo, con 30, el lote base = saldo * 0.003 / 10000 (fórmula empírica). Se recomienda ajustarlo según su riesgo.
-
Minimum gap=35: Tamaño mínimo del gap en puntos estándar para activar la protección. Para pares JPY, el punto es 0.01; para los demás, 0.0001.
-
Pending orders count=4: Número de órdenes pendientes a añadir a cada orden de mercado al abrir una serie. Cuanto mayor sea, más profunda será la red.
-
Distance between pendings=15: Paso entre órdenes pendientes en puntos. Afecta a la densidad de la red.
-
Show info panel=true: Muestra el panel informativo en el gráfico. Se puede desactivar para ahorrar recursos y durante las pruebas.
Grupo 2: Modo de Liquidación
-
Loss % to activate=5.0: Si la pérdida en cualquier par supera este porcentaje del saldo, se activará el modo de liquidación.
-
Loss % to exit=4.0: Cuando la pérdida total en todos los pares de divisas sea inferior a este porcentaje, el modo de liquidación se desactivará.
Grupo 3: Compensación y Trailing Stop
-
Lock lot percent=15.0: Porcentaje del desequilibrio de volúmenes que se utiliza para calcular el lote de la orden de bloqueo.
-
Lock step points=5: Paso entre órdenes de bloqueo en puntos. Se abre un nuevo bloqueo solo cuando el precio se aleja esta distancia en la dirección favorable.
-
Averaging step points=20: Paso entre órdenes de promediado. Se abre una nueva orden de promediado cuando el precio recorre esta distancia desde la orden de promediado anterior.
-
Averaging multiplier=1.7: Factor multiplicador del lote en cada nuevo promediado. Un valor >1 aumenta los lotes.
-
Trailing activation=18: Puntos que debe recorrer el precio desde la apertura para activar el trailing stop.
-
Trailing stop distance=15: Distancia desde el precio actual para colocar el stop-loss durante el trailing. Debe ser menor que la activación para que el stop esté en ganancias.
-
Trailing step=2: Cambio mínimo en el stop-loss al actualizarse. Protege contra modificaciones frecuentes.
Grupo 4: Cierre Fraccionario
-
Profit factor=250.0: Se utiliza en el mecanismo auxiliar de cierre de órdenes opuestas.
-
Fraction size=5.0: Tamaño de la parte fraccionaria para los promediados. El primer lote de promediado = lote_inicial / FractionSize . Un número menor significa un primer lote de promediado mayor.
8. Consejos Prácticos Importantes
-
Comience con una cuenta demo para comprender el comportamiento del asesor con su configuración.
-
Asegúrese de que TrailingStopDist sea siempre menor que TrailingActivation , de lo contrario, el trailing colocará el stop-loss en pérdidas.
-
En alta volatilidad, aumente GapThreshold y los pasos ( StepDistance , LockStepPoints , AveragingStepPoints ) para evitar activaciones frecuentes.
-
Para un trading agresivo, aumente LockLotPercent y AveragingMultiplier , y reduzca los pasos.
-
El modo de liquidación es una protección extrema. Si se activa con frecuencia, significa que el riesgo es demasiado alto: reduzca RiskPercent o aumente los umbrales de activación.
-
El asesor es completamente automático, pero requiere una conexión a Internet estable y que los 28 pares estén disponibles en la lista de símbolos.
Ventajas del Asesor
-
Multicurrency: 28 pares de divisas. La alta diversificación reduce la dependencia de una sola moneda.
-
Limpieza automática de la cartera: El robot liquida automáticamente pérdidas antiguas y posiciones opuestas, sin necesidad de control manual.
-
Objetivo global de beneficio: La fijación regular del resultado global suaviza la curva de crecimiento del capital.
-
Alta tolerancia a fallos: Se incluyen reintentos ante errores, protección contra falta de velas y verificación de permisos de trading.
Riesgos y su Minimización
-
Riesgo de mercado (cambio brusco de tendencia, grandes pérdidas): Cierre parcial de posiciones al cambiar la señal + objetivo global + limpieza de órdenes perdedoras antiguas. Las órdenes perdedoras no se mantienen semanas o meses.
-
Gaps (fines de semana, noticias importantes): Algoritmo de protección especial: con gap ≥35 puntos (umbral configurable), las órdenes pendientes del par se cierran, tras 40 segundos (período de enfriamiento) se analiza el estado del indicador y se continúa operando.
-
Fallo técnico (corte de energía, reinicio): Todos los estados se restauran al reiniciar el sistema: la dirección de las series se lee de las órdenes existentes, el estado del indicador para cada par se guarda continuamente y se compara con el estado posterior al reinicio.
-
Drawdown tras una serie de pérdidas: Gracias al algoritmo de objetivo global y al mecanismo de órdenes opuestas, las pérdidas se compensan con las ganancias de los lados dominantes.
-
Periodo de operación: Las 24 horas, de lunes a viernes.
-
El asesor es completamente automático y no requiere intervención manual.
¡Buena suerte en el trading!
Notas sobre las capturas de pantalla y pruebas:
En las capturas de pantalla se proporcionan informes de prueba del asesor en varios pares de divisas durante 3 años. En las pruebas se utilizaron los parámetros por defecto. Tenga en cuenta que, al ser un robot multicurrency, al probarlo en el probador de estrategias para un par de divisas seleccionado individualmente, el algoritmo de cierre de órdenes antiguas perdedoras utilizando las ganancias de series de órdenes en otros pares de divisas no funciona.
Características de funcionamiento en el probador (Strategy Tester)
Para garantizar el éxito de las pruebas, el asesor limita automáticamente el número de órdenes pendientes a 2 y el número total de órdenes abiertas a 30. Esto se hace para prevenir el error 148 (exceder el límite de órdenes).
