Probador de Estrategias

Este manual explica cómo realizar el backtesting de una estrategia utilizando el Probador de Estrategias de JForex4, abarcando la configuración, los métodos de prueba, la lógica de ejecución de órdenes y cómo interpretar los resultados.


1. Abrir el Probador de Estrategias

  1. Vaya a View en la barra de menú superior y seleccione Strategy Tester.
  2. El probador se abre como una nueva pestaña junto a Orders, Positions y Messages.
  3. Seleccione su estrategia en el menú desplegable. Si aún no se ha añadido al área de trabajo, haga clic primero en Open para agregarla.
  4. (Opcional) Haga clic en Edit para abrir el código fuente de la estrategia en el editor de código — disponible solo si existe el archivo fuente .java.

2. Configurar la prueba

Configuración de la cuenta

Haga clic en Account para definir la cuenta de trading simulada:

  • Depósito inicial y moneda de la cuenta
  • Apalancamiento (Leverage)
  • Nivel de margin cut (como % del apalancamiento utilizado)
  • Stop loss sobre el patrimonio (MC Equity) — detiene automáticamente la prueba si el patrimonio cae por debajo de este nivel

Instrumentos

Haga clic en Instruments para seleccionar los instrumentos cuyos datos históricos deben descargarse. Seleccione todos los instrumentos que utilice la estrategia para operar o para realizar cálculos.

Nota: aquí no es donde se elige el instrumento que la estrategia realmente opera — eso se define por separado, ya sea codificado directamente en la estrategia, o elegido más adelante en la ventana Define Parameters.

Período de muestra y marco temporal

Elija el rango de fechas histórico (Sample Period) y el marco temporal (Time Frame):

  • Ticks — utiliza datos de ticks históricos reales (el más preciso, el más lento).
  • Candles (Velas) (1 minuto / 1 hora / 1 día) — más rápido, utiliza interpolación para generar ticks a partir de datos de velas OHLC. También permite elegir Bid o Ask como base.

Modo visual (Visual Mode)

Active Visual Mode para observar la simulación desarrollándose en un gráfico en vivo mientras se ejecuta. Al activarlo, el botón Start también desbloquea controles de reproducción para pausar la prueba o ralentizar su velocidad.

Optimización (Optimization)

Si su estrategia tiene parámetros configurables, active Optimization para probar múltiples combinaciones de parámetros en una sola ejecución. Para cada parámetro (aparte del instrumento y el período) puede definir un valor mínimo, un tamaño de paso y un valor máximo — la estrategia se probará entonces una vez por cada combinación de pasos.

Los resultados de cada combinación aparecen en la parte inferior de la ventana del probador. Haga clic derecho en cualquier fila para cancelarla, copiar su configuración, ver su informe o reutilizar sus parámetros de entrada.

Profit Factor (Factor de beneficio) = Beneficio bruto ÷ Pérdida bruta (ambos tomados como números positivos). Por ejemplo, un beneficio bruto de 1000 y una pérdida bruta de 250 → Profit Factor = 4,0. Siempre es un valor positivo, y un valor más alto generalmente indica una proporción más favorable entre operaciones ganadoras y perdedoras.


3. Filtros de ticks (Tick Filters) (solo para el marco temporal Ticks)

Cuando se selecciona Ticks como marco temporal, elija cómo se filtran los ticks:

Filtro Comportamiento
Process all ticks (Procesar todos los ticks) El más preciso, pero el más lento — reproduce cada tick jamás registrado.
Process all ticks with a different non-recurrent price (Procesar todos los ticks con un precio distinto y no recurrente) Omite los ticks que repiten el mismo precio.
Process ticks on a market direction (Procesar ticks según la dirección del mercado) Omite los ticks a menos que representen un punto genuino de giro/inversión en la dirección del precio.
Process ticks on a predefined price range change (Procesar ticks según un cambio predefinido en el rango de precio) Omite los ticks hasta que el precio se mueva un rango definido.
Process ticks with the specified time interval (Procesar ticks con el intervalo de tiempo especificado) Omite los ticks según un intervalo de tiempo definido.

4. Métodos de interpolación (solo para marcos temporales de velas)

Disponibles cuando el marco temporal es un período de velas (1 min, 1 hora, 1 día). En lugar de descargar datos de ticks reales, el probador genera ticks sintéticos a partir de los datos de velas OHLC — lo que acelera significativamente las pruebas.

Método Descripción
Cubic Spline (Spline cúbico) El método más preciso basado en velas. Construye los ticks utilizando los precios OHLC como puntos base mediante interpolación por spline cúbico. Ocasionalmente puede generar más ticks de los que produciría un feed real para períodos muy cortos (por ejemplo, 10 segundos).
4 ticks at OHLC (4 ticks en OHLC) El método de interpolación más confiable de los disponibles. Interpola cada vela en exactamente 4 ticks de precio — Open, High, Low y Close. El orden de los ticks High y Low depende de cuál esté más cerca del precio Open: el que esté más cerca de Open se procesa como el segundo tick, antes que el otro.
Tick on Open (Tick en Open) Genera un único tick utilizando el precio Open de la vela.
Tick on Close (Tick en Close) Genera un único tick utilizando el precio Close de la vela.

