Aprendiendo a optimizar EA
Hola compañeros.
Estoy realizando backtest de optimización de parámetros sobre el simbolo AUDNZD. Unos de los descartes del EA LiquidityHunter en TF de H1.
Se me ocurrió subir el TF a H4 y el TF para obtener la tendencia a diario (D1).
Me di cuenta de una cosa ... y es que la mayoria de las primeras filas, la que tenían el Winrate alto, como un 74%, perdían o se mantenían en el 2024 y parte del 2025 y luego ganaban mucho en el resto....
Se veia claramente en los gráficos... tal y como os pongo en la diapo 1.
Esto me hizo pensar que si encontraba entre las filas una gráfica que fuese lineal y ascendente, aunque no ganase tanto, si al menos daría mejor sensación de consistencia.
Con ayuda de Claude busque la opción a través de la función OnTester() del propio bot establecer un indicador que me indicase esta linealidad constante de la curva sobre la gráfica. De paso... que me diera varias opciones sobre el dato que devuelve el optimizaador y he colocado unos cuantos:
ENUM_CRITERIO_OPT con seis opciones, junto a tus enums existentes funcion OnTester() :
  • CRIT_WINRATE — tu winrate por posición vía TesterStatistics (idéntico a tu v1.07, es el default).
  • CRIT_PF — profit factor.
  • CRIT_R2 — linealidad de la curva, condicionado a neto > 0.
  • CRIT_TRIM_POS — % de trimestres positivos.
  • CRIT_BENEF_COND — beneficio neto escalado por la fracción de trimestres positivos.
  • CRIT_PEOR_TRIM — maximiza el PnL del peor trimestre (la traducción más literal de "ningún periodo malo").
Así he conseguido mejorar los parámetros de este EA con respecto a este símbolo y al mismo tiempo mejorada la curva de linealidad (consistencia). Diapo 2.
Os dejo el EA con las mejoras que he estado realizando y el set que he utilziado para esta prueba con el AUDNZD.
Esto no significa que sea el mejor set. Os animo a seguir haciendo backtest y aprendiendo de estas herramientas que son muy útiles para nuestro negocio. Suerte compañeros.
Mejoras:
// v1.02: filtro HTF desactivable de forma independiente en modo REVERSAL
// (InpDeshabilitarHTF_Reversal). El breakout sigue respetando el filtro.
// v1.03: logger de MAE/MFE por trade a CSV (InpLogMAE). Solo instrumentación,
// no altera la lógica de entrada/salida. Genera datos de excursión para
// decidir con datos si una salida temprana / circuit-breaker aporta.
// v1.04: el CSV se escribe en la carpeta COMÚN (FILE_COMMON), ruta fija y fácil
// de encontrar, y se imprime la ruta completa en el Diario.
// v1.05: en optimizacion se descartan los sets con TP2_RR <= TP1_RR
// (INIT_PARAMETERS_INCORRECT) para no testear TPs invertidos.
// v1.06: instrumentacion del nivel disparador (comentario _BSL/_SSL,
// marcador con conector y columna lado_liq en el CSV).
// v1.07: al iniciar, siembra historica de niveles (InpSembrarHistorico /
// InpLookbackNiveles) reproduciendo swings y barridas del pasado.
// v1.08: OnTester con criterio seleccionable (InpCriterioOpt): winrate, PF,
// R2 de la curva, % trimestres positivos, beneficio condicionado y
// peor trimestre. Buckets trimestrales o mensuales (InpConsistMensual).
// El criterio NO debe incluirse en la optimizacion.
2
1 comment
Sergio Margaix campos
5
Aprendiendo a optimizar EA
BlackSheep IA Labs
skool.com/blacksheep-academy
César e Iván, Traders con 30 años de experiencia. Álvaro, experto en IA.
Construye tu sistema de Trading con IA.
+7.000 alumnos.
+60M€ gestionados.
Powered by