TrendEngine
- Asesores Expertos
- Versión: 2.33
- Activaciones: 5
Una estrategia sistemática de seguimiento de tendencias a medio plazo en índices bursátiles globales y metales. Sin cuadrícula, sin martingala, sin promediar en perdedores. El riesgo está limitado matemáticamente por el tamaño de la posición y un límite de apalancamiento.
Para quién es esta estrategia
A quién va dirigida. Inversores y operadores que desean un enfoque sistemático, de riesgo controlado "set it and leave it" en lugar de discrecional screen-trading. Especialmente aquellos que están cansados de los EA de cuadrícula y martingala que dibujan una bonita curva de renta variable hasta que se produce una única explosión catastrófica. Funciona como herramienta independiente y como funda diversificadora junto con otras estrategias en una cartera.
Qué le ofrece. Exposición a la bien documentada prima de tendencia (impulso de series temporales, "futuros gestionados") a través de una cesta de ~10 activos - 8 índices de renta variable mundial más oro y plata - con reequilibrio mensual automático y control de riesgo incorporado. Usted no tiene que vigilar el mercado: una vez al mes, el EA calcula qué activos mantener y en qué cantidad.
Qué tipo de rentabilidad (backtest 2010-2026, NO es una garantía). La rentabilidad se rige por un único parámetro de riesgo (volatilidad objetivo), y la rentabilidad y la caída se escalonan juntas: no hay almuerzo gratis:
| Perfil (vol objetivo / capitalización bruta) | Rentabilidad anual | Reducción máxima | Sharpe |
|---|---|---|---|
| Conservador (10% / 1,0×) | ~8-10% | ~16% | ~0.85 |
| Equilibrada (15% / 1,5×) | ~11-13% | ~24-27% | ~0.85 |
| Agresivo (20% / 2,0×) | ~14-17% | ~30-32% | ~0.85 |
Se trata de cifras medias. Los rendimientos tendenciales son desiguales: hay años fuertes y periodos planos o de pérdidas. No es un 1% constante al mes: algunos meses bajan y otros suben mucho. La estrategia se mantuvo en pruebas fuera de muestra (a futuro), pero en una ventana de tendencia favorable; a largo plazo, se espera un Sharpe de ~0,7-0,9.
Cuántas operaciones. Se trata de una estrategia de baja frecuencia: un reequilibrio al mes entre ~7-10 símbolos. Una media de ~20-40 operaciones al año, con posiciones mantenidas durante semanas o meses (el periodo medio de mantenimiento es de unos 5-6 meses; algunas tendencias duran más de un año).
La ventaja sobre la cuadrícula y la martingala es estructural.
| Cuadrícula / martingala | TrendEngine | |
|---|---|---|
| Reacción a una pérdida | se suma al perdedor (promedia a la baja) | locorta - sale cuando la tendencia se desvanece |
| Distribución de resultados | muchas victorias pequeñas → un descalabro total poco frecuente | las raras grandes ganancias compensan las pequeñas pérdidas |
| Exposición | crece sin límite durante una reducción | limitada por el límite bruto |
| Fuente de ventaja | ninguna: las operaciones arruinan el riesgo a cambio de suavidad | una prima de tendencia real y documentada |
La cuadrícula y la martingala sobreviven mientras el mercado se mueve lateralmente y mueren al primer movimiento fuerte en su contra. TrendEngine hace lo contrario: las pequeñas pérdidas se aceptan por adelantado, y los grandes movimientos con la tendencia son exactamente donde se gana el dinero. Las depreciaciones son limitadas y recuperables, no ponen fin a la cuenta.
Inicio rápido: instalar, probar, alertas
Instalación en MetaTrader 5
- Archivo → Abrir carpeta de datos.
- Copie TrendEngine.ex5 (o .mq5 ) en MQL5/Experts/ . Si es el .mq5 , ábralo en MetaEditor y pulse Compilar (F7).
- En el terminal: Navegador → Asesores Expertos → clic derecho → Actualizar.
- Arrastre el EA a cualquier gráfico (el símbolo del gráfico no importa - el EA lee por sí mismo las barras mensuales de sus propios símbolos de trading) y active el trading algorítmico.
Símbolos: fuera de la caja, y dónde encontrar los equivalentes de su corredor.
Los valores por defecto son una cesta validada de 10 activos: US500, USTEC, JPN225, DE40, UK100, HK50, STOX50, US2000, XAUUSD, XAGUSD . Los nombres difieren de un broker a otro - es normal.
Para encontrar el suyo: Market Watch (Ctrl+M) → botón derecho → Símbolos → el grupo de índices/CFD. Busca por descripción, no por ticker:
- "US SPX 500 / S&P 500" → US500 / SP500m / US500M - elige UNO (normalmente el que no tiene sufijo m/M).
- "US Tech 100 / Nasdaq" → USTEC / USTECH100 / ND100m .
- "Germany 40 / DAX" → DE40 / GER30 ; "FTSE 100" → UK100 ; "Nikkei 225" → JPN225 .
- "EURO STOXX 50" → STOX50 ; "Hong Kong" → HK50 ; "US Small Cap 2000" → US2000 .
- Oro / plata → XAUUSD / XAGUSD .
Cada símbolo va en su propia línea en las entradas ( Símbolo 1 ... Símbolo 12 ). Introduzca los nombres exactos de su broker; los espacios en blanco se omiten.
Autocomprobación. Al arrancar, el EA imprime un bloque de autocomprobación de símbolos (MN1) en el registro - para cada símbolo, OK (N meses) / NOT en broker / demasiado poco historial . Demasiado poco historial → abra el gráfico MN1 del símbolo y retroceda hasta las barras antiguas para cargar el historial.
"Funciona nada más sacarlo de la caja"
Una vez que hayas sustituido los nombres de tu broker, no hay nada más que cambiar: los valores por defecto son la cesta validada de 10 activos, 10% de volatilidad objetivo, 1,0× capitalización bruta (un perfil conservador ~8-10%/año). ¿Lo quiere más agresivo? Aumente la volatilidad objetivo anual de la cartera a 15-20 y el HARD CAP (nocional total / renta variable) a 1,5-2,0; la rentabilidad y la reducción crecen proporcionalmente.
Pruebas en el Probador de Estrategias
- Símbolo del gráfico: cualquiera líquido, por ejemplo US500 o EURUSD - no afecta al resultado.
- Marco temporal: H1 o D1 (D1 corre más rápido).
- Modelado: "OHLC en M1". NO use "Sólo precios abiertos" - en una prueba multisímbolo da lecturas erróneas en los símbolos no gráficos.
- Período: permita el historial. La mayoría de los brokers tienen datos de índices-CFD desde ~2012-2016, y algunos símbolos (UK100/STOX50/los índices chinos) empiezan más tarde. Para tener TODOS los símbolos cotizando desde el inicio de la prueba, comience en 2016 o más tarde (vale la pena ejecutar tanto una ventana larga como los años recientes). El motor necesita ~15 meses de historia antes de su primera señal.
- Depósito inicial: 100.000 dólares. Esto es importante: los CFDs sobre índices/metales tienen un lote mínimo grande - con 1.000-10.000$ muchas posiciones se redondean a cero y simplemente no operan. Una cesta de 10 activos está dimensionada para una cuenta sustancial.
- Añada todos los símbolos a Market Watch antes de probar (modo multisímbolo).
Añadir 2 símbolos y comprobar la mejora
Puede poner cualquiera de los símbolos de su broker en las ranuras Símbolo 11 y Símbolo 12 y realizar una prueba - el probador mostrará si Sharpe y drawdown mejoraron. (Nota de la investigación: añadir más índices del mismo broker NO suele mejorar el resultado - la renta variable global está muy correlacionada entre sí; la diversificación real proviene de otras clases de activos. Pero nada le impide comprobarlo: para eso están las ranuras).
Alertas: Telegram y correo electrónico
Correo electrónico. Configura el correo en el terminal: Herramientas → Opciones → pestaña Correo electrónico (servidor SMTP, inicio de sesión, contraseña, de/a). A continuación, establezca Email on rebalance = true en las entradas de EA.
Telegram.
- Crea un bot: envía un mensaje a @BotFather → /newbot → obtendrás un token.
- Encuentra tu chat_id: envía al bot cualquier mensaje, luego abre @userinfobot (muestra tu id).
- Permite la URL: Herramientas → Opciones → Asesores Expertos → ✓ "Permitir WebRequest para la URL listada" → añade https://api.telegram.org.
- En las entradas: Telegram alerts = true , Telegram bot token = <token> , Telegram chat id = <your id> , Bot label = <label> .
Importante: las alertas sólo funcionan en una cuenta real/demo en tiempo real. Permanecen en silencio en el Probador de Estrategias (por diseño). Si el registro muestra [TG] send failed err=4060 , la URL no ha sido añadida a la lista permitida (paso 3).
Qué alertas hay y cuáles llegan
Todos los mensajes se etiquetan con [bot label] (muy útil cuando se hacen varias copias). Recibirás:
- Inicio - en el lanzamiento: número de símbolos, cuántos están listos, el perfil de riesgo, la capitalización bruta, la equidad. Si un símbolo no está listo, el mensaje lo indica.
- Salud - si no hay ningún símbolo listo, o una operación no se ejecuta (con el código de error).
- Rebalanceo mensual - un resumen: cuántos largos, bruto actual (apalancamiento), la lista de posiciones con sus tamaños.
- P&L diario - al comienzo de un nuevo día: el beneficio/pérdida del día, la equidad, el balance, el número de posiciones abiertas.
Cada canal (alerta de terminal, push a la aplicación MT5, correo electrónico, Telegram) se activa de forma independiente por su propia bandera.
Cómo se determinó cada relación, y por qué estas en particular
La idea. La idea central es el impulso de las series temporales: un activo que ha subido en los últimos meses tiende, estadísticamente, a seguir subiendo; uno que ha bajado tiende a seguir bajando. Este efecto lleva décadas documentándose en la literatura sobre futuros gestionados. Pero no es igual en todas partes.
La plataforma. MetaTrader 5 / MQL5, modo multisímbolo (un único EA gestiona todos los símbolos a la vez), con señales tomadas de barras mensuales cerradas (MN1) - sin look-ahead, sin repintado.
Lo que entró en la construcción. Antes de escribir el EA, los bordes se probaron en ~ 25 años de historia a través de más de 40 instrumentos (índices, metales, energía, materias primas agrícolas, divisas, cripto, bonos). El resultado: la prima de tendencia es sólida en los índices de renta variable y los metales preciosos, pero en la década de 2010 decayó en las materias primas y los bonos. Por eso la cesta es exactamente 8 índices + oro/plata: donde la tendencia está viva, más metales por diversificación (están menos correlacionados con la renta variable). Añadir materias primas, bonos o índices europeos extra empeoró el resultado en las pruebas, así que no están ahí.
Así es como esto se convierte en lógica MQL.
(1) Señal - momentum multi-horizonte (largo/plano). Para cada símbolo tomamos los rendimientos de 3, 6 y 12 meses y contamos la fracción que son positivos. Así se obtiene un número de 0 a 1, es decir, el grado de firmeza de la tendencia alcista del activo. No hay posiciones cortas: o se compra o se vende.
int LB[3] = {3,6,12}; // horizontes en meses bool ComputeSignal(string sym, double &sigOut) { double c1 = iClose(sym, PERIOD_MN1, 1); // último mes CERRADO double s = 0.0; for(int j=0; j<3; j++){ double cp = iClose(sym, PERIOD_MN1, 1+LB[j]); s += ((c1/cp - 1.0) > 0.0 ? 1.0 : 0.0); // +1 si subió por encima de este horizonte } sigOut = s/3.0; // 0.00 / 0.33 / 0.67 / 1.00 return(true); }
(2) Ponderaciones - paridad de riesgo (volatilidad inversa). Para que un índice tranquilo y un metal salvaje contribuyan por igual al riesgo, el peso de cada activo es inversamente proporcional a su volatilidad. Primero calculamos la volatilidad mensual:
bool ComputeMonthlyVol(string sym, double &volOut) { int W = InpVolWindow; // 12 meses double r[]; ArrayResize(r,W); double mean=0; for(int k=0;k<W;k++){ double a=iClose(sym,PERIOD_MN1,1+k), b=iClose(sym,PERIOD_MN1,2+k); r[k]=a/b-1.0; media+=r[k]; } media/=W; double var=0; for(int k=0;k<W;k++) var+=(r[k]-media)*(r[k]-media); volOut=MathSqrt(var/W); return(true); } Entonces peso ∝ señal / vol, y todo está normalizado:
// raw_i = sig_i / vol_i ; luego se normaliza para que las ponderaciones sumen 1 // un activo más volátil recibe MENOS capital -> igual contribución al riesgo
(3) Objetivo de volatilidad mediante correlaciones. Las ponderaciones fijan la estructura; la escala global la establece la volatilidad objetivo de la cartera. Calculamos la matriz de correlaciones de los rendimientos mensuales y resolvemos un multiplicador k que hace que la volatilidad prevista de la cartera coincida con el objetivo ( InpTargetVolPct ):
// varianza de la cartera, teniendo en cuenta las correlaciones double pv=0.0; for(int a=0;a<M;a++) for(int b=0;b<M;b++) pv += v[a]*v[b]*corr[a][b]; // v = sigma monetario de la posición double pSig = MathSqrt(pv); double tgt = eq*(InpTargetVolPct/100.0)/MathSqrt(12.0); double k = tgt/pSig; // multiplicador de los lotes
(4) El límite duro de apalancamiento: la principal válvula de seguridad. Después de establecer el objetivo de volatilidad, calculamos el nocional total real y, si supera InpMaxGrossExposure × equity , reducimos proporcionalmente TODAS las posiciones. Esto no depende del ruido en la estimación de volatilidad y evita físicamente que la cuenta se apalanque en exceso:
double cap = InpMaxGrossExposure*eq; // e.g. 1.0-2.0 × equity if(gross > cap){ double sc = cap/gross; for(...) aLots[i] *= sc; // reduce todas las posiciones proporcionalmente }
(5) Cálculo fiable del coste de la posición. En CFDs los campos TICK_VALUE pueden ser poco fiables, por lo que el riesgo por lote se calcula a través de OrderCalcProfit (el cálculo de P&L autorizado de la plataforma), con un fallback a través del tamaño del contrato:
double MoneyPerSigmaLot(cadena sym, double volFrac) { double precio=SymbolInfoDouble(sym,SYMBOL_BID); double sp=volFrac*precio, beneficio=0.0; if(OrderCalcProfit(ORDER_TYPE_BUY,sym,1.0,precio,precio+sp,beneficio) && ¡beneficio!=0.0) return(MathAbs(profit)); // pérdida en 1 lote para un movimiento de 1σ double cs=SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE); return(cs*precio*volFrac); // fallback } Así que los bloques encajan así: la señal decide si entrar, la paridad de riesgo decide en qué proporción, el vol targeting decide a qué escala global, el gross cap decide no más de cuánto, y OrderCalcProfit mantiene la matemática monetaria correcta.
De dónde viene el beneficio, cómo se protege el capital, por qué no hay TP/SL/trailing
De dónde viene el beneficio. La estrategia gana a partir de tendencias sostenidas: mientras un activo sube, se mantiene la posición y se acumulan beneficios; cuando el impulso se desvanece, se va a efectivo. La distribución de los resultados está sesgada positivamente: los escasos grandes ganadores compensan muchas pequeñas pérdidas. Además, el long/flat pasa al efectivo en fases bajistas, eludiendo los descensos lentos.
Cómo se protege el capital: cuatro niveles:
- Dimensionamiento de la posición según un presupuesto de volatilidad: cada posición se dimensiona en función de la volatilidad objetivo, no "todo incluido en el apalancamiento".
- Un límite duro a la exposición bruta (InpMaxGrossExposure): el nocional total nunca supera un múltiplo fijo del capital; por construcción, es imposible promediar en perdedores.
- Largo/plano: cuando una tendencia se desvanece, el activo pasa a efectivo (evitando los mercados bajistas lentos).
- Diversificación entre ~10 activos poco correlacionados.
Por qué no hay TP / SL / trailing. Se trata de una estrategia tendencial, y su salida es el desvanecimiento de la señal mensual, no un nivel de precios.
- Un TP fijo corta a los ganadores - y los ganadores son los que crean todo el beneficio (sesgo positivo). Pon un tope a los grandes movimientos y te quedarás con las pequeñas pérdidas, lo que da la vuelta a la ventaja negativa.
- Un SL fijo le da un latigazo: la volatilidad intramensual ordinaria le saca de una posición que la señal sigue queriendo → se da cuenta de una reducción temporal como una pérdida real, luego vuelve a entrar más alto → rotación ociosa que reduce tanto la rentabilidad como el Sharpe.
- El riesgo ya está controlado por el tamaño de la posición y el límite bruto. Los stops serían una tercera capa conflictiva.
(Esto no es una opinión, se ha probado; véase la sección 3).
Cómo leer el gráfico del probador.
- La línea azul (Balance) es el capital realizado. Sólo se mueve cuando se cierran las posiciones, por lo que es plana entre reequilibrios y "se mueve" en cada reequilibrio.
- La línea verde (Capital) es el saldo más las pérdidas y ganancias flotantes de las posiciones abiertas. Respira con el mercado.
- Una brecha entre el verde y el azul es normal: las posiciones se mantienen durante semanas, y sus pérdidas y ganancias flotan hasta que se cierra la operación.
- Un salto vertical al final de la prueba es un artefacto del probador - fuerza el cierre de todas las posiciones abiertas en la última barra. No tiene nada que ver con la lógica de la estrategia.
- La"carga del depósito" es la utilización del margen (indirectamente, el apalancamiento). Debe permanecer moderada; picos agudos significan sobrecarga.
Qué es el P&L no realizado (flotante). Es el beneficio/pérdida actual de las posiciones que aún no se han cerrado. Se incluye en el capital (línea verde) pero no en el balance (línea azul) hasta que se cierra la operación. Para una estrategia que mantiene posiciones durante meses, un gran P&L flotante es normal, no un mal funcionamiento.
Cómo se cierran las operaciones. En cada reequilibrio mensual, el AE vuelve a calcular las señales: los símbolos cuyo impulso se ha invertido (señal → 0) se cierran; los que siguen en tendencia se mantienen o se redimensionan al nuevo riesgo. En otras palabras, una operación se cierra cuando finaliza la tendencia, no cuando se alcanza un objetivo de precio.
Por qué añadir TP / SL empeoraría el beneficio (según las pruebas)
Esto se probó con datos históricos, normalizados a una sola volatilidad y netos de costes. El Sharpe de referencia, sin intervención, es de 0,86-0,89.
Un trailing stop (de cualquier amplitud) perjudica a todas las métricas:
| Variante | CAGR | Sharpe | Drawdown |
|---|---|---|---|
| Base (sin paradas) | 8.5% | 0.86 | -16.4% |
| SL de arrastre 2,5σ | 4.9% | 0.57 | -25.1% |
| SL de arrastre 4,0σ (ancho) | 5.3% | 0.58 | -21.4% |
La rentabilidad se reduce a la mitad, el Sharpe cae de 0,86 a ~0,57, y el drawdown empeora (-16% → -25%): el stop percibe los retrocesos temporales como pérdidas reales, y luego vuelve a entrar más arriba - churn ocioso. No hay punto dulce en ningún ancho.
El take-profit es neutro en el mejor de los casos, normalmente negativo: corta los ganadores que crean la ventaja, y nunca mejora el resultado.
Un TP "+1% del saldo" (cerrar y esperar un mes): la rentabilidad se reduce de la mitad a dos tercios (8,6%→4,6% al 10% vol; 16,7%→4,9% al 20%), Sharpe de 0,87 a 0,42-0,65. Y cuanto mayor sea el apalancamiento, peor se pone - el TP derrota a todo el punto de apalancamiento (usted banco +1% antes de apalancamiento puede dejar que la tendencia).
Un TP "+1% → reequilibrio inmediato": dado que las señales no cambian en un mes, se cierran e inmediatamente se vuelven a abrir las mismas posiciones - puro churn ocioso. El volumen no cambia (no se reduce el riesgo), la rentabilidad disminuye por el coste de las operaciones (docenas de idas y vueltas adicionales) y el Sharpe pasa de 0,83 a 0,69-0,76.
Conclusión. La tendencia vive de un sesgo positivo: unas pocas grandes ganancias. Un TP trunca la cola derecha (los grandes movimientos) y da la vuelta a la ventaja; un SL convierte las caídas temporales en pérdidas realizadas más el churn. El riesgo se gestiona con el tamaño de la posición, no con stops.
Perspectivas de la estrategia (provisionalmente, según los cálculos)
El lado positivo. La prima de tendencia (futuros gestionados) es un fenómeno estructural observado durante décadas, no un artefacto de un mercado. La versión de índices de renta variable más metales demostró ser más sólida que la tendencia "amplia" en las pruebas y superó el mercado bajista de 2022 con una caída poco pronunciada. La ventaja se mantuvo en las pruebas prospectivas fuera de muestra.
Lo que hay que tener en cuenta honestamente (riesgos y límites):
- La tendencia decae y se desvanece. En la década de 2010, la prima de tendencia general se debilitó (especialmente en las materias primas, que es por lo que no están en la cesta). Es posible que se produzcan periodos de varios años planos o débiles (2010-2014, por ejemplo, fueron débiles). Ese es el precio normal de un enfoque tendencial.
- No te salvará de las caídas rápidas. Una señal mensual no puede seguir el ritmo de las caídas bruscas (como la de febrero-marzo de 2020): en esos casos, la estrategia sufre pérdidas junto con el mercado, tanto mayores cuanto mayor sea el apalancamiento.
- Lo más probable es que los rendimientos futuros estén por debajo del backtest. Los diferenciales reales, el deslizamiento, el swap de CFDs y el edge decay juegan en su contra. Una guía razonable a largo plazo: Sharpe ~0,7-0,9, rentabilidad ~8-17% (dependiendo del riesgo elegido), con detracciones periódicas del 15-35%.
- Es un diversificador, no un santo grial. Es mejor utilizarlo como una manga de una cartera junto con otras estrategias poco correlacionadas; el resultado global ajustado al riesgo es entonces superior al de cualquier manga por sí sola.
En resumen. TrendEngine es una herramienta de tendencia con drawdown controlado basada en una prima real, con un riesgo matemáticamente limitado y sin trucos de grid/martingale. No promete hacerte rico rápidamente, y tendrá años flojos - pero es precisamente la ausencia de riesgo de ruina oculto y la transparencia de la mecánica lo que lo diferencia de los EAs "suaves hasta que explotan".
Descargo de responsabilidad. Todas las cifras mostradas son los resultados de pruebas históricas y no son una promesa o garantía de rendimiento futuro. Las operaciones conllevan el riesgo de pérdidas, incluidas las detracciones sustanciales. Este material no constituye un asesoramiento de inversión individual. Pruebe en una cuenta de demostración y arriesgue sólo lo que esté dispuesto a perder.