Ejemplo: si su estrategia opera con velas de 1 minuto y no necesita una granularidad más fina, seleccione 1 Min como marco temporal y 4 ticks at OHLC como método de interpolación — la estrategia recibirá entonces exactamente 4 ticks por minuto (open, luego high/low en orden de proximidad, y luego close).

5. Configuración personalizada

  • Save interpolated price data (Guardar datos de precio interpolados) — conservar o descartar los datos de ticks generados por interpolación.
  • Visual Mode (Modo visual): mostrar/ocultar Equity, Balance y P/L; elegir una plantilla (Template) de gráfico guardada; establecer el Period predeterminado que se muestra durante el modo visual.
  • Messages (Mensajes): activar Save Messages to para guardar los mensajes en un archivo; activar Save Reports to para guardar los informes en un archivo; activar Show Reports para que el informe se abra automáticamente al finalizar la prueba.

6. Lógica de procesamiento de órdenes

Comprender exactamente cómo ejecuta las órdenes el probador es esencial para poder confiar en los resultados del backtest.

Regla general: las órdenes se ejecutan al precio propio de la orden — excepto cuando existe un gap de mercado (por ejemplo, cuando el mercado reabre con una brecha después de una pausa). En situaciones de gap:

  • Las órdenes LIMIT se ejecutan a un precio mejor que el precio de la orden.
  • Las órdenes STOP sin configuración de MAX.SLIPPAGE se ejecutan al primer precio disponible después del gap.
  • Las órdenes STOP con configuración de MAX.SLIPPAGE, si el precio de ejecución cayera fuera de ese límite de deslizamiento (slippage), se vuelven a presentar automáticamente como órdenes LIMIT.

Lógica de ejecución detallada:

  • Las órdenes activadas en el lado BID se comparan con los precios de velas BID interpolados; las órdenes activadas en el lado ASK se comparan con los precios de velas ASK interpolados.
  • Si una orden (independientemente del tipo) se activa mediante un tick de precio CLOSE, HIGH o LOW, se ejecuta al precio propio de la orden, ajustado según el último spread conocido si es necesario (este ajuste se aplica cuando el disparador proviene del lado opuesto).
  • Si una orden se activa mediante un tick de precio OPEN, se ejecuta a ese tick de precio OPEN en el lado correspondiente — excepto en el caso de una orden STOP con MAX.SLIPPAGE configurado: si el tick OPEN cae fuera del límite de deslizamiento de la orden STOP, la orden se convierte en su lugar en una orden LIMIT.

Consejo: dado que "4 ticks at OHLC" siempre incluye un tick Open por cada vela, esta lógica activada por OPEN (y su excepción de STOP/MAX.SLIPPAGE) se aplica directamente cuando se realizan pruebas con este método de interpolación.

7. Ejecutar la prueba

  1. Haga clic en el botón Start.
  2. Se abrirá la ventana Define Parameters — configure aquí los valores ajustables de la estrategia (instrumento, monto, deslizamiento, stop loss/take profit, etc.). Los campos exactos que se muestran dependen del código de su estrategia.
  3. Haga clic en Run para iniciar la simulación.
  4. Si el modo visual está activado, utilice los controles de reproducción para pausar o ralentizar la prueba mientras se ejecuta.
  5. Una vez finalizada (las pruebas grandes basadas en ticks pueden tardar bastante), el informe de la prueba se abre automáticamente en su navegador (si Show Reports está activado).

8. Revisar los resultados

El informe incluye los resultados operación por operación, las curvas de equity/balance y estadísticas resumidas como el Profit Factor descrito anteriormente. Si ejecutó un barrido de Optimization, compare los informes de cada combinación de parámetros desde la lista de resultados en la parte inferior de la ventana del probador antes de elegir una configuración para continuar.


Mejores prácticas

  • Comience con Ticks / "Process all ticks" para su pasada de validación final — es la simulación más cercana a las condiciones reales del mercado, aunque sea la más lenta.
  • Utilice la interpolación de velas para iteraciones rápidas. Durante el desarrollo o el ajuste de una estrategia, "4 ticks at OHLC" ofrece retroalimentación rápida y confiable sin necesidad de descargar el historial completo de ticks.
  • Haga coincidir su elección de interpolación/filtro de ticks con la lógica de su estrategia. Una estrategia que reacciona a los precios OPEN se comporta de manera diferente bajo "4 ticks at OHLC" que bajo "Tick on Close" — asegúrese de que su método de prueba coincida con lo que realmente activa la lógica de su estrategia en el mundo real.
  • Preste atención a las interacciones con MAX.SLIPPAGE. Si su estrategia depende de órdenes STOP, pruebe tanto con como sin MAX.SLIPPAGE para entender cómo los escenarios de gap y de tick OPEN podrían convertir sus órdenes en ejecuciones LIMIT.
  • Recuerde: el rendimiento pasado que se muestra en el probador no es un indicador confiable del rendimiento futuro — valide siempre más a fondo en un entorno de demostración antes de operar en real.
common.disclaimer