Goldtrends
- Asesores Expertos
- Versión: 1.1
- Actualizado: 12 agosto 2026
- Activaciones: 5
Si dejas una valoración positiva, ¡podemos ofrecerte configuraciones exclusivas!
TrendRider: un robot de trading de tendencias para el oro (XAUUSD, H1)
TrendRider: un robot de trading de tendencias para el oro (XAUUSD, H1)
========================================================
Descripción técnica. Versión 1.01.
FINALIDAD
Sistema de tendencia de ruptura en el canal de Donchian con filtros de dirección y fuerza
de la tendencia. Desarrollada y configurada para el XAUUSD en el timeframe H1.
Una sola posición en el par en cada momento. El stop-loss se establece
mediante una orden de servidor al abrir la posición. No se utilizan estrategias de martingala, redes de órdenes, promediado
de las posiciones con pérdidas ni el trading sin stop.
LÓGICA DE FUNCIONAMIENTO
Discretización. Todas las decisiones se toman una vez por barra, en el momento en que aparece
de una nueva barra. El cálculo se realiza a partir de los datos de la barra cerrada con un desfase de 1; dentro de la barra
no se recalcula el estado. El flujo de ticks solo se utiliza para detectar
el cambio de barra y para la activación de las órdenes stop del servidor.
Canales. Los límites superior e inferior del canal de entrada son el máximo y el mínimo de los EntryLen
barras, contando a partir del desplazamiento 2. El canal de salida se construye de la misma manera para ExitLen barras.
El desplazamiento de dos barras significa que la barra de señal no se incluye en el cálculo de su propio canal
, es decir, la ruptura corresponde al rango anterior y no
del propio canal.
Indicadores. EMA(EmaLen), ADX(AdxLen), ATR(AtrLen): indicadores estándar
de la plataforma; los valores se toman de la barra 1. No se utilizan indicadores de terceros ni iCustom
no se utilizan.
Condición de entrada en una posición larga:
Close[1] > LímiteSuperiorDelCanal(EntryLen, desplazamiento 2)
y Close[1] > EMA[1]
y ADX[1] > AdxMin
Posición corta: lo contrario, es decir, un cierre por debajo del límite inferior del canal y por debajo de la EMA.
Cada una de las tres condiciones se desactiva poniendo a cero el parámetro correspondiente.
Condiciones de entrada adicionales, desactivadas por defecto:
EmaSlopeBars EMA[1] > EMA[1 + EmaSlopeBars] para comprar
BreakoutBufATR Close[1] > LímiteSuperior + BreakoutBufATR × ATR[1]
MaxExtATR |Close[1] − EMA[1]| / ATR[1] <= MaxExtATR
HourFrom/HourTo: hora de apertura de la barra actual dentro de la ventana especificada
Estas cuatro condiciones solo limitan la apertura de la posición. El cierre en caso de
se lleva a cabo independientemente de ellas: un giro filtrado no debe
dejar la posición en el mercado en contra de la tendencia rota.
Las condiciones de salida de una posición larga son cualquiera de estas tres:
se ha activado el stop-loss;
Close[1] < LímiteInferiorDelCanal(ExitLen, desplazamiento 2);
se ha formado una configuración opuesta (si ExitOnOpposite = true, incluso si
la apertura de posiciones cortas esté prohibida por el parámetro AllowShort).
Stop-loss. Se establece a una distancia de AtrMultSL × ATR[1] respecto al precio de ejecución
y se normaliza según SYMBOL_TRADE_STOPS_LEVEL y el número de caracteres del símbolo. La orden
pertenece al servidor y se ejecuta cuando el terminal está apagado.
Punto de equilibrio. Cuando se cumple la condición
Close[1] − PrecioDeApertura >= BreakevenATR × ATR[1]
, el stop se desplaza hasta el precio de apertura de la posición. El desplazamiento se realiza según el
: el stop solo se aproxima al precio y nunca se aleja de él.
La modificación no se envía si el stop actual se encuentra dentro de la zona
SYMBOL_TRADE_FREEZE_LEVEL.
Stop dinámico. Cuando TrailMultATR > 0, el stop se ajusta a una distancia de
TrailMultATR × ATR[1] respecto al cierre, siguiendo la misma regla de avance. Si
al mismo tiempo está activado el nivel de equilibrio, de los dos niveles se elige el más cercano
al precio. Por defecto, el trailing está desactivado.
CÁLCULO DEL VOLUMEN
RiesgoEnDinero = Capital × PorcentajeDeRiesgo / 100
PrecioPorPuntoPorLote = DistanciaDelStop / SYMBOL_TRADE_TICK_SIZE
× SYMBOL_TRADE_TICK_VALUE
Volumen = RiesgoEnDinero / PrecioPorPuntoPorLote
El resultado se adapta a la tabla de volúmenes del bróker: se redondea a la baja según
SYMBOL_VOLUME_STEP, con un límite máximo de SYMBOL_VOLUME_MAX, SYMBOL_VOLUME_LIMIT
y el parámetro MaxLots, y se limita por la parte inferior a SYMBOL_VOLUME_MIN.
El margen requerido se comprueba mediante OrderCalcMargin. Si supera el 90 %
del margen libre, el volumen se reduce proporcionalmente; si ni siquiera el lote mínimo
no cumple con los requisitos de margen, la entrada se cancela y se registra el motivo en el registro: la orden,
que el servidor rechazará a sabiendas, no se envía.
El comportamiento en caso de depósito insuficiente se define mediante el parámetro AllowMinLot. Cuando
el volumen calculado es inferior a SYMBOL_VOLUME_MIN, el asesor opera con el lote mínimo
lote mínimo (AllowMinLot = true), o bien renuncia a la operación y anota en el registro
qué depósito se necesita para cumplir con el riesgo establecido (AllowMinLot = false).
El segundo modo evita que se supere el riesgo de forma implícita en una cuenta pequeña.
PROCEDIMIENTO DE COMPROBACIONES ANTES DE ABRIR UNA
1. protección contra el drawdown (MaxDDPct): si se activa, se interrumpe la operación;
2. Suficiencia del historial: Bars() no debe ser inferior al período más largo utilizado
con un margen de seguridad;
3. Disponibilidad de los datos de los indicadores;
4. Ancho mínimo del stop (MinStopPts);
5. Existencia de una posición abierta: si hay una posición abierta, solo se lleva a cabo su
seguimiento;
6. pausa tras una racha de pérdidas (LossStreak / CooldownBars);
7. el spread actual (MaxSpreadPts);
8. filtros de precisión de entrada (BreakoutBufATR, MaxExtATR, HourFrom/HourTo);
9. Sesión de negociación del símbolo a través de SymbolInfoSessionTrade;
10. Cálculo del volumen y comprobación del margen.
Una señal generada fuera de la sesión de negociación no se descarta: se almacena
y se ejecuta al abrirse el mercado. Sin esto, en los instrumentos en los que la barra
se abre antes del inicio de la sesión, no se producirían operaciones en absoluto.
MECANISMOS DE PROTECCIÓN
BreakevenATR Desplazamiento del stop al precio de apertura tras alcanzar un beneficio predeterminado en ATR.
LossStreak Pausa de CooldownBars barras tras un número determinado de operaciones con pérdidas
operaciones con pérdidas consecutivas. El contador se pone a cero con la primera operación con beneficios.
MaxDDPct Suspensión total de la negociación al alcanzar una caída máxima establecida
en el capital. En ese caso, la posición abierta se cierra. La caída
se calcula a partir del máximo de capital (equity) alcanzado durante el periodo de operación.
MaxRiskPct Se omite la entrada cuyo valor de stop en dinero supere
el porcentaje establecido de los fondos.
MinStopPts Rechazo de la operación si el stop calculado es inverosímilmente estrecho.
Protección frente a tramos del historial con un ATR distorsionado, en los que
el cálculo del volumen da lugar a una posición anómalamente grande.
MaxLots Límite máximo estricto del volumen, independientemente del cálculo.
MaxSpreadPts No se realiza la entrada si el spread es superior al establecido.
AllowMinLot Comportamiento cuando el volumen es inferior al lote mínimo (véase más arriba).
PROCESAMIENTO DEL ENTORNO DE NEGOCIACIÓN
Se comprueban: el modo de negociación del símbolo (SYMBOL_TRADE_MODE), el nivel de los stops
(SYMBOL_TRADE_STOPS_LEVEL), la zona de congelación (SYMBOL_TRADE_FREEZE_LEVEL),
el volumen acumulado máximo (SYMBOL_VOLUME_LIMIT), el incremento y los límites de volumen,
horario de las sesiones de negociación y el margen libre.
Se analizan los códigos de respuesta de las operaciones de negociación. Un error del servidor con el código
«mercado cerrado» pone la señal en estado pendiente; el resto de errores
se registran en el registro con el código y una descripción textual.
El asesor técnico no utiliza DLL, no se conecta a Internet, no lee ni escribe
archivos, ni utiliza iCustom ni bibliotecas de terceros. Funciona en cuentas
con compensación y con cobertura: en ambos modos se admite como máximo una
posición por instrumento; la selección se realiza por MagicNumber y nombre del instrumento.
PARÁMETROS DE ENTRADA
Señal
EntryLen int 70 longitud del canal de entrada, en barras; mínimo 2
ExitLen int 20 longitud del canal de salida, en barras; mínimo 2
EmaLen int 100 período del filtro EMA de dirección; 0 — desactivar
AdxLen int 14 período del ADX
AdxMin double 30,0 ADX mínimo para la entrada; 0 — desactivar
Riesgo
AtrLen int 14 período del ATR
AtrMultSL double 2,5 stop-loss en unidades de ATR; mayor que cero
TrailMultATR double 0,0 stop dinámico en unidades de ATR; 0 — desactivar
RiskPct double 1,0 riesgo por operación, % del capital; de 0 a 100
Control de la caída
MaxRiskPct double 0,0 límite máximo del valor de la operación, % del capital; 0 — desactivado
LossStreak int 3 número de pérdidas consecutivas antes de la pausa; 0 — desactivado
CooldownBars int 48 duración de la pausa, en barras
EmaSlopeBars int 0 pendiente requerida de la EMA en N barras; 0 — desactivado
Precisión de entrada
BreakoutBufATR double 0,0 margen de ruptura en ATR; 0 — desactivado
MaxExtATR double 0,0 límite de alejamiento del precio respecto a la EMA en ATR; 0 — desactivado
requiere que EmaLen esté activado
HourFrom int 0 primera hora de apertura de operaciones, hora del servidor
HourTo int 0 última hora incluida; valores iguales
desactivan el filtro; HourFrom > HourTo define
una ventana que abarca la medianoche
BreakevenATR double 2,5 beneficio en ATR para desplazar el stop al punto de equilibrio;
0 — desactivar
Protección
MinStopPts int 50 anchura mínima del stop, en puntos
MaxLots double 0,0 límite máximo de volumen; 0 — límite del bróker
MaxSpreadPts int 0 spread máximo para la entrada; 0 — desactivar
MaxDDPct double 40,0 Parada de la operación en caso de drawdown, %; 0 — desactivado
AllowMinLot bool true permitir el lote mínimo cuando el volumen calculado
es inferior a este
Partes
AllowLong bool true permitir compras
AllowShort bool true permitir ventas
ExitOnOpposite bool true cerrar la posición ante una señal opuesta, incluso si
la posición correspondiente esté desactivada
Varios
MagicNumber int 770001 identificador de las operaciones del asesor
SlippagePts int 30 deslizamiento admisible, en puntos
Los valores incorrectos se rechazan en OnInit con el código INIT_PARAMETERS_INCORRECT
y con el siguiente mensaje en el registro: valores negativos, períodos nulos, RiskPct fuera
el rango, horas fuera del intervalo 0…23, MaxExtATR con EmaLen desactivado,
desactivación simultánea de ambos lados de la operación.
AJUSTES RECOMENDADOS (XAUUSD, H1)
EntryLen 70 ExitLen 20 EmaLen 100 AdxMin 30
AtrLen 14 AtrMultSL 2,5 TrailMultATR 0 RiskPct 1,0
LossStreak 3 CooldownBars 48 BreakevenATR 2,5
Estos valores se han incorporado al asesor como valores por defecto: al ejecutarlo sin
modificar los parámetros ofrece la configuración preestablecida. El mismo conjunto de valores se encuentra también
en un archivo de configuración dentro de la carpeta «Preajustes».
Acerca de la elección de los valores. La longitud del canal de entrada de 70 y el período de la EMA de 100 se han seleccionado mediante simulaciones
a partir de una malla de parámetros y se han comprobado en un tramo independiente del historial. El trailing stop
se ha desactivado intencionadamente: en esta estrategia, cierra la posición en un retroceso, y después
lo cual una señal de ruptura la vuelve a abrir, lo que empeora el resultado en todos los
conjuntos de datos probados. La pausa tras una serie de pérdidas y el umbral de equilibrio de 2,5 ATR son dos
mecanismos que han superado la prueba en ambas mitades del historial disponible; los umbrales
de equilibrio de 1,0; 1,5; 2,0; 3,0 y 4,0 se han comprobado y funcionan peor.
Los filtros de precisión de entrada (BreakoutBufATR, MaxExtATR, HourFrom/HourTo) se han dejado
en el asesor como herramienta de configuración para otro instrumento o otro mercado,
pero en el XAUUSD H1 están desactivados: cada uno de ellos empeoraba el resultado.
REQUISITOS
Instrumento XAUUSD; en otros instrumentos se requiere una configuración propia
Marco temporal H1
Tipo de cuenta: netting o cobertura, cualquiera; es preferible un spread estrecho
sobre el oro
Mínimo: tal que el RiskPct de los fondos cubra el coste del depósito mínimo
de un lote. Para el oro, a un precio de unos 4300 por onza y un stop de 2,5 ATR
, esto supone aproximadamente 170 000 rublos o 1 900 dólares. En una
cuenta, el volumen se limita al lote mínimo, y el riesgo real
por operación supera el establecido
VPS no es obligatorio: el stop-loss se coloca mediante una orden de servidor
LIMITACIONES
Es una estrategia de tendencia. Está diseñada para movimientos prolongados y direccionales
y, estructuralmente, es deficitaria en un mercado lateral; las series de operaciones con pérdidas consecutivas son
modo de funcionamiento, y no un indicio de fallo.
El conjunto de parámetros está ajustado para el oro en el gráfico horario. La aplicación de estos ajustes
a otros instrumentos y marcos temporales sin realizar pruebas propias carece
fundamento: en los pares de divisas, la misma lógica requiere longitudes de canal diferentes.
El asesor no opera en instrumentos en los que esté prohibida la negociación, no haya
historial suficiente o no hay margen libre suficiente para el lote mínimo.
Operar en los mercados financieros conlleva el riesgo de perder capital. Antes de
utilizarlo en una cuenta real, prueba el asesor en las condiciones
de su bróker y realice una prueba retrospectiva en una cuenta demo.
Si deja una valoración positiva, ¡podemos ofrecerle configuraciones exclusivas!
