Backtesting y pruebas prospectivas: métodos, evidencia y errores
Probar una estrategia consiste en comprobar cómo se comportan sus reglas con los datos y hasta qué punto el resultado depende de los supuestos. Un backtest utiliza el pasado; una prueba prospectiva registra las decisiones a medida que llegan datos nuevos. Ambos necesitan una especificación clara, una contabilización realista de los costes y una descripción honesta de la muestra. Esta lección ofrece una ficha de prueba de doce campos, ejemplos de validación cronológica, herramientas de cálculo ejecutables y un procedimiento para comparar las simulaciones históricas con las observaciones posteriores. El objetivo es distinguir qué respalda la evidencia y qué sigue siendo incierto, sin convertir un gráfico favorable en una promesa de rentabilidad futura.

Se conserva la ilustración original. La demo utiliza ejecuciones simuladas; la ejecución real en vivo se evalúa en la cuenta micro. El método escrito que sigue explica los supuestos y las limitaciones de la progresión representada.
- Tanto las pruebas históricas como las prospectivas pueden aportar evidencia. Ninguna demuestra automáticamente una ventaja duradera, y la ejecución en demo no es ejecución real.
- Fija la pregunta, la versión, la división de los datos, el modelo de ejecución y los criterios de evaluación antes de examinar el resultado de la evaluación. Lleva un registro de todos los ensayos de investigación.
- La disponibilidad de la señal y el momento de ejecución son cosas distintas. Los lados bid/ask, las trayectorias intravela ambiguas, las ejecuciones parciales, los gaps y los cargos pueden cambiar la conclusión.
- El número de observaciones por sí solo no determina la aprobación. Informa de la dispersión de los resultados, la dependencia, la cobertura y la incertidumbre; los intervalos de la tasa de acierto no estiman la esperanza matemática.
- La simulación bootstrap genera muestras alternativas bajo ciertos supuestos, no observaciones nuevas del mercado. Un percentil de drawdown simulado no garantiza una pérdida máxima.
- «No pasar a real» y «resultado no concluyente» son conclusiones legítimas. Una lista de comprobación o un plazo de calendario nunca obliga a empezar a operar en real.
Registra la hipótesis, las reglas, la muestra y los resultados en la herramienta N: el protocolo de pruebas de estrategias. El formulario complementa el método de este capítulo con funciones de guardado local, exportación e impresión.
1. Backtesting y pruebas prospectivas: preguntas distintas, respuestas distintas
Un buen backtest no significa que una estrategia esté lista para operar. Las pruebas históricas investigan el pasado con un modelo especificado. Las pruebas prospectivas observan las decisiones a medida que llegan datos nuevos. Las dos etapas aportan información diferente: un backtest puede proporcionar una muestra más larga de resultados, mientras que la observación prospectiva puede revelar problemas de sincronización, implementación y cumplimiento de las reglas. Solo una etapa en real debidamente controlada mide las ejecuciones y los cargos reales; la ejecución en demo sigue siendo una simulación. Sustituir una etapa por la otra supone descartar la información que debía aportar la etapa omitida.
Backtesting: la pregunta histórica
Un backtest pregunta: «¿Cómo se habrían comportado estas reglas durante, por ejemplo, los tres a diez años anteriores?». Su respuesta solo es tan útil como lo sean los datos, el modelo de ejecución y costes y la validez del diseño de investigación. Es retrospectivo:
- Puede ser rápido. Cinco años de datos pueden procesarse en minutos en una prueba sencilla, aunque una modelización detallada con ticks y las búsquedas amplias de parámetros pueden tardar mucho más.
- Puede producir cientos o miles de observaciones, según la frecuencia de las señales y el periodo histórico.
- Permite comparar variantes de los parámetros. Esa flexibilidad también es una fuente importante de sesgo de selección y sobreajuste.
- Es sensible a ticks erróneos, velas ausentes, marcas temporales incorrectas y costes poco realistas. Una muestra grande no corrige un error sistemático en los datos o en el modelo.
Un backtest no demuestra que una estrategia funcione ahora. Un régimen representado en 2018–2022 no tiene por qué persistir durante 2024–2026. Del mismo modo, los resultados de una tendencia histórica concreta del yen no pueden trasladarse sin más a un entorno distinto de política monetaria o intervención. Estos ejemplos ilustran un cambio de condiciones, no afirman que una estrategia determinada deba tener éxito o fracasar en un periodo concreto. Documenta la exposición a los regímenes en lugar de considerar que el intervalo de fechas basta como evidencia.
Pruebas prospectivas: la pregunta hacia el futuro
Una prueba prospectiva pregunta: «¿Cómo se comportan las reglas fijadas a medida que llegan observaciones nuevas y coincide su implementación con el proceso previsto?». Avanza en tiempo real:
- Lleva tiempo. A cinco operaciones por semana, 100 operaciones requieren unas 20 semanas, aproximadamente cinco meses, sin contar festivos y oportunidades omitidas.
- La muestra puede seguir siendo pequeña. Un piloto de 30–80 operaciones es un ejemplo de evidencia limitada, no una descripción verificada de la práctica de todos los traders minoristas.
- Las observaciones futuras no están disponibles en el momento de una verdadera decisión en vivo. Esto elimina una vía de anticipación, pero el reetiquetado posterior, los datos revisados o las modificaciones retrospectivas aún pueden contaminar la evaluación registrada.
- Puede revelar cambios en el spread, latencia, solicitudes rechazadas y deslizamiento. La evidencia depende de la modalidad: los registros en real miden la ejecución real, mientras que las modalidades demo y simulada no la reproducen por completo.
- Revela errores humanos de implementación: cantidades incorrectas, decisiones tardías, señales omitidas e intervención discrecional en una posición abierta.
Una prueba prospectiva corta no resuelve una afirmación sobre una ventaja a largo plazo. Es especialmente valiosa para identificar diferencias entre los supuestos históricos y la implementación actual. La inferencia a más largo plazo sigue dependiendo del tamaño de la muestra, la dependencia, la cobertura de regímenes y la incertidumbre, no de la etiqueta «prospectiva».
Tres modalidades de prueba: revisión manual, reproducción y automatización
«Backtesting» puede referirse a tres actividades distintas. Sepáralas antes de comparar la evidencia que aportan:
- Revisión manual de gráficos. Recorres el historial y registras las decisiones. Ayuda a identificar reglas poco claras y casos límite. Una revisión corriente en la que se ven las velas posteriores es vulnerable al sesgo retrospectivo, a un ritmo de revisión selectivo y al recuerdo del resultado; no debe presentarse como una muestra de rendimiento imparcial. Un protocolo manual a ciegas cuidadosamente diseñado es un ejercicio diferente y más exigente.
- Reproducción vela a vela. Una herramienta revela el historial de forma secuencial y oculta las observaciones posteriores. Algunos ejemplos son la reproducción de gráficos, los modos visuales de los probadores y las aplicaciones de reproducción específicas, con sujeción al comportamiento real de sus datos y sus tiempos. La reproducción puede probar la coherencia de una clasificación discrecional y el tiempo de respuesta si se controla el ritmo. Sigue sin establecer los costes reales de ejecución. Retroceder después de ver el resultado y sustituir la decisión original contamina esa prueba; registra las reproducciones exploratorias por separado.
- Pruebas históricas automatizadas. El código aplica reglas a un conjunto de datos. Es una vía eficiente para obtener muestras grandes y reproducibles, pero introduce todos los riesgos de la sección 2: filtración de información, supuestos de ejecución, costes y selección repetida. La automatización también reproduce una regla defectuosa con mucha constancia.
La secuencia importa. La reproducción antes de programar puede revelar instrucciones que dos personas interpretan de forma distinta. Un probador no puede aportar la definición que falta; solo implementa la interpretación que eligió el programador. Fija la especificación y la versión de la estrategia antes de evaluarla, como se describe en el artículo 15.3, y no después de examinar el resultado.
Qué puede y qué no puede revelar cada etapa
| Cuestión | Prueba histórica | Prueba prospectiva |
|---|---|---|
| Anticipación: uso de información futura en una decisión | Un informe de beneficios no diagnosticará su propia filtración de información. La revisión del código, las comprobaciones de marcas temporales y la reproducción controlada pueden revelarla. | Los registros en tiempo real pueden mostrar discrepancias con una reconstrucción histórica posterior. Conserva los valores y las decisiones originales. |
| Ajuste de los parámetros a la curva | Una evaluación intacta, la investigación walk-forward y un registro completo de ensayos pueden investigarlo; ninguno es una solución automática. | Puede revelar un deterioro tras suficientes observaciones o un cambio de régimen. Un piloto corto y favorable aún puede ser fruto de la suerte. |
| Costes de ejecución insuficientemente modelizados | Solo en la medida en que los datos de entrada y el modelo de ejecución los representen. | Los costes reales de operar en vivo pueden medirse directamente. Los costes en demo y en simulación siguen siendo aproximaciones incompletas. |
| Un cambio de régimen posterior al periodo histórico | No puede observar condiciones futuras ausentes del conjunto de datos. | Observa el entorno actual, pero detectarlo no establece automáticamente cuánto durará. |
| El trader no puede seguir las reglas | Una prueba mecánica normalmente supone que se siguen sus instrucciones programadas; los protocolos manuales pueden revelar algunos problemas de usabilidad. | Las decisiones con marcas temporales revelan señales omitidas, desviaciones e intervenciones del operador real. |
| Precisión de la estimación de la ventaja operativa | Una muestra más larga puede reducir la incertidumbre si se gestionan correctamente su calidad, dependencia y selección. | Un piloto prospectivo corto suele ser insuficiente: 5 operaciones por semana producen unas 130 observaciones en medio año (26 × 5), con un intervalo amplio para ese tamaño de muestra. La precisión también depende de la distribución de los resultados. |
| Drawdown a largo plazo (3+ años, varios ciclos) | Varios años pueden abarcar más condiciones históricas, pero 5 años no garantizan varios ciclos de mercado independientes ni la peor trayectoria de pérdidas posible. | Un piloto prospectivo corto suele abarcar solo 1 ciclo de mercado o las condiciones realmente observadas; un registro prospectivo más largo puede acabar aportando evidencia más amplia. |
El trabajo histórico aporta contexto y profundidad de muestra; el prospectivo comprueba si el proceso resiste el contacto con datos nuevos y con el entorno operativo previsto. Un backtest rápido y una etapa de observación de 90 días imponen tiempos de espera muy distintos, pero el tiempo transcurrido no es motivo para omitir esta última. Ni un cálculo de diez minutos ni un piloto de tres meses garantizan que se haya reunido la evidencia necesaria.
Conciliar las señales históricas y prospectivas
Un diagnóstico especialmente útil consiste en comparar señal a señal durante las mismas fechas. Exporta ambas fuentes a un esquema común, por ejemplo:
timestamp_utc, broker_server_time, pair, setup_id, direction, entry_rule_hash,
entry_price, sl_price, tp_price, trigger_bar_close, source
Conserva suficientes campos adicionales para distinguir el momento de la señal, la disponibilidad real de la información, las solicitudes de órdenes y las ejecuciones. Después de los primeros 30–60 días de observación, ejecuta la implementación histórica fijada sobre los datos archivados de esos mismos días. Compara ambos inventarios. Un umbral ilustrativo de discrepancia del 5–10% puede activar una investigación, pero las diferencias menores también pueden importar si favorecen sistemáticamente al backtest. Define el denominador y si estás emparejando señales, solicitudes o ejecuciones antes de informar de un porcentaje.
Entre las posibles causas figuran la filtración de información futura, el repintado, fuentes de datos distintas, errores de zona horaria, código incoherente e intentos fallidos de cursar órdenes en tiempo real. Cincuenta señales históricas frente a doce prospectivas en las mismas fechas constituyen una discrepancia importante sin resolver; no avances hasta explicarla. Leer Close[0] durante una vela no es automáticamente un error: el error consiste en tratar su valor final posterior como si se hubiera conocido en la decisión anterior.
timestamp_utc como broker_server_time junto con la convención de desfase del servidor correspondiente a cada fecha. Algunos proveedores de MT4/MT5 utilizan relojes de servidor UTC+2 o UTC+3 asociados al cierre de Nueva York, pero no es universal. Comparar registros sin normalizar puede crear un aparente problema de anticipación cuando los dos sistemas utilizaron en realidad velas diferentes. Convierte correctamente las marcas temporales y después compara. Cuenta también las velas ausentes y las marcas temporales duplicadas, distinguiendo los cierres legítimos del mercado de los huecos del suministro de datos. Las marcas temporales de ticks duplicadas pueden representar actualizaciones de cotización distintas, así que no elimines todos los ticks con la misma hora sin comprobar su identidad y secuencia.La ficha de prueba: doce campos antes de interpretar el resultado
Sin una ficha de prueba, puede resultar imposible reproducir un resultado seis meses después. Necesitas saber qué datos, implementación, modelo de costes e historial de selección lo produjeron. Completa los primeros nueve campos antes de realizar la evaluación. El resto de este artículo explica por qué cada campo puede cambiar la conclusión.
| Campo | Qué registrar | Entrada ilustrativa: datos sintéticos |
|---|---|---|
| 1. Pregunta | Una frase que indique qué investiga la prueba. | «¿Tiene el breakout del rango previo a Londres en EUR/USD una esperanza matemática positiva después de costes?» |
| 2. Versión de la estrategia y del código | Identificador de versión y hash de la especificación y la implementación fijadas. | lonbreak v1.3, prefijo ilustrativo del hash a91f…, fijados antes de la primera ejecución OOS. |
| 3. Datos y periodo | Proveedor, instrumento, resolución, bid/ask/mid, zona horaria, cobertura y depuración. | Ticks bid/ask de EUR/USD de Dukascopy, UTC, 2018-01 → 2024-12; registros duplicados confirmados eliminados; conservadas las actualizaciones distintas que comparten marca temporal; documentados 4 días ausentes y 11 huecos de más de 30 minutos. |
| 4. División | Límites cronológicos de IS, validación y OOS; identifica si «prospectivo» significa una reserva histórica o datos entrantes. | IS 2018-01 → 2021-12; validación 2022-01 → 2023-06; OOS intacto 2023-07 → 2024-12. La observación prospectiva comienza el 2026-05-04. |
| 5. Modelo de ejecución | Disponibilidad de la señal, ejecución, demora, ejecuciones parciales, gaps y tratamiento de velas ambiguas. | Señal al cierre de M15; ejecución larga en ask tras una demora modelizada de 300 ms, corta en bid; la vela con stop y objetivo cuyo orden no se resuelve se cuenta como stop primero; un gap utiliza el siguiente precio ejecutable disponible. Este ejemplo de ficha de prueba es independiente del candidato del artículo anterior. |
| 6. Costes | Spread, deslizamiento, comisión y financiación, con una comprobación explícita de doble cómputo. | Spread de los ticks bid/ask; deslizamiento adverso ilustrativo de 0,1 × M5 ATR(14) en la entrada y la salida; comisión equivalente a 0,6 pip por operación completa de ida y vuelta; financiación según el cuadro correspondiente del proveedor. El spread incorporado en las ejecuciones no vuelve a descontarse. |
| 7. Variantes y ensayos | Todas las combinaciones de parámetros y versiones de las reglas probadas, incluidas las descartadas. | 96 combinaciones de parámetros más 4 experimentos adicionales independientes de salida = 100 ensayos. Aplicar el producto completo 96 × 4 supondría, en cambio, 384 ensayos. Registra cada ensayo en 02_IS/trial_log.csv. |
| 8. Métricas | Definiciones, denominadores y convenciones de muestreo. | Esperanza matemática en R con R₀ fijado como el riesgo monetario previsto antes de entrar; factor de beneficio; drawdown desde el máximo de capital acumulado hasta ese momento; número de operaciones y estimaciones de incertidumbre. |
| 9. Criterios de decisión preespecificados | Resultados positivos, negativos y no concluyentes, escritos antes de las pruebas. | Continuar la investigación si el límite inferior del 95% de la esperanza matemática OOS está por encima de cero; volver al diseño si el límite superior está por debajo de cero; en caso contrario, clasificar el resultado como no concluyente. «Continuar» no autoriza automáticamente a operar en real. |
| 10. Resultados | Estimaciones con intervalos, no solo valores puntuales. | OOS n = 214, esperanza matemática +0,12R, intervalo ilustrativo del 95% (−0,07R, +0,31R): incluye cero. |
| 11. Limitaciones | Qué no mide la prueba y qué puede contaminarla. | Un proveedor y un par; sin datos de profundidad del libro de órdenes; ninguna crisis de liquidez observada; 100 ensayos exploratorios sin un ajuste por pruebas múltiples especificado. Indica cómo la selección y la integridad de la reserva de evaluación afectan a la inferencia. |
| 12. Archivos de reproducción | Rutas y hashes completos de las entradas, el código y las salidas necesarios. | 01_data/eurusd_2018_2024.csv (sha256), lonbreak_v1_3.mq5, costs.json, trial_log.csv y el cuaderno bootstrap. El hash abreviado de arriba es solo un ejemplo de presentación. |
El campo 9 es fácil de omitir. Un criterio escrito después de ver el resultado es una descripción retrospectiva, no una regla de decisión preespecificada. El campo 7 importa igual: sin el número total de ensayos, el aparente ganador puede ser simplemente el máximo de muchas búsquedas. En el campo 11 deben explicitarse las limitaciones sin resolver. Si se desconoce una entrada esencial de un campo anterior, no la inventes; márcala como pendiente y aplaza la prueba o limita su interpretación en consecuencia.
2. Trampas de las pruebas: anticipación, supervivencia, ajuste de curvas y sobreajuste
Son riesgos metodológicos, no simples signos de descuido del investigador. Una plataforma o un script propio pueden producir un informe convincente aunque su configuración o implementación permitan un error grave. Cuestiones cognitivas como el sesgo de confirmación y el sesgo retrospectivo se tratan en la sección de psicología del trading. Aquí la atención se centra en el diseño técnico de la prueba y las comprobaciones necesarias para exponer sus debilidades.
Trampa 1: sesgo de anticipación
La anticipación se produce cuando una decisión utiliza información que solo habría estado disponible más tarde. Algunas vías habituales son:
- Una decisión intravela basada en el cierre final. Una estrategia calcula la SMA(20) incluyendo la vela M5 actual e indica que entra cuando esa vela cierra por encima de la media. En el segundo 240 de la vela de cinco minutos, el cierre final aún se desconoce. Leer el valor actual de
Close[0]no constituye por sí mismo una filtración de información futura; interpretar un cierre final posterior como el valor disponible en el segundo 240 sí. Comprueba qué devuelven realmente el modo del probador y el código en cada llamada de retorno, en lugar de suponer que un modo denominado «Solo precios de apertura» admite la regla intravela prevista. - Un marcador histórico confirmado más tarde. ZigZag, las herramientas de puntos de giro, los fractales, los anclajes de pitchfork elegidos manualmente y algunos canales propios pueden marcar una vela anterior usando información que llega después. Un máximo de giro dibujado hoy diez velas atrás quizá no estuviera confirmado en esa vela. El nombre del indicador no establece el comportamiento exacto; lo hacen la implementación y la marca temporal de confirmación.
- Datos macroeconómicos indexados por el periodo de referencia en vez de por la hora de publicación. Un valor etiquetado como «IPC de marzo» puede publicarse solo en abril. Una estrategia que lo utilice antes de su publicación real está usando información no disponible. Verifica el calendario de publicación del emisor, la convención de marcas temporales del proveedor y la versión de los datos disponible entonces. Las revisiones posteriores son otra fuente de filtración.
Detección: observa la estrategia fijada con datos entrantes y después concilia sus señales originales con una reconstrucción histórica de las mismas fechas. Una discrepancia es un problema que diagnosticar, no una prueba de anticipación por sí sola. Otras explicaciones incluyen un feed distinto, repintado, una conversión horaria incorrecta e intentos fallidos de órdenes en tiempo real. Primero alinea el tiempo y los datos; distingue las señales de las solicitudes y las ejecuciones; después examina el flujo de información de la estrategia. Reescribir un indicador correcto antes de comprobar las velas de entrada puede crear un problema nuevo sin explicar el anterior.
Entre las implementaciones que merecen una comprobación explícita del momento en que está disponible la información figuran:
- ZigZag, fractales y construcciones de pitchfork. Determina cuándo puede conocerse un pivote o anclaje y si el punto anterior mostrado puede moverse. Una señal confirmada con un retraso correcto es distinta de fingir que el pivote se conocía en su origen.
- Heikin-Ashi, SuperTrend, medias móviles Hull y canales propios. Ninguno es intrínsecamente fraudulento. Prueba la implementación real para detectar cambios en las señales de velas completadas. Los precios sintéticos de las velas Heikin-Ashi también requieren un tratamiento separado: no son automáticamente precios de mercado ejecutables.
- Indicadores de mercados de aplicaciones con código cerrado. No puedes examinar su lógica interna. Si una política exige validación a nivel de código fuente, recházalos para ese proceso de investigación. Las pruebas temporales de caja negra pueden revelar defectos, pero no establecer todas las dependencias internas.
iCustom(): lecturas de búfer. Identifica el búfer, el desplazamiento de vela, el tratamiento de valores no disponibles y si se recalculan los valores históricos del búfer.- Decisiones intravela con
Close[0]en MT4. El valor actual es un precio en evolución de la vela actual, no el valor final de cierre. La prueba debe reproducir la misma secuencia de información que la regla en real. - Datos de un marco temporal superior en un gráfico de marco inferior. Un valor H4 utilizado por una decisión M15 antes de que cierre esa vela H4 es provisional. En Pine, el comportamiento de
request.security()depende de los desplazamientos de las expresiones, los ajustes de anticipación y la evaluación histórica frente a la de tiempo real. Utiliza el patrón documentado de marco superior confirmado cuando esa sea la regla prevista; no supongas que añadir[1]en cualquier lugar resuelve todos los problemas temporales. Comprueba también la implementación MQL correspondiente. - Series macroeconómicas fechadas por periodo. Vincúlalas según la disponibilidad real de la información y su versión de datos, no por el primer día del mes descrito por la estadística.
Una comprobación práctica contra el repintado: en un feed en vivo, registra el valor del indicador para una vela completada identificada que actualmente esté diez velas atrás. Después de que lleguen cinco velas nuevas, examina la misma marca temporal, ahora quince velas atrás. Cinco velas M1 nuevas tardan unos cinco minutos; cinco velas H1, unas cinco horas, excluidos los huecos de sesión. Si el valor cambia, una representación histórica no reproduce necesariamente la señal original. Registra cuándo estuvo disponible cualquier confirmación.
Que una vela no cambie no certifica la ausencia de repintado. Repite la comprobación en múltiples velas, casos límite y regímenes de volatilidad; incluye, cuando corresponda, cambios tras una reconexión o actualización del historial. Es un protocolo de observación, no una afirmación de que toda implementación pueda validarse en unos minutos. Conserva los registros para que la comparación sea reproducible.
Close[0] como si hubiera estado disponible durante la vela. El problema es el código y la temporización, no el concepto de Heikin-Ashi en sí. La conciliación revela diferencias superiores al 50% según la regla de correspondencia del ejemplo y bloquea cualquier avance. Doce operaciones son demasiado pocas para estimar la ventaja con precisión, pero una discrepancia en las reglas directamente reproducible puede identificarse con un número pequeño de casos. Muestra pequeña o dependiente: limita la conclusión sobre el rendimiento, no la investigación de un defecto de implementación demostrado.Trampa 2: sesgo de supervivencia
Supongamos que un investigador utiliza una lista actual de pares de divisas para probar un periodo anterior. Esa selección puede omitir instrumentos que se negociaban entonces pero que después desaparecieron o dejaron de estar disponibles. También importa el problema inverso de implementación: unos resultados históricos atractivos pueden depender mucho de un instrumento que el proveedor previsto ya no ofrece en condiciones comparables. El USD/RUB en torno a los cambios posteriores a 2022 es un ejemplo de por qué la disponibilidad, las restricciones por sanciones, la liquidez y las condiciones de ejecución necesitan una verificación específica de fecha y proveedor, no una afirmación universal sobre el acceso actual.
La selección en los mercados de aplicaciones crea un problema relacionado. Un EA visible actualmente con cinco estrellas y 200 reseñas positivas pertenece a los productos que siguen publicados y reciben atención. Los productos fallidos, retirados o poco populares pueden estar ausentes de la comparación. Las valoraciones por sí solas no identifican toda la cohorte de lanzamiento, ni establecen la probabilidad de supervivencia o que todos los EA tuvieran originalmente la misma probabilidad de éxito.
Detección: reconstruye el universo de instrumentos tal como existía en la fecha de la decisión histórica. Una prueba de 2018–2020 debe identificar qué ofrecía el proveedor pertinente en 2018, incluidos los instrumentos retirados después. Restringir el historial a los supervivientes actuales utiliza información futura al seleccionar el universo. La viabilidad actual es una limitación separada: registra qué instrumentos históricos siguen disponibles con la entidad jurídica prevista y qué parte del resultado histórico procedía de los que ya no son utilizables. Para los productos de mercados de aplicaciones, conserva fechas de publicación, historial de versiones e información de la cohorte comparada en lugar de interpretar una clasificación actual como una muestra sin seleccionar.
Trampa 3: ajuste de curvas
Considera periodos de SMA de 20, 22, 25 y 30; periodos de RSI de 11, 14 y 17; y un umbral de ATR de 0,8 a 1,5 en incrementos de 0,1. Son 4 × 3 × 8 = 96 combinaciones. Buscar muchas alternativas aumenta la probabilidad de encontrar un resultado atractivo aunque no exista una ventaja duradera. No garantiza que alguna parezca extraordinaria, pero el máximo seleccionado no es una observación única preespecificada corriente.
En un ejemplo sintético, la mejor combinación es SMA-22, RSI-14 y ATR 1,1, con +180% en tres años históricos. Los siguientes 60 días producen −8%. Ese contraste puede ser compatible con un ajuste al ruido histórico, pero la pareja de rentabilidades por sí sola no demuestra el diagnóstico; también hay que comprobar costes, implementación, régimen y muestreo. Lo seguro es que el ganador histórico se seleccionó entre 96 ensayos, y su informe debe revelar ese proceso.
Detección: examina un mapa de calor de parámetros. Una celda favorable aislada y rodeada de resultados malos sugiere una sensibilidad que merece investigarse. Una meseta amplia solo indica que el resultado no está ligado a un único ajuste. Una meseta no demuestra una esperanza matemática positiva. Todavía puede ser un artefacto del mismo conjunto de datos sobreexplotado o simplemente reflejar parámetros cuyos pequeños cambios dejan intacto el conjunto de operaciones.
Sigue siendo necesaria una evaluación independiente: un periodo OOS realmente intacto, un procedimiento walk-forward preespecificado y la comparación con la referencia de la sección 3. Informa del número de operaciones, la incertidumbre y todo el historial de selección, no solo de un mapa de calor suave o una media favorable. Un resultado OOS consultado repetidamente mientras se cambia el método ya no está intacto.
Trampa 4: sobreajustar las reglas
El ajuste de curvas de parámetros es una forma de sobreajuste. Otra es añadir reglas para eliminar pérdidas históricas concretas. «No entrar después de las 13:00 Europe/London los martes» puede haberse introducido solo porque dos operaciones perdedoras ocurrieron en ese intervalo; corresponde al límite de las 14:00 del ejemplo polaco con el desfase habitual entre Reino Unido y Polonia. Eliminar esas operaciones mejora esa muestra por construcción, no necesariamente la estrategia subyacente.
No presentes un filtro de viernes como validado solo porque tres pérdidas pasadas ocurrieran en viernes. Un filtro propuesto tras examinar las pérdidas es una hipótesis de investigación nueva. Puede investigarse con datos de desarrollo, pero necesita una razón, una entrada en el registro de ensayos y una evaluación independiente antes de llamarlo mejora. Fíjalo antes de la evaluación utilizada para respaldar la afirmación.
Este artículo de ejemplo ofrece una advertencia de trabajo conservadora para más de cuatro parámetros optimizados con menos de 200 operaciones, y analiza la heurística aproximada parámetros optimizados × 30 ≤ número de operaciones: cuatro parámetros implican 120 operaciones; ocho, 240. Son heurísticas ilustrativas de auditoría, no teoremas estadísticos ni estándares de mercado. Un modelo situado por debajo de la línea de advertencia aún puede estar sobreajustado, y uno situado por encima no queda refutado solo por esa proporción.
Investiga la sensibilidad, el número de variantes intentadas, la dependencia y el rendimiento independiente. Cuando las variantes comparten observaciones, evalúa sus diferencias de rendimiento con un método pareado o de remuestreo adecuado, en lugar de suponer que unos intervalos separados solapados resuelven la comparación. Un resultado OOS favorable o un mapa de calor estable son evidencia que valorar, no una prueba universal de que se haya eliminado el sobreajuste.
Trampa 5: costes insuficientemente modelizados
Una prueba MT4 configurada con un spread fijo de 1 pip aplica un coste simplificado independientemente de la liquidez histórica. Verifica los ajustes y las capacidades del probador instalado en vez de suponer que toda plataforma o versión usa el mismo valor predeterminado. Los spreads reales pueden diferir sustancialmente entre los solapamientos de sesiones líquidos, el rollover y las publicaciones importantes. Las fracciones de pip, varios pips y los spreads breves de dos cifras en pips son magnitudes de escenarios que investigar en el feed pertinente, no cotizaciones actuales de proveedores ni límites garantizados. Una estrategia concentrada en una franja nocturna de escasa liquidez puede parecer rentable suponiendo un spread fijo y fallar con un modelo apropiado de spread variable.
El segundo componente es el deslizamiento. Una ejecución histórica al precio exacto es un supuesto, no una promesa de ejecución real. El ejemplo ilustra 0,2–0,5 pip en condiciones normales, 1–3 pips en torno a rupturas y 5–15 pips después de publicaciones. Esos intervalos no deben tratarse como una distribución medida de tu cuenta. Una estimación bruta de +0,3R podría caer a +0,1R si los costes adicionales de implementación ascienden a 0,2R; la reducción real depende de la distancia de riesgo inicial, el tipo de orden y las ejecuciones medidas.
El tercer componente es la financiación. Una estrategia swing que mantiene posiciones de tres a ocho días puede incurrir en cargos o abonos por rollover según el instrumento, la dirección y el proveedor. No supongas que una posición larga en EUR/USD tiene siempre un signo determinado. En el cálculo ilustrativo, un cargo nocturno de 3 pips con una distancia inicial al stop de 20 pips equivale a 0,15R por día cobrado. Cinco cargos de un día suman 0,75R y superan una estimación de +0,4R antes de financiación. Un stop de 60 pips convierte el mismo cargo en 0,05R al día. Utiliza los multiplicadores diarios reales, incluidos los ajustes pertinentes de fines de semana y festivos, en lugar de equiparar cinco noches de calendario a cinco cargos idénticos. La conversión es coste de financiación en R = financiación en unidades equivalentes en pips / distancia inicial al stop en pips, tratando de forma coherente el tamaño de la posición y la conversión de divisas.
El cuarto componente es la comisión. Algunas cuentas de spread bruto cobran por separado según el volumen negociado; una etiqueta «ECN» no establece un tipo de cuenta obligatorio ni su tarifa. Con un importe ilustrativo de USD 6 por lote estándar y operación completa, 200 operaciones de 0,1 lote cuestan 200 × 0,1 × 6 = USD 120. Es el 12% de un saldo inicial de USD 1.000 antes de considerar cualquier resultado por variación de precios. El intervalo de USD 5–7 del ejemplo es ilustrativo, no un estudio actual de tarifas. Una prueba de scalping que omita un cargo importante por operación completa no puede respaldar la afirmación prevista sobre el rendimiento neto.
Trampa 6: exploración oportunista de datos
Un investigador prueba 30 estrategias, descarta 28 y publica dos backtests atractivos. Los cálculos individuales pueden ser correctos mientras el proceso de selección vuelve engañosa su significación aparente. En 30 pruebas independientes bajo la hipótesis nula con un umbral del 5%, el número esperado de falsos positivos es 1,5 y la probabilidad de al menos uno es de aproximadamente el 78,5%. Esto no significa que deban tener éxito exactamente dos o tres, ni que las estrategias publicadas tengan una probabilidad casi nula de funcionar. Significa que la búsqueda completa, no solo las supervivientes, forma parte de la inferencia.
Un control convencional del error familiar es el ajuste de Bonferroni: para 30 pruebas con un nivel global de 0,05, el umbral por prueba es 0.05 / 30 ≈ 0.00167.[2] Puede ser conservador, especialmente con pruebas relacionadas. Otros enfoques abordan objetivos distintos, como el control de la tasa de falsos descubrimientos y el ratio de Sharpe deflactado.[3] No son interruptores intercambiables y hay que aportar sus supuestos y las entradas de selección. En todos los casos, ocultar los ensayos fallidos impide una evaluación significativa.
Detección: mantén un registro de todas las estrategias y variantes probadas, incluidos los resultados rechazados. Dos ganadoras seleccionadas entre 30 candidatas exploratorias necesitan una interpretación distinta de dos evaluaciones realmente preespecificadas. Por eso el campo 7 de la ficha de prueba es obligatorio.
Un error desarrollado: stop y objetivo en la misma vela
Esta ambigüedad de ejecución puede inflar sustancialmente un backtest mientras parece un resultado de operación corriente. Su importancia depende de la frecuencia con la que las salidas de la estrategia se encuentran dentro de la misma vela registrada.
El registro incorrecto: una vela H1 tiene apertura 1.0850, máximo 1.0885, mínimo 1.0815 y cierre 1.0870. Se supone una posición larga ya ejecutada a 1.0850, con stop en 1.0820 y objetivo en 1.0880, ambos a 30 pips. Los dos niveles están dentro del rango de la vela. Una prueba propia que compruebe primero la condición del objetivo registra +1R, aunque los datos OHLC no revelan qué nivel se alcanzó primero. Es un ejemplo definido de implementación optimista, no una afirmación de que todos los probadores usen por defecto el objetivo primero.
El modelo de ejecución corregido: Los datos OHLC por sí solos no pueden reconstruir toda la secuencia de eventos intravela. Indica cómo se trata la ambigüedad:
- Un criterio conservador por defecto cuenta una vela que toca ambas salidas como una salida por stop. Etiquétalo como pesimista, no como realismo demostrado, en el campo 5 de la ficha de prueba.
- Examina datos de un marco inferior o de ticks de las velas ambiguas. M1 aún puede dejar ambas salidas en una vela; unos datos de cotización suficientemente detallados y con el lado bid/ask correcto pueden resolver algunos casos, pero las ejecuciones aún pueden requerir supuestos sobre el estado de la orden y la liquidez.
- Calcula ambos extremos: todas las operaciones ambiguas con stop primero y todas con objetivo primero. Si ese intervalo cambia la decisión, informa de la incertidumbre en lugar de elegir el extremo favorable.
- Registra el número de velas ambiguas en las limitaciones. Si los stops y objetivos están próximos en relación con el rango de la vela de decisión, la resolución OHLC elegida puede ser inadecuada para la afirmación.
Cálculo sintético: una prueba de 200 operaciones contiene 14 velas de este tipo. Tratar todas como objetivo primero da una esperanza matemática de +0,18R. Cambiar las 14 de +1R a −1R elimina 28R, es decir, 0,14R por operación, y deja +0,04R. Una reproducción suficientemente detallada identifica nueve casos de stop primero y cinco de objetivo primero. Frente al caso de todos los objetivos primero, nueve operaciones pierden 2R cada una: 18R / 200 = 0,09R, de modo que la estimación resuelta es +0,09R. El modelo optimista sobrestima esa estimación en 0,09R por operación, lo que puede ser importante respecto al margen para costes de la estrategia. La vela H1 por sí sola no puede establecer esta secuencia. Informa de la limitación y del método utilizado para resolverla, no del resultado que parezca mejor.

3. Análisis walk-forward: validación con datos limitados
El análisis walk-forward, o WFA, evalúa una secuencia de ventanas de desarrollo y de evaluación posterior. Robert Pardo expone el método de forma sistemática en The Evaluation and Optimization of Trading Strategies.[1] En lugar de seleccionar parámetros sobre todo el historial, desarrolla en una ventana dentro de la muestra, evalúa la elección fijada en una ventana posterior fuera de la muestra y después avanza según un procedimiento fijado de antemano.
Una división cronológica: desarrollo, validación y OOS
Una ilustración sencilla de dos partes utiliza:
- Cinco años de calendario: 1 de enero de 2020–31 de diciembre de 2024.
- Aproximadamente el 70% para desarrollo: 1 de enero de 2020–30 de junio de 2023, o tres años y medio.
- Aproximadamente el 30% para evaluación final: 1 de julio de 2023–31 de diciembre de 2024, o un año y medio, examinado por primera vez solo después de fijar las reglas seleccionadas.
La división 70/30 es un supuesto del escenario, no un estándar de mercado. Elige una división que proporcione un número utilizable de señales y condiciones relevantes a ambos lados. La cronología importa: para esta tarea de predicción y trading, la evaluación sigue al desarrollo. Mezclar aleatoriamente observaciones de distintas fechas puede filtrar al proceso de investigación información sobre regímenes futuros y dependencias.
También hay tres funciones distintas, aunque la primera ilustración solo tenga dos bloques principales de fechas:
- Desarrollo dentro de la muestra: busca, optimiza y rechaza candidatos aquí. Seleccionar parámetros es legítimo cuando se declara como desarrollo.
- Validación para la selección: una ventana posterior de la etapa de desarrollo ayuda a elegir entre candidatos. Una vez utilizada para esa elección, forma parte de la selección, no de una prueba final intacta. Asígnala explícitamente dentro del periodo de desarrollo si utilizas el ejemplo de dos partes anterior.
- Evaluación OOS final: examínala después de fijar la estrategia y el procedimiento de evaluación. Si su resultado orienta un filtro nuevo, ya no es evidencia independiente para ese filtro revisado; registra la contaminación.
Una ventana de selección separada es útil al comparar múltiples candidatos. No es lógicamente obligatoria para un único candidato totalmente preespecificado, pero la ventana OOS final nunca debe convertirse silenciosamente en el lugar donde eliges al ganador. «Probemos un filtro más» después de ver su resultado cambia la función de los datos.
Puedes volver al desarrollo tras un resultado OOS débil, pero no puedes cambiar las reglas, repetir el mismo periodo y llamar al resultado nuevo validación intacta. Conserva el primer resultado y marca el uso posterior como desarrollo o reutilización diagnóstica. Una repetición idéntica para verificar la reproducibilidad no crea por sí misma una hipótesis nueva; un cambio de reglas guiado por el resultado sí.
Análisis walk-forward rodante
Un único periodo final puede ser extraordinariamente favorable o difícil. La evaluación rodante examina el procedimiento en varios periodos sucesivos, aunque no puede garantizar que representen todas las condiciones futuras:
| Paso | Ventana de desarrollo | Ventana de evaluación posterior |
|---|---|---|
| 1 | 2020-01 a 2022-12 (3 años) | 2023-01 a 2023-06 (6 meses) |
| 2 | 2020-07 a 2023-06 (3 años) | 2023-07 a 2023-12 (6 meses) |
| 3 | 2021-01 a 2023-12 (3 años) | 2024-01 a 2024-06 (6 meses) |
| 4 | 2021-07 a 2024-06 (3 años) | 2024-07 a 2024-12 (6 meses) |
Las cuatro ventanas de evaluación no se solapan en el calendario y juntas abarcan dos años. Eso no las hace estadísticamente independientes. Son adyacentes, las ventanas de desarrollo se solapan sustancialmente y un régimen persistente puede abarcar varios bloques de evaluación. Fija el procedimiento de selección rodante antes de examinar la secuencia combinada; de lo contrario, el propio procedimiento puede ajustarse a los resultados OOS aparentes.
Los resultados netos positivos en tres o cuatro ventanas pueden justificar una investigación adicional de robustez, pero el recuento por sí solo es evidencia débil. En un modelo ilustrativo de signos independientes y equiprobables, al menos tres positivos de cuatro ocurren con una probabilidad de 5/16 = 31,25%. La dependencia modifica esa probabilidad, no necesariamente en una dirección universalmente predecible. Informa del número de operaciones, la esperanza matemática neta, la incertidumbre y la exposición a regímenes de cada ventana. Una o dos ventanas positivas pueden sugerir sensibilidad al régimen; cero o una no aportan un argumento convincente para la activación. Ninguno de esos recuentos sustituye los criterios estadísticos y operativos preespecificados.
Investigación walk-forward para un trader de baja frecuencia
Con cinco a diez operaciones al mes, una estrategia swing produce aproximadamente 300–600 operaciones en cinco años. Una proporción OOS del 30% contiene unas 90–180. Cerca de una tasa de acierto del 60%, un intervalo binomial independiente del 95% tiene una semiamplitud aproximada de 7–11 puntos porcentuales, según el recuento y el método. Esto puede limitar la afirmación sobre la tasa de acierto, pero no establece por sí solo una relación de resultados rentable después de costes.
Con 50–100 operaciones al mes, cinco años proporcionan unas 3.000–6.000 observaciones. La incertidumbre muestral puede reducirse, pero la dependencia, la selección, la cobertura de regímenes y la modelización de la ejecución siguen siendo importantes. Un número grande de operaciones no convierte automáticamente el modelo de costes en la única cuestión pendiente.
Con una o dos operaciones al mes, una estrategia de posiciones proporciona solo 60–120 operaciones en cinco años, lo que deja unas 18–36 en un segmento OOS del 30%. La incertidumbre resultante puede ser demasiado amplia para distinguir una esperanza matemática útil de una pérdida. Entre las posibles respuestas figuran:
- Historial más largo: diez a quince años proporcionan unas 120–360 operaciones con esas frecuencias, con aproximadamente 36–108 en una proporción de evaluación del 30%. Comprueba si las condiciones antiguas de mercado y ejecución siguen siendo relevantes.
- Múltiples instrumentos: seis a diez pares de divisas pueden añadir observaciones, pero los eventos de divisas compartidas y las posiciones solapadas crean dependencia. Valida la afirmación entre instrumentos y no cuentes cada operación como un experimento independiente nuevo.
- Bootstrap por bloques: remuestrea bloques de los resultados observados para examinar la variación bajo supuestos de dependencia declarados. Esto reutiliza las observaciones existentes; no crea evidencia nueva del mercado. No puede convertir una muestra diminuta en una ventaja bien establecida solo por generar muchas trayectorias simuladas.
La referencia: ¿con qué se compara la estrategia?
Puede informarse de una media positiva sin una referencia, pero afirmar que las reglas adicionales de la estrategia aportan valor requiere un comparador pertinente. Antes de interpretar «+0,25R por operación», aplica el mismo periodo de datos, supuestos de ejecución y contabilización de costes a alternativas definidas explícitamente:
- El disparador sin los filtros adicionales. Si cuatro filtros no mejoran el objetivo de rendimiento o riesgo preespecificado, quizá solo reduzcan la muestra y añadan flexibilidad. Compara algo más que la media si los filtros pretendían cambiar el drawdown o la exposición.
- Entradas aleatorias con la misma frecuencia, política de dirección y reglas de salida. Las simulaciones repetidas producen una distribución de referencia en vez de un número elegido por conveniencia. Especifica el universo de entradas elegibles, el procedimiento de aleatorización y la semilla. Una estrategia cercana a su centro no ha mostrado una diferencia en esa comparación; no es una prueba universal de que todos sus aspectos sean aleatorios.
- Mantener una dirección especificada durante el periodo. Para una estrategia swing de un único par, puede revelar cuánto del resultado se asemeja a una deriva direccional. Utiliza una exposición comparable e incluye la financiación; mantener sin ajustar la escala no es automáticamente una comparación justa de riesgo.
- El mismo procedimiento con la señal invertida. Si ambas direcciones parecen rentables, investiga la temporización, las salidas asimétricas, los efectos de volatilidad y el modelo de costes. El resultado no es automáticamente un error, pero cuestiona la afirmación de que la predicción direccional sea la única fuente de valor.
Registra en el campo 10 tanto los resultados de la estrategia como los de referencia. El análisis de sensibilidad plantea la misma pregunta localmente: ¿qué ocurre cuando cada parámetro se desplaza un paso en cada dirección? Si la ventaja aparente desaparece al mover un umbral de ATR de 1,1 a 1,0, investiga los cambios del conjunto de operaciones y la incertidumbre. Una única celda atractiva de un mapa de calor no es evidencia sólida de una ventaja robusta.
Fijar el OOS: carpetas, hashes de configuración y registro de ensayos
Un resultado OOS débil seguido de cambios de parámetros y de inspecciones repetidas de ese mismo periodo es desarrollo sobre el historial combinado, no evidencia walk-forward intacta. Una estructura sencilla de proyecto ayuda a hacer visible la diferencia:
- Mantén directorios separados como
01_raw_data,02_IS_optimizationy03_OOS_locked. Añade, cuando se utilice, un subconjunto de validación para selección claramente identificado y sus límites. - Antes de la primera ejecución OOS final, registra los hashes completos de la especificación, el código, los parámetros, el modelo de costes y los límites de fechas en
03_OOS_locked/run_001.lock. Después añade el resultado y los metadatos de la ejecución sin sustituir las entradas originales. - Un candidato modificado recibe un registro de ejecución nuevo, como
run_002.lock, y una nota de que el periodo ya examinado deja de ser evidencia intacta para la revisión. No borres el registro histórico válido de lo que produjo el primer candidato fijado. - Cada ventana de evaluación final tiene una primera inspección con el procedimiento preespecificado. Las comprobaciones idénticas de reproducibilidad se distinguen de las variantes nuevas guiadas por el resultado. Planifica las ventanas rodantes de antemano y registra cuándo un bloque de evaluación anterior pasa a ser datos pasados legítimos para una etapa de desarrollo programada posterior.
Un nombre de archivo terminado en .lock o un hash no impiden físicamente las modificaciones ni la consulta. Proporcionan un rastro de auditoría al combinarse con archivos conservados y un acceso disciplinado. Un bloqueo aparente sin un registro de quién examinó qué datos no demuestra independencia.
Qué hacer tras un resultado OOS débil
No añadas un filtro solo porque el resultado sea incómodo. Sigue una secuencia de decisión documentada:
- Acepta y conserva el resultado. El candidato actual no ha cumplido el criterio de validación previsto. Un resultado puede ser no concluyente en lugar de concluyentemente negativo; utiliza el criterio escrito antes de la prueba.
- Vuelve al concepto. Revisa la hipótesis, el ciclo de desarrollo y la definición de ventaja en las tres primeras secciones del artículo 15.3. Comprueba si el mecanismo propuesto sigue teniendo sentido y si defectos de implementación o de datos explican el resultado.
- Si el mecanismo sigue siendo plausible, investiga la dependencia del régimen como una pregunta de investigación nueva. De cuatro a seis ventanas rodantes preespecificadas pueden ayudar. Dos ventanas de tendencia favorables y cuatro de consolidación desfavorables sugieren una posible interacción con el régimen, no un permiso inmediato para reactivar cuando aparezca una tendencia. Cada ventana necesita su tamaño de muestra y su intervalo de esperanza matemática neta. Tres ventanas positivas con solo ocho operaciones cada una pueden seguir siendo profundamente no concluyentes. Un filtro de régimen descubierto a partir de esos resultados necesita una especificación versionada y una evaluación independiente.
- Si el concepto falla, retira el candidato. Conserva el motivo y el historial de ensayos, y después pasa a otra idea en vez de acumular excepciones en torno a una afirmación rechazada.
4. Análisis de Monte Carlo: una trayectoria histórica no ofrece toda la perspectiva
Un backtest registra una secuencia de oportunidades y resultados. Una muestra de estrategia de cinco años podría contener 100 operaciones; otro historial de mercado podría haber producido 95 o 110, a otros precios y con otros resultados. El remuestreo no reconstruye todos esos mercados posibles. Plantea una pregunta más acotada: ¿cómo varían los resultados bajo un modelo elegido explícitamente a partir de las observaciones que ya tienes?
Una simulación produce una distribución en vez de una estimación puntual. Esa distribución puede revelar una sensibilidad oculta por el orden original, pero está condicionada por el modelo y la muestra de entrada. No es una medición completa del riesgo real ni una garantía de que los resultados futuros queden dentro de su envolvente.
Dos métodos básicos de remuestreo
Bootstrap de operaciones individuales: toma una lista de, por ejemplo, 200 resultados en R —+1,5R, −1R, +2,2R y así sucesivamente— y extrae 200 observaciones con reemplazo. Repite 1.000 veces para construir 1.000 trayectorias. Tanto el orden como la frecuencia de resultados concretos pueden cambiar.
Esto difiere de una permutación aleatoria sin reemplazo. Reordenar los mismos resultados fijos en R deja su suma intacta. Con dimensionamiento por fracción constante y sin restricciones dependientes de la trayectoria, también deja intacto el producto de los factores de capital, aunque el drawdown puede cambiar. No describas la permutación y el bootstrap como procedimientos intercambiables.
Bootstrap por bloques: extrae bloques contiguos, por ejemplo diez operaciones consecutivas cada vez, en lugar de operaciones aisladas. Conserva parte de la dependencia dentro de cada bloque, pero rompe las relaciones entre los nuevos límites unidos. Que sea más adecuado depende de las dependencias observadas de la estrategia. La longitud del bloque es un parámetro que investigar; compara opciones como 5, 10 y 20 en lugar de elegir la que dé el resultado más tranquilizador.
Qué calcular a partir de 1.000 trayectorias simuladas
- Mediana de la rentabilidad final: el centro de la distribución de rentabilidades simuladas para el horizonte indicado. Llámala anual solo si el horizonte y el modelo temporal representan realmente un año.
- El quinto percentil de rentabilidad: un cuantil de la cola inferior dentro de la simulación. No es el peor resultado posible ni un «peor resultado realista» garantizado. Los empates y la interpolación de muestras finitas pueden cambiar la fracción estrictamente inferior a él.
- El percentil 95 de la magnitud del drawdown: un resumen de la cola superior de los descensos simulados desde el máximo al mínimo. Compáralo con los límites de riesgo preespecificados del plan sin tratarlo como un tope.
- La tasa de cruce de un umbral definido: por ejemplo, la proporción de trayectorias cuyo drawdown supera el 30%. Indica el umbral y si se mide desde el saldo inicial o desde un máximo acumulado hasta cada momento. Un drawdown del 30% no equivale literalmente a insolvencia.
Cifras ilustrativas, no resultados históricos: supón que la trayectoria original de un modelo anual muestra una rentabilidad del +45% y un drawdown máximo del 12%. Una simulación hipotética de 1.000 trayectorias da una rentabilidad mediana del +38%, una rentabilidad en el quinto percentil del +8%, una magnitud de drawdown en el percentil 95 del 22% y una tasa del 4% de drawdowns superiores al 30%. Significa que aproximadamente una de cada 25 trayectorias de este modelo cruza el límite elegido; no establece una probabilidad de ruina real del 4%. Todo drawdown porcentual ya presupone una política de dimensionamiento de posiciones, por lo que no es una propiedad de la señal de entrada por sí sola.[4]
Utiliza un conjunto coherente de definiciones de métricas
Antes de ejecutar el código, define la esperanza matemática en R, el factor de beneficio, el drawdown y su duración, el factor de recuperación y cualquier puntuación de tipo SQN. El artículo 15.9 es la referencia del capítulo para fórmulas y denominadores. Aquí son esenciales tres puntos:
- El drawdown utiliza el máximo acumulado hasta cada momento, no el máximo global final. Define
H_t = max(capital hasta t),D_t = (H_t - E_t) / H_tymaxDD = max(D_t). Para 100 → 80 → 120 → 110, el mayor descenso desde un máximo anterior es 20%, de 100 a 80. Utilizar el máximo posterior de 120 y el mínimo anterior de 80 da un 33,3%, que no es el drawdown de la trayectoria. - Indica la curva y la frecuencia de muestreo. El capital valorado a mercado, incluidas las posiciones abiertas, difiere del saldo de operaciones cerradas. El muestreo por ticks, diario y después de cada operación puede producir máximos diferentes. «Drawdown del 12%» sin esas definiciones no es directamente comparable con otro informe ni con tu plan.
- Indica la convención de la puntuación. Una puntuación de media de R dividida por desviación estándar, multiplicada por √N, cambia con N. Las variantes con tope y sin tope son magnitudes distintas. Utiliza la misma convención y N comparables, y no trates una puntuación como sustituto de la incertidumbre ni como regla de asignación.
Explicita también las demás convenciones de presentación. El factor de beneficio monetario no tiene por qué igualar al factor de beneficio en R cuando la unidad de riesgo monetario varía. Sharpe requiere un intervalo de rentabilidad definido, una referencia y supuestos de anualización; R por operación no es automáticamente una serie de rentabilidades de calendario. Calmar requiere una rentabilidad anualizada declarada y un drawdown en un horizonte comparable. Incluye las pérdidas de cola, la longitud de las rachas perdedoras, la duración del drawdown y los estados operativos sin resolver en lugar de reducir el informe a un solo ratio.
Un ejemplo de bootstrap por bloques en Python
Puedes ejecutar el ejemplo en un entorno local de Python con NumPy y pandas, o en un servicio de cuadernos como Google Colab. Colab ofrece un entorno de cuadernos en el navegador con límites de uso; consulta su información actual sobre el servicio y el almacenamiento. Crea un cuaderno, pega el código en una celda y ejecútalo. La entrada predeterminada es sintética, así que no necesitas datos personales de trading para ver el formato de salida.
Para utilizar tu propio diario, prepara un CSV con una columna numérica R y una operación completa por fila, en orden cronológico. Descomenta la línea de importación y proporciona el archivo. Cada valor R debe incluir una sola vez los costes pertinentes y utilizar el riesgo monetario positivo previsto antes de entrar. Elimina los identificadores personales antes de considerar una subida a la nube y conserva localmente las exportaciones sensibles de la cuenta si no quieres que se almacenen en un servicio de terceros.
import numpy as np
import pandas as pd
def block_bootstrap_strategy(trades_R, n_simulations=1000, block_size=10,
risk_per_trade=0.01, seed=42):
"""Remuestrear bloques contiguos y no circulares de resultados netos de operaciones en R.
trades_R: resultados cronológicos finitos, una operación completa por valor.
n_simulations: número de trayectorias sintéticas, no observaciones nuevas de mercado.
block_size: longitud del bloque contiguo; investigar 5, 10 y 20.
risk_per_trade: fracción fija del capital de cada momento arriesgada por operación.
seed: entrada de reproducibilidad; registrar también la versión de NumPy.
Las rentabilidades abarcan len(trades_R) operaciones, NO son automáticamente anuales.
Los drawdowns se muestrean después de cada operación y se guardan como valores negativos.
"""
trades_R = np.asarray(trades_R, dtype=float)
if trades_R.ndim != 1 or trades_R.size == 0:
raise ValueError("trades_R debe ser un array unidimensional no vacío")
if not np.isfinite(trades_R).all():
raise ValueError("trades_R debe contener solo valores finitos")
for name, value in (("n_simulations", n_simulations),
("block_size", block_size)):
if isinstance(value, bool) or not isinstance(value, (int, np.integer)):
raise ValueError(name + " debe ser un entero positivo")
if value < 1:
raise ValueError(name + " debe ser un entero positivo")
if not np.isfinite(risk_per_trade) or not 0 < risk_per_trade < 1:
raise ValueError("risk_per_trade debe estar entre cero y uno")
rng = np.random.default_rng(seed)
n_trades = len(trades_R)
# Ajustar a este ejemplo: limitar un bloque demasiado grande a la longitud de la muestra.
# Un bloque que abarca toda la muestra no tiene diversidad de remuestreo; informar de esa limitación.
block_size = min(block_size, n_trades)
n_blocks = (n_trades + block_size - 1) // block_size
final_returns, max_drawdowns = [], []
threshold_breaches = 0
for _ in range(n_simulations):
# Extraer posiciones iniciales con reemplazo; conservar cada bloque.
starts = rng.integers(0, n_trades - block_size + 1, size=n_blocks)
sample = np.concatenate(
[trades_R[s:s + block_size] for s in starts]
)[:n_trades] # Conservar exactamente el número original de operaciones.
equity, equity_curve = 1.0, [1.0]
for outcome in sample:
# Absorber en cero si una pérdida agota el capital. No es un modelo de deuda
# ni afirma que se aplique protección legal frente a saldos negativos.
equity *= max(0.0, 1.0 + outcome * risk_per_trade)
equity_curve.append(equity)
equity_curve = np.asarray(equity_curve)
peak = np.maximum.accumulate(equity_curve)
drawdown = (equity_curve - peak) / peak
worst = float(drawdown.min())
final_returns.append(equity - 1.0)
max_drawdowns.append(worst)
if worst < -0.30: # Estrictamente más profundo que un descenso del 30% desde el máximo acumulado hasta cada momento.
threshold_breaches += 1
return {
"trades_per_path": n_trades,
"effective_block_size": block_size,
"median_return": float(np.median(final_returns)),
"p05_return": float(np.percentile(final_returns, 5)),
"p95_return": float(np.percentile(final_returns, 95)),
# DD negativo: el quinto percentil es la magnitud adversa del percentil 95.
"p95_max_dd": float(np.percentile(max_drawdowns, 5)),
"p99_max_dd": float(np.percentile(max_drawdowns, 1)),
"prob_dd_over_30pct": threshold_breaches / n_simulations,
"mean_return": float(np.mean(final_returns)),
}
# Datos propios opcionales: un valor R neto por operación completada, en orden cronológico.
# trades = pd.read_csv("my_results.csv")["R"].to_numpy(dtype=float)
# Demostración SINTÉTICA, no resultados de una estrategia de mercado.
# 20 valores: 6 ganadoras, total +2R, media +0.10R; domina un valor atípico de +7.2R.
toy = np.array([-1.0, -1.0, 3.1, -1.0, -1.0, -1.0, 0.9, -1.0, 7.2, -1.0,
-1.0, -0.6, 1.4, -1.0, -1.0, -1.0, 2.3, -1.0, -1.0, 0.7])
trades = np.tile(toy, 10) # Repetición artificial, NO 200 observaciones independientes.
# Para utilizar tu CSV, sustituir la línea anterior por la línea opcional de importación.
print("Versión de NumPy:", np.__version__)
for risk in (0.01, 0.02):
result = block_bootstrap_strategy(trades, n_simulations=2000,
block_size=10, risk_per_trade=risk, seed=42)
print(f"Fracción de riesgo por operación: {risk:.0%}")
print(f"Rentabilidad mediana en {result['trades_per_path']} operaciones: {result['median_return']:.2%}")
print(f"Rentabilidad del quinto percentil: {result['p05_return']:.2%}")
print(f"DD adverso del percentil 95: {result['p95_max_dd']:.2%}")
print(f"Trayectorias con DD más profundo del 30%: {result['prob_dd_over_30pct']:.2%}")
El cálculo prueba cómo se comporta la muestra elegida bajo remuestreo y la política de dimensionamiento especificada. La secuencia de juguete de 20 valores suma +2R y tiene una media de +0,10R; eliminar su observación de +7,2R cambia sustancialmente la perspectiva. Repetirla diez veces crea una demostración de código de 200 entradas con periodicidad artificial, no diez veces más evidencia independiente.
Salida de ejemplo verificada con NumPy 2.5.3, semilla 42 y 2.000 trayectorias: con un riesgo del 1%, la rentabilidad mediana en 200 operaciones es +19,56%, la rentabilidad en el quinto percentil −4,11%, el drawdown adverso en el percentil 95 −17,66%, y ninguna trayectoria simulada supera un drawdown del 30%. Con un riesgo del 2%, las cifras correspondientes son +32,25%, −13,71%, −33,70% y 11,05% de las trayectorias más allá del umbral. Los drawdowns adversos en el percentil 99 son aproximadamente −21,09% y −39,51%, respectivamente. Son salidas sintéticas en 200 operaciones, no previsiones anuales. Registra el código y la versión de NumPy además de la semilla: el generador no promete una secuencia invariable en todas las versiones futuras. La relación importante es que el drawdown porcentual depende tanto del dimensionamiento como de la secuencia de R.
Registra los criterios de simulación en el campo 9 de la ficha de prueba antes de examinar la salida. Una política ilustrativa podría exigir rentabilidades positivas de la mediana y del quinto percentil, un cuantil adverso de drawdown inferior al límite del plan y menos del 1% de las trayectorias simuladas cruzando un umbral de drawdown del 30%. Son reglas de decisión del escenario, no estándares de mercado. Un fallo significa que el candidato no supera ese modelo y esa escala con los criterios elegidos; no invita a mover los umbrales después.
Limitaciones importantes: el remuestreo no puede crear una pérdida individual más extrema que el peor resultado de entrada, aunque las pérdidas repetidas pueden producir un drawdown acumulado más profundo. No puede inventar una crisis de liquidez no observada, un régimen nuevo de financiación ni un fallo de ejecución ausente. Cero cruces de umbral en una simulación finita no implica riesgo real nulo. La curva del código después de cada operación omite la variación intratrade del capital, la liquidación por margen, las posiciones solapadas y la deuda residual. Su suelo de capital cero es una convención del modelo, no una protección legal de la cuenta.
El mismo porcentaje, un importe monetario distinto
Un descenso del 15% sobre PLN 5.000 son PLN 750; sobre PLN 50.000 son PLN 7.500. Se conserva la moneda del escenario polaco original; no es una conversión de divisas. La misma aritmética vale en cualquier moneda de cuenta: el 15% de 5.000 unidades son 750 y el 15% de 50.000 son 7.500. El porcentaje es idéntico, mientras que las consecuencias monetarias y las restricciones del titular pueden diferir sustancialmente.
El drawdown aceptable y el tamaño de posición en distintas escalas de cuenta corresponden al artículo 15.11; los límites diarios, semanales y mensuales corresponden al plan de el artículo 15.2. Para esta prueba, compara el cuantil simulado con el límite documentado antes de la ejecución, no con el importe que estés dispuesto a tolerar después de ver el resultado.
¿Por qué considerar bloques en vez de remuestreo independiente?
La agrupación de volatilidad se refiere a la magnitud de los movimientos. No significa automáticamente que una operación perdedora haga más probable que la siguiente también pierda. La dependencia de signos y resultados es una propiedad que investigar en tu estrategia, no un hecho universal que asumir. Un régimen compartido, pares correlacionados o un único evento macro pueden crear secuencias que el remuestreo independiente separa.
El muestreo por bloques conserva secuencias locales y, por tanto, puede dar un análisis de sensibilidad más relevante cuando esa dependencia importa. No conserva todas las relaciones de largo alcance, y no está garantizado que el error del bootstrap independiente subestime el riesgo en todos los conjuntos de datos. Compara longitudes de bloque de 5, 10 y 20, revela todos los resultados y examina la estructura de dependencia original. Un cuantil adverso de drawdown que aumenta con bloques más largos sugiere sensibilidad al esquema de remuestreo; no demuestra por sí solo un modelo de dependencia concreto. Que cambie poco en este pequeño ejercicio de sensibilidad tampoco prueba que la independencia sea inocua en todas las condiciones.
5. Pruebas prospectivas: demo, operativa simulada y piloto limitado en real
Las siguientes etapas aumentan el realismo y las consecuencias financieras de un error. Acortar el proceso no elimina los supuestos sin probar; deja más de ellos para descubrirlos cuando los fondos ya están expuestos. La secuencia es un marco educativo, no una obligación de que todo candidato acabe avanzando a la operativa real.
Dos significados diferentes de «forward»
Distingue siempre lo siguiente en un informe de prueba:
- Reserva histórica posterior: el probador separa una parte posterior de un conjunto de datos existente, selecciona parámetros en la parte anterior y los evalúa en el segmento reservado. MT5 llama Forward a su opción de división histórica.[6] Esto examina otra ventana histórica bajo el modelo del probador. No mide la ejecución futura real.
- Observación prospectiva: la estrategia fijada se ejecuta a medida que llegan observaciones después de la fecha de fijación. Las decisiones originales con marcas temporales no pueden utilizar observaciones que aún no existen. Conserva esos registros, no obstante, porque las revisiones posteriores o el reetiquetado retrospectivo todavía pueden contaminar la evaluación. Especifica si las órdenes se simulan, solo se registran sobre el papel o se ejecutan realmente en vivo; únicamente lo último aporta ejecuciones reales.
Registra la modalidad y la fecha de fijación en el campo 4 de la ficha de prueba. Sin esa fecha, «funcionó con datos nuevos» es indistinguible de «funcionó con datos ya disponibles al elegir las reglas».
Etapa 1: demo con datos entrantes
El entorno demo de un proveedor puede parecerse a su plataforma real sin compartir todos los feeds, reglas de ejecución o restricciones. Verifica esas diferencias en vez de asumir condiciones idénticas. La demo es útil porque:
- Los errores de órdenes y de estrategia no pierden directamente capital real de la cuenta.
- Puedes descubrir un defecto tras diez operaciones y volver al desarrollo sin una pérdida financiera de trading. Registra la versión nueva y conserva las observaciones antiguas en lugar de mezclar la regla revisada en la misma evaluación.
- Puedes probar la integración de herramientas: alertas, arranque del EA, implementación de reglas, gestión del estado de las órdenes y exportaciones del diario.
Entre sus limitaciones figuran:
- Ejecuciones simuladas: el deslizamiento y el tratamiento de la liquidez pueden diferir de la ejecución real. No infieras el motivo de un proveedor a partir de una ejecución favorable en demo; identifica la diferencia medible.
- Consecuencias financieras distintas: pueden seguir existiendo mecanismos simulados de margen y stop-out, pero la ausencia de una pérdida monetaria real no reproduce la reacción del usuario ante una exposición con capital real.
- Comportamiento incompleto de las solicitudes: la gestión de rechazos, recotizaciones y ejecuciones parciales puede diferir. Depende de la modalidad de ejecución y los ajustes del producto, no simplemente de una etiqueta comercial ECN o STP.
Una etapa ilustrativa de demo de 30 días y 30 operaciones plantea preguntas prácticas: ¿se activaron las alertas en el momento previsto, omitió señales el EA, difirió el spread observado del modelo y cambió el operador las reglas manualmente? Esos recuentos son umbrales del escenario, no estándares de mercado. Con una señal cada dos semanas, el mismo objetivo de observación tarda muchos meses. Incluso 30 operaciones correctas respaldan principalmente una comprobación de infraestructura y proceso; no establecen una estimación precisa de la esperanza matemática.
Registra los resultados prospectivos desde el primer día. Reconstruir un mes de operaciones a mano favorece las omisiones y vuelve poco fiable la conciliación. El esquema del diario, las importaciones y la comparación con los extractos del proveedor corresponden al artículo 15.9. Como mínimo, conserva la hora de la señal, las horas de solicitud y ejecución, los precios ejecutables, el deslizamiento, los cargos, la versión del setup y el riesgo monetario inicial. Sin una contabilidad compatible, el múltiplo de R prospectivo no puede compararse con la R de la prueba.
Etapa 2: operativa simulada sobre un feed en tiempo real, opcionalmente 30–60 días
Un proceso en paralelo o de operativa simulada registra cada señal elegible y calcula un resultado hipotético con un modelo explícito de spread, deslizamiento y ejecución sin cursar una orden. Permite controlar el modelo y evita depender de ejecuciones demo sin explicar. No produce evidencia de ejecución real y puede no revelar si el operador habría enviado la orden con dinero real en juego. La duración ilustrativa de 30–60 días es opcional y depende de qué pregunta siga sin resolverse tras la demo. No es automáticamente una fuente adicional de observaciones de mercado independientes si cubre las mismas señales.
Etapa 3: piloto limitado en real autorizado por separado
El escenario desarrollado ilustra una cuenta pequeña con capital de PLN 1.000–2.000 y órdenes de 0,01–0,05 lote estándar. Consérvalos como importes del escenario polaco, no como recomendación de depósito adecuado o tamaño de posición. El tamaño válido debe derivarse de la distancia al stop, el valor del pip, los cargos, los requisitos de margen y el presupuesto de pérdidas del titular. Incluso 0,01 lote puede ser demasiado para una cuenta pequeña o un stop amplio. Si el tamaño mínimo del proveedor no cabe en el presupuesto autorizado, la conclusión correcta es no realizar allí ese piloto.
El propósito de una etapa limitada en real es investigar la implementación efectiva con una exposición prevista acotada y aceptada explícitamente, no probar si puede proporcionar ingresos. Puede medir:
- Ejecución real: spreads observados, deslizamiento, latencia, rechazos y cualquier recotización bajo la modalidad de la cuenta real.
- Cumplimiento operativo: salidas manuales fuera de las reglas, cambios de stop, señales ignoradas y otras desviaciones. Define el denominador de la tasa de error: señales elegibles, órdenes enviadas y operaciones completadas son poblaciones distintas.
- Financiación real: concilia los débitos y créditos con la especificación del símbolo real aplicable en lugar de una tabla demo.
- Integración en condiciones reales: confirma que el EA, las alertas, los registros y los procedimientos de control se comportan como está previsto.
Los objetivos del ejemplo de 90 días y 60–100 operaciones son supuestos ilustrativos de planificación. Preespecifica cómo se compararán las estimaciones históricas y prospectivas, contemplando la incertidumbre de ambas muestras. Preguntar simplemente si la media nueva cae dentro del intervalo de confianza de la media histórica no es una comparación adecuada de dos muestras. Tampoco el solapamiento de dos intervalos separados equivale matemáticamente a que un intervalo de confianza de su diferencia contenga cero.
Estima la diferencia con un método adecuado para los datos y la dependencia, y define un margen de deterioro aceptable si la pregunta trata sobre equivalencia práctica. Un intervalo de diferencia que contiene cero significa que la diferencia no está resuelta; no demuestra que ambas implementaciones sean equivalentes. Junto con esa comparación, exige un comportamiento de ejecución comprendido, el cumplimiento de los límites de riesgo y una tasa medida y aceptable de infracciones de las reglas. Un percentil de drawdown simulado puede ser un desencadenante de revisión predefinido, no una frontera futura inviolable. Registra todos esos criterios antes de empezar.
Criterios de transición
Las duraciones y los recuentos siguientes conservan este escenario de ejemplo. Las reglas de decisión reales corresponden al campo 9 de la ficha de prueba; la tabla no autoriza a avanzar solo porque hayan pasado suficientes días.
| Desde | Posible etapa siguiente | Filtro ilustrativo |
|---|---|---|
| Investigación histórica | Observación en demo o en paralelo | Se cumplen los criterios OOS/WFA preespecificados; Monte Carlo: rentabilidad en el percentil 5 > 0, con la tasa de cruce de umbral por debajo del límite registrado en la ficha de prueba (campo 9); el modelo de costes es realista. Revisa la incertidumbre y las limitaciones antes de avanzar. |
| Demo | Piloto limitado en real autorizado por separado | A modo ilustrativo, 30+ días y 30+ operaciones; se superan la conciliación de señales y las comprobaciones de integración; las diferencias observadas están explicadas; una comparación adecuada no incumple el criterio de deterioro preespecificado. Confirma un tamaño mínimo viable y un presupuesto explícito de riesgo real. |
| Piloto limitado en real | Cualquier escala autorizada por el plan de trading (15.2) | A modo ilustrativo, 90+ días y 60+ operaciones; costes reales y diferencias de resultados evaluados con incertidumbre; drawdown dentro de los controles del plan; desviaciones medidas aceptablemente bajas; ningún defecto operativo sin resolver. Aumentar la escala requiere una decisión separada, no una transición automática. |
La rama que falta en muchos planes es «no pasar a real». No superar un filtro es un resultado que registrar, no una invitación a rebajar el criterio. Este calendario de ejemplo suma de cuatro a ocho semanas de trabajo histórico, 30 días de demo y 90 días de piloto: 148–176 días, aproximadamente cinco a seis meses, excluida la etapa opcional de simulación y cualquier pausa. Esta aritmética es un ejemplo de planificación, no una garantía de evidencia suficiente ni una predicción de que saltarse una etapa tenga que producir una pérdida. Omitirla deja sus preguntas sin respuesta.
Viabilidad operativa: qué no prueba un modelo histórico
Una estrategia que exige decidir a las 13:30 Europe/London no es operativamente viable para alguien ocupado en reuniones hasta las 16:00 en esa misma zona. Son los equivalentes del ejemplo polaco original de las 14:30 y las 17:00, no un calendario universal de eventos. Un inventario prospectivo de señales revelará las oportunidades omitidas. Regístralas como no ejecuciones; no las elimines fingiendo que la investigación y la práctica utilizaron el mismo conjunto de oportunidades.
El artículo 15.5 trata las ventanas de decisión compatibles con el trabajo, las alertas y los marcos temporales superiores. El artículo 15.1 trata la continuidad del puesto de trabajo, la supervisión del VPS y el arranque; el artículo 15.3 registra los supuestos temporales y de ejecución de la estrategia. Son responsabilidades distintas, todas relevantes para la implementación.
En ese escenario, el modelo histórico de solo bid utilizaba 1,5 pips de coste, mientras que el modelo observado requiere un spread de 2,5–4 pips más un deslizamiento de 0,5–1,5 pips en cada lado: 3,5–7 pips en total. Son supuestos sintéticos, no cotizaciones actuales de GBP/JPY. La diferencia en R depende de la distancia al stop. Por ejemplo, aumentar los costes de 1,5 a 4,5 pips añade 3 pips; con D = 5 pips son 0,6R, suficientes para desplazar +0,4R a −0,2R. Una comprobación en demo puede revelar diferencias del modelo de cotización, pero no garantiza descubrir el deslizamiento real. Con una décima parte del riesgo monetario, los mismos −6R serían USD 15 en vez de USD 150, solo si el tamaño mínimo del proveedor y los supuestos de costes proporcionales permiten esa escala. Treinta operaciones siguen aportando evidencia limitada sobre la esperanza matemática. No obstante, las discrepancias de costes medidas pueden justificar corregir un modelo, reconociendo que los costes también varían y que la ejecución en las colas sigue siendo incierta.
6. ¿Cuántas observaciones bastan? N, valores p e intervalos de confianza
Un backtest de 30 operaciones con 18 ganadoras tiene una tasa de acierto observada del 60%. Es una descripción válida de la muestra, no una medición precisa de la probabilidad subyacente de ganar de la estrategia. Bajo ensayos de Bernoulli independientes e idénticamente distribuidos, el intervalo bilateral de Clopper–Pearson del 95% es aproximadamente 40,6–77,3%. El procedimiento de intervalos tiene al menos la cobertura declarada en muestras repetidas bajo el modelo; no asigna una probabilidad del 95% a un parámetro desconocido fijo después de observar esta muestra concreta.
El teorema central del límite, las colas pesadas y la ausencia de un número mágico
El teorema central del límite no establece que N = 30 sea universalmente suficiente. Su aplicabilidad y la calidad de la aproximación dependen de supuestos de distribución y dependencia. Los resultados financieros de las operaciones pueden ser asimétricos, tener colas pesadas y agruparse: una ganancia de +5R o una pérdida por gap de −3R pueden cambiar sustancialmente la media y la dispersión de una muestra pequeña. La convergencia puede ser lenta y algunos modelos ni siquiera satisfacen los supuestos habituales de varianza finita.
No existe un único número mágico de operaciones. La suficiencia depende de la dispersión de los resultados en R, la dependencia entre operaciones, la frecuencia de señales, la cobertura de regímenes, el número de variantes probadas y la precisión necesaria para decidir. Treinta entradas expuestas a la misma tendencia semanal o evento macro no son automáticamente treinta experimentos independientes. Informa siempre del número de observaciones, pero junto con el intervalo, el método y los supuestos, en vez de tratarlo como un criterio de aprobación aislado.
Intervalos de tasa de acierto con distintos tamaños de muestra
| Número de operaciones N | Ganancias y tasa observadas | Intervalo exacto bilateral del 95% | ¿Puedes distinguir ventaja de ruido? |
|---|---|---|---|
| 30 | 60% | 40,6–77,3% (aproximadamente ±18 puntos porcentuales) | Sin resolver: el intervalo incluye tasas de acierto inferiores al umbral de equilibrio; con una relación de resultados de 1:1 y sin costes, ese umbral es el 50%. |
| 50 | 60% | 45,2–73,6% (aproximadamente ±14 puntos porcentuales) | El límite inferior sigue por debajo del 50%. |
| 100 | 60% | 49,7–69,7% (aproximadamente ±10 puntos porcentuales) | El intervalo todavía incluye el 50%; el redondeo no debe cambiar la decisión. |
| 200 | 60% | 52,9–66,8% (aproximadamente ±7 puntos porcentuales) | Excluye el 50% bajo el modelo indicado; esto no establece una relación de resultados rentable después de costes. |
| 500 | 60% | 55,6–64,3% (aproximadamente ±4 puntos porcentuales) | Menor incertidumbre sobre la probabilidad de ganar, no una prueba de esperanza matemática rentable. |
| 1.000 | 60% | 57–63% (redondeado; aproximadamente ±3 puntos porcentuales) | Mayor precisión bajo el modelo; la calidad de los datos, la dependencia y la relación de resultados siguen importando. |
La tabla utiliza intervalos bilaterales de Clopper–Pearson del 95% con números enteros de ganancias y ensayos independientes de probabilidad constante. La dependencia o una probabilidad de ganar cambiante invalidan esa interpretación sencilla; la agrupación positiva suele reducir la información efectiva, pero no supongas que toda dependencia posible tiene el mismo efecto. Indica cómo se tratan las condiciones agrupadas o cambiantes.
La columna de comparación utiliza el 50% solo porque es la tasa de equilibrio de un modelo de dos resultados con relación fija de 1:1 sin costes adicionales. De forma más general, con magnitud positiva de ganancia W y magnitud de pérdida L, la tasa de equilibrio sin costes adicionales es L / (W + L), equivalentemente 1 / (1 + W/L). Una ganancia de 2R frente a una pérdida de 1R da el 33,3%; una ganancia de 0,5R frente a una pérdida de 1R da el 66,7%. Un coste medio constante adicional c eleva el umbral del modelo a (L + c) / (W + L), siempre que ese coste no esté ya incluido en W y L.
La conclusión operativa no es «200 operaciones bastan». Es que importa la incertidumbre respecto al umbral de decisión elegido. Con n = 100, el intervalo bilateral aún incluye el 50%, por lo que ese criterio de intervalo concreto sigue sin resolverse. Con n = 200 excluye el 50%, pero afirmar que una estrategia es rentable sigue requiriendo todos los resultados de ganancias y pérdidas y sus costes. Un resultado sin resolver suele requerir continuar la investigación según el plan; ni autoriza automáticamente una posición real más pequeña ni demuestra que una estrategia existente deba retirarse. Los límites de seguridad y los defectos de implementación probados siguen siendo motivos separados para pausar.
Una prueba binomial: ¿supera el 50% la probabilidad de ganar?
Aquí la hipótesis nula es p = 0.5, con la alternativa preespecificada p > 0.5. No es lo mismo que «no existe ventaja de trading». Una estrategia con un 40% de ganadoras y una relación de resultados de 3:1 tiene esperanza matemática positiva antes de costes, mientras que incluso un 70% de ganadoras con una relación de 0,5:1 solo produce un pequeño margen positivo que los costes pueden eliminar.
El valor p unilateral es la probabilidad, bajo la hipótesis nula y sus supuestos de muestreo, de observar al menos tantas ganancias como contiene la muestra. No es la probabilidad de que la hipótesis nula sea cierta, de que la estrategia tenga ventaja ni de que su resultado futuro sea rentable. Si utilizas bandas descriptivas como las de este artículo de ejemplo, interprétalas con cuidado:
- Por debajo de 0,01: un resultado de cola superior relativamente inusual bajo esta hipótesis nula para una única prueba preespecificada, no una prueba de un efecto de trading útil.
- 0,01–0,05: puede superar una prueba unilateral preespecificada del 5%, pero seleccionar entre muchos candidatos requiere un procedimiento de multiplicidad apropiado.
- 0,05–0,10: no supera un umbral de rechazo del 5%. El efecto sigue siendo incierto con ese criterio.
- Por encima de 0,10: evidencia insuficiente para rechazar esta hipótesis nula sobre la probabilidad de ganar con esos umbrales. No demuestra un rendimiento aleatorio ni la ausencia de una ventaja basada en la relación de resultados.
Elige la dirección de la prueba y el umbral antes de ver el resultado. Cuando se han buscado 30 variantes, el menor valor p sin ajustar es un resultado seleccionado; la sección 2 explica por qué importa el historial completo de ensayos.
En SciPy actual, utiliza from scipy.stats import binomtest y después binomtest(wins, n_trades, 0.5, alternative='greater').pvalue. La documentación oficial de la API registra su introducción en la versión 1.7.0. La función anterior binom_test se declaró obsoleta en 1.10.0 y se eliminó en 1.12.0; utiliza la API actual con objeto de resultado en vez de copiar fragmentos obsoletos.
Para 60 ganancias en 100 operaciones, el valor p unilateral es aproximadamente 0,02844. Para 18 ganancias en 30, es aproximadamente 0,18080, pese a la misma tasa de acierto observada del 60%. El primero supera una prueba preespecificada y sin ajuste al 5%, unilateral; el segundo no. No hay contradicción con que el intervalo de 100 operaciones de la tabla incluya el 50%: la tabla utiliza un intervalo bilateral del 95%. Haz coincidir el nivel de confianza y la dirección de la prueba antes de comparar sus decisiones.
Prueba el resultado en R, no solo la tasa de acierto
Con un 40% de ganadoras, una ganancia media de 3R y una pérdida media de 1R, la esperanza matemática antes de costes adicionales es 0,4 × 3 − 0,6 × 1 = +0,6R. Con un 70% de ganadoras, una ganancia media de 0,5R y una pérdida media de 1R, es solo +0,05R. La segunda tiene una tasa de acierto más alta, pero un margen para costes mucho menor. Ninguno de esos supuestos numéricos es evidencia de la calidad real de una estrategia.
Una prueba t de una muestra puede examinar la media de R neta frente a cero cuando sus supuestos y su aproximación son adecuados. Su estadístico es t = mean_R / (sample_sd_R / sqrt(N)), con N−1 grados de libertad. No es la respuesta estadística completa para resultados de trading seleccionados, dependientes o con colas pesadas; pueden requerir otro diseño de inferencia o método de remuestreo.
Para una media muestral ilustrativa de +0,3R y una desviación estándar muestral de 1,5R, N = 30 da t ≈ 1,10 y un valor p unilateral de alrededor de 0,14. Con N = 200, la misma media y dispersión dan t ≈ 2,83 y un valor p unilateral de alrededor de 0,003. La segunda es una evidencia más sólida contra esa hipótesis nula concreta de media cero bajo los supuestos, no una certeza ni una autorización automática para operar en real. La API de SciPy para la prueba t de una muestra admite alternativas explícitas; elige alternative='greater' solo si esa es la pregunta preespecificada.
El ejemplo muestra por qué la misma estimación puntual puede respaldar conclusiones distintas con diferentes tamaños de muestra. Registra tanto N como un intervalo apropiado alrededor de la esperanza matemática neta. Alcanzar un N concreto no vuelve cierto el resultado, y comprobar repetidamente hasta que aparezca significación introduce otro problema de selección.
La fórmula operativa de la esperanza matemática
Utiliza fracciones para W% y L% y magnitudes positivas para la ganancia y la pérdida medias condicionales. Las operaciones a cero aportan cero, pero siguen perteneciendo al recuento total. Con un 54% de ganadoras, una ganancia media de 1,8R y una pérdida media de 1R, el resultado es 0,54 × 1,8 − 0,46 × 1 = 0,512R, aproximadamente +0,51R.
Deben ser medias realizadas, no una relación de objetivos planificada. Un objetivo a 1,8 veces la distancia inicial al stop no implica que las ganadoras promedien realmente +1,8R: las salidas parciales, los cierres anticipados y la ejecución cambian el resultado. Si la serie de R ya es neta de todos los cargos, no vuelvas a restar los costes. Si es anterior a cargos concretos, inclúyelos una sola vez antes de evaluar la afirmación neta. Un coste de +0,2–0,3R puede eliminar una estimación positiva menor anterior a costes; la unidad y el denominador deben hacer trazable ese cálculo.
SQN: una convención de presentación, no una decisión de asignación
Una puntuación de la forma SQN = sqrt(N) × mean(R) / std(R) combina el resultado medio, la dispersión y el tamaño de la muestra.[5] Con la misma media y desviación estándar, la forma sin tope aumenta con √N. Por tanto, una prueba larga puede tener una puntuación mayor sin una ventaja mayor por operación. Identifica la convención de desviación estándar muestral y cualquier tope en N; la variante con tope tratada en otra parte de este capítulo no es intercambiable con una puntuación sin tope.
El artículo 15.9 ofrece las definiciones comunes de las métricas y sus limitaciones. SQN no demuestra que una ventaja sea real, no sustituye la evaluación OOS ni un modelo de costes y no determina por sí solo una asignación de capital.
Añadir una ganancia media de 0,7R y una pérdida media de 1,2R da (27 × 0,7 − 20 × 1,2) / 47 = (18,9 − 24) / 47 ≈ −0,109R. La suma es −5,1R, no un resultado positivo. Con una R monetaria fija igual al 1% del capital inicial, equivale al −5,1% del capital inicial. Si cada una de las 27 ganancias es exactamente +0,7R y cada pérdida exactamente −1,2R, arriesgar un 1% del capital actual cada vez da 1,007^27 × 0,988^20 − 1 ≈ −5,17%. Si solo se conocen las dos medias, ese resultado compuesto no está determinado de forma única porque las magnitudes de los resultados individuales también importan.
Un resultado monetario positivo junto a una media de R no ponderada negativa podría reflejar distintas ponderaciones del riesgo monetario, depósitos o retiradas, comisiones o un error de conciliación; investiga en vez de asumir una explicación. El riesgo variable no hace incalculable la esperanza matemática en R. Cada operación necesita su propia R₀ positiva fijada antes de entrar, con R_i = neto P/L_i / R₀_i. Lo que no puedes hacer es convertir la suma no ponderada de R en la variación porcentual de la cuenta sin las ponderaciones de riesgo, la trayectoria del capital y la información de flujos de efectivo. La enseñanza es conservar las columnas ausentes, no descartar ocho meses de observaciones porque una métrica estaba incompleta. Muestra pequeña o dependiente: limita la inferencia.
7. Modelización de la ejecución y los costes: spread, deslizamiento, financiación, comisión y ejecuciones parciales
Subestimar los costes puede convertir una implementación perdedora en un backtest aparentemente rentable. Modeliza los cuatro componentes de costes por separado y después concílialos con el modelo de ejecución para contar cada uno exactamente una vez. Una hoja de cálculo detallada de comisiones no compensa ejecuciones imposibles.
Spread: ¿fijo o variable?
| Modelo | Descripción | Interpretación adecuada |
|---|---|---|
| Spread fijo, por ejemplo 1 pip | Un único valor configurado durante toda la prueba. | Un filtro inicial rápido o un escenario explícitamente simplificado. Puede ser optimista en condiciones de poca liquidez y necesita comprobaciones de sensibilidad antes de respaldar una afirmación sobre la implementación real. |
| Spread medio histórico | Una media estimada a lo largo de 6–12 meses, presentada como un valor único. | Un modelo aproximado para una franja líquida bien definida, siempre que la media y el comportamiento de las colas sean representativos. Una media de todo el día puede ocultar los costes reales de entrada de la estrategia. |
| Spread según la hora del día | Valores distintos según la sesión o el estado de liquidez; unos valores ilustrativos podrían ser 0,3 pip en una hora líquida y 4 pips en torno al rollover. | Un modelo de escenario más rico, pero la tabla, la zona horaria y los límites de regímenes necesitan evidencia. No reproduce todas las cotizaciones ni los shocks de publicaciones. |
| Spread bid/ask tick a tick | El spread implícito en cada observación bid/ask registrada en el feed seleccionado. | Útil para estrategias sensibles al spread e intravela. No incluye automáticamente profundidad del libro de órdenes, tamaño ejecutable, posición en la cola ni las ejecuciones de tu proveedor. |
Tick Data Suite es un proceso de MT4 para datos de ticks importados, spreads variables y ajustes adicionales de ejecución. Su proveedor describe esas capacidades y comercializa una cifra de calidad de modelización del 99%. Esa cifra es un indicador relacionado con el probador, no una probabilidad del 99% de que la estrategia o sus ejecuciones reales sean correctas. La decisión de compra depende de qué datos o capacidades de modelización ausentes necesita realmente tu investigación, no del distintivo.
Una estrategia de scalping o de publicaciones sensible al spread puede cambiar de signo cuando cambia el modelo, mientras que una estrategia swing con un stop de unos 100 pips puede ser menos sensible a una pequeña diferencia de spread. Mide esa sensibilidad en lugar de suponer que una herramienta de pago tiene que amortizarse. Este artículo no recomienda una compra ni ofrece precios actuales de suscripciones.
Deslizamiento: modelos estáticos y condicionales
El deslizamiento es la diferencia entre el precio de referencia elegido y la ejecución real, especificando la dirección y el lado de la orden. Comparar un precio de modelo histórico con una ejecución real solo es útil después de hacer coincidir la marca temporal de referencia y la convención de cotización. Entre los modelos posibles figuran:
- Estático: una provisión adversa fija, como 0,5 pip en cada entrada y salida. Sencillo, pero potencialmente inadecuado en condiciones de estrés.
- Condicionado al ATR: una provisión ilustrativa de 0,1 × ATR(14) de M5 completada, convertida a pips. Aumenta con la medida de volatilidad elegida, pero el coeficiente necesita calibración y puede no describir las colas.
- Condicionado al tamaño y la profundidad: un modelo que utiliza la cantidad de la orden, la profundidad disponible y el proceso de ejecución del centro de negociación. Necesita los datos pertinentes de profundidad y estado de las órdenes; el historial corriente de ticks bid/ask no los proporciona automáticamente.
El esquema inicial de tres regímenes del ejemplo —fracciones de pip en condiciones normales, varios pips en torno a rupturas y potencialmente pips de dos cifras tras publicaciones— es ilustrativo, no una distribución medida de la cuenta. Construye tu propia tabla a partir de solicitudes y ejecuciones emparejadas. Si los números positivos significan deslizamiento adverso, una compra utiliza precio ejecutado - precio de referencia, mientras que una venta utiliza precio de referencia - precio ejecutado, y después se divide por el tamaño del pip. Salir de un largo es vender y salir de un corto es comprar. Conserva también las ejecuciones favorables, junto con las solicitudes rechazadas, e informa de la referencia utilizada.
Unas pocas decenas de operaciones pueden revelar una discrepancia corriente de implementación, pero rara vez caracterizan de forma fiable las colas poco frecuentes de ejecución. Registra el periodo de muestra, los tamaños de operación y las condiciones en lugar de presentar una media pequeña como todo el modelo de deslizamiento.
Swap y financiación
Las posiciones mantenidas al cruzar el límite de financiación aplicable pueden recibir un débito o un crédito. Las especificaciones de símbolos de las plataformas admiten distintos modos de cálculo, por lo que un número de swap mostrado no significa necesariamente «pips por lote y noche». Comprueba si representa puntos, un importe en divisa, un cálculo de intereses u otra convención específica del producto antes de convertirlo.
- Dirección: obtén las tasas largas y cortas por separado. No son necesariamente iguales y opuestas, y ambas pueden ser cargos. No supongas un swap positivo permanente para cortos EUR/USD o negativo para largos a partir de un entorno de tipos antiguo.
- Multiplicadores diarios: muchos instrumentos de divisas T+2 utilizan un ajuste triple asociado al rollover del miércoles, pero el día real y las excepciones de festivos dependen del instrumento y del proveedor. Modeliza el calendario de la posición en vez de multiplicar un número de noches sin fechas.
- Cambios de tasas: la financiación refleja el entorno de tipos aplicable y las condiciones del proveedor. Para pruebas históricas, utiliza tablas históricas cuando estén disponibles o declara una aproximación de escenario. La tabla de hoy no reconstruye automáticamente los costes de hace varios años.
Para una posición swing de tres a ocho días, la financiación puede consumir una parte importante de la esperanza matemática. Convierte un cargo equivalente en pips a R usando la distancia inicial y después aplica la secuencia real de tasas y multiplicadores fechados. Omitir un cargo importante deja sin respaldo la afirmación neta; un abono también debe registrarse con el signo correcto, sin suponer que compensa otro coste.
Comisión
Algunas cuentas cobran por volumen negociado además del spread. El ejemplo ilustra USD 5–7 por lote estándar y operación completa para un par principal, USD 6–10 para uno secundario y USD 8–15 para uno exótico. Son intervalos de escenario, no cotizaciones actuales, y las etiquetas ECN/STP no determinan la tarifa. Utiliza la tabla aplicable a la cuenta, incluidos cargos mínimos y tramos.
Para expresar la comisión en pips, divide la comisión de ida y vuelta de un lote por el valor del pip de ese lote en la misma moneda. Para la ilustración estándar de EUR/USD, USD 6 / USD 10 por pip = 0,6 pip por operación completa. Si la cuenta está en PLN o en otra divisa, convierte ambos importes de forma coherente; convertir solo el numerador cambia incorrectamente la proporción.
Con 200 operaciones mensuales de 0,1 lote y USD 6 por lote estándar y operación completa, la comisión es USD 120 al mes. En relación con USD 1.000 de capital inicial, es un coste mensual de rotación del 12%, o USD 1.440 —el 144% de ese importe inicial— durante doce meses idénticos. Es un total aritmético, no una previsión ni una rentabilidad compuesta de la cuenta. Ilustra por qué hay que examinar la rotación y los costes; no demuestra que toda estrategia de lotes pequeños sea antieconómica.
Una política ilustrativa mantiene la comisión anual dentro de una proporción ilustrativa del 20–30% de la rentabilidad esperada de la estrategia. Trata cualquier proporción así como una política del escenario, no como un umbral universal de capital, y define si su denominador es el beneficio bruto esperado o el beneficio después de esa misma comisión para evitar un razonamiento circular. Aumentar solo el capital de la cuenta no mejora una ventaja neta por operación cuando la exposición escala proporcionalmente. Evalúa primero los resultados netos reales y la incertidumbre.
Tick Data Suite: un proceso de datos de ticks para MT4
El proceso original puede mantenerse sin tratar el nombre del software como certificado de validación profesional:
- Proveedor y licencias: revisa el sitio oficial actual del proveedor y sus condiciones de licencia y compatibilidad antes de comprar. Las direcciones web y el comportamiento de las redirecciones pueden cambiar.
- Datos: La exportación de datos históricos de Dukascopy es una fuente posible. Examina la cobertura de instrumentos, las marcas temporales, los campos bid/ask, los huecos y las condiciones de uso. Una fuente con resolución temporal fina no garantiza liquidez ejecutable completa.
- Configuración inicial: la previsión de dos a tres horas del ejemplo es ilustrativa, no una promesa. Descarga primero un periodo pequeño elegido, confirma la conversión horaria y las propiedades del símbolo, conecta los datos al proceso documentado del probador y verifica qué modo de ticks se utiliza realmente.
- Después de configurar: comprueba el spread variable, la comisión, la financiación, las restricciones de volumen y los ajustes de margen y stop frente a la cuenta prevista. Revisa operaciones de muestra manualmente. No interpretes «Cada tick» por sí solo como prueba de que los ticks fueron registrados en lugar de generados.
El propósito es investigar la diferencia entre un modelo de spread simplificado y un modelo más pertinente de datos registrados. La herramienta no puede validar la hipótesis de la estrategia, reparar datos de profundidad no disponibles ni garantizar que los costes futuros se parezcan a los del pasado. Su utilidad deriva de la necesidad de investigación y de las comprobaciones que realices.
Modelización de la ejecución: demora, gaps y ejecuciones parciales
La contabilización de costes es solo la mitad del modelo de implementación. El campo 5 también debe indicar qué ocurre entre la señal y la ejecución:
- Momento de la señal y latencia: después de un cierre de vela confirmado, el cálculo, la transmisión y la aceptación llevan tiempo. Las decisiones manuales pueden tardar segundos; las demoras automatizadas dependen del sistema y del proveedor. Mídelas o modelízalas explícitamente. Suponer demora cero puede ser importante para un breakout, pero su contribución no puede declararse como una proporción fija del coste sin evidencia.
- Gaps: una orden stop a mercado corriente no puede ejecutarse a un precio no disponible. Modeliza la siguiente cotización ejecutable disponible según las reglas de la orden, incluida la posibilidad de ejecución tardía o fallida. Ejecutar siempre exactamente en el stop subestima algunas pérdidas de cola, sobre todo en torno a cierres y publicaciones.
- Ejecuciones parciales: utiliza la media de las ejecuciones ponderada por cantidad en vez de solo el primer precio. Una cantidad parcial suele crear menos exposición que la solicitud completa si lo demás es igual, pero los cambios de precios de ejecución y cargos pueden alterar esa comparación. Según la convención del diario utilizada aquí, conserva la R₀ original anterior a la orden y registra por separado la fracción no ejecutada. Si otra implementación utiliza el riesgo asignado a la posición ejecutada, registra ese denominador como una métrica distinta en vez de cambiarlo retrospectivamente. Las salidas parciales de una única decisión de entrada siguen siendo una operación; contarlas como observaciones separadas cambia la ponderación y puede distorsionar la tasa de acierto.
- Recotizaciones y rechazos: una señal histórica puede no convertirse en una ejecución real. Registra los resultados de las solicitudes y distingue el rechazo confirmado de un estado desconocido. Cincuenta señales candidatas y 41 operaciones ejecutadas pueden reflejar nueve fallos de ejecución en vez de nueve señales ausentes; la conciliación debe comparar elementos equivalentes.
Somete a estrés cada supuesto importante: mayor demora, peor deslizamiento, resolución adversa de una vela ambigua. Si un cambio plausible elimina la ventaja, informa de la sensibilidad y de la evidencia de implementación ausente. No declares realista todo escenario pesimista solo por ser conservador. Un modelo que asume ejecuciones instantáneas y completas a cada precio de referencia debe declarar abiertamente esa limitación. Los diagnósticos MAE/MFE y sus convenciones de muestreo se desarrollan en el artículo 15.9.
Un registro combinado de costes para un script de validación
El siguiente ejemplo didáctico ejecutable amplía el pseudocódigo de este ejemplo. Todos los componentes utilizan las unidades de pip del par. Las pequeñas tablas de spread y comisión son sintéticas, no datos de proveedores. Las franjas horarias UTC se simplifican deliberadamente y no modelizan cambios de horario de verano ni shocks de publicaciones. La investigación para producción debe utilizar cotizaciones fechadas o un modelo condicional correctamente especificado.
Los eventos de financiación aportan costes largos y cortos separados y el multiplicador diario aplicable; la función no supone tasas opuestas ni adivina el swap triple a partir de un simple número de noches. Los indicadores identifican componentes ya incluidos en el beneficio/pérdida probado. El resultado es el ajuste adicional que aún debe descontarse, no un permiso para cobrar todo el registro una segunda vez.
import math
def total_cost_per_trade(pair, hour_utc, atr_pips, direction,
financing_events=(), *, spread_in_fills=False,
slippage_in_fills=False, commission_in_result=False,
financing_in_result=False):
"""Coste adicional en pips; positivo = coste, negativo = abono neto.
Cada evento de financiación contiene COSTES diarios independientes equivalentes
en pips de 'long' y 'short' y el 'multiplier' aplicable. Un abono es negativo.
Rellenar los eventos fechados externamente a partir del periodo real de tenencia y las tasas.
"""
spread_table = {
"EURUSD": {"low": 1.5, "normal": 0.7, "peak": 0.3},
"GBPJPY": {"low": 4.0, "normal": 2.0, "peak": 1.2},
}
commission_table = {"EURUSD": 0.6, "GBPJPY": 0.8} # Pips sintéticos por operación completa.
if pair not in spread_table:
raise ValueError("Par no admitido: proporcionar un modelo explícito de costes")
if direction not in ("long", "short"):
raise ValueError("direction debe ser long o short")
if isinstance(hour_utc, bool) or not isinstance(hour_utc, int):
raise ValueError("hour_utc debe ser un entero de 0 a 23")
if not 0 <= hour_utc <= 23:
raise ValueError("hour_utc debe ser un entero de 0 a 23")
if not math.isfinite(atr_pips) or atr_pips < 0:
raise ValueError("atr_pips debe ser finito y no negativo")
regime = "low" if hour_utc >= 22 or hour_utc <= 6 else (
"peak" if 8 <= hour_utc <= 16 else "normal"
)
spread = 0.0 if spread_in_fills else spread_table[pair][regime]
slippage = 0.0 if slippage_in_fills else 2 * 0.1 * atr_pips
commission = 0.0 if commission_in_result else commission_table[pair]
financing = 0.0
for event in financing_events:
rate = float(event[direction])
multiplier = float(event["multiplier"])
if not math.isfinite(rate) or not math.isfinite(multiplier) or multiplier < 0:
raise ValueError("Evento de financiación inválido")
if not financing_in_result:
financing += rate * multiplier
return spread + slippage + commission + financing
# Ejemplo sintético: tasas separadas, no un supuesto de signos opuestos.
events = [{"long": 0.3, "short": 0.1, "multiplier": 3}]
print(total_cost_per_trade("EURUSD", 10, 5.0, "long", events)) # 2.8 pips
print(total_cost_per_trade("EURUSD", 10, 5.0, "long", events,
spread_in_fills=True)) # 2.5 pips
Como comprobación sencilla, +0,4R antes de costes adicionales se convierte en +0,2R si esos costes son 0,2R, o en −0,1R si son 0,5R. Convierte el registro en pips utilizando la distancia de riesgo inicial pertinente y la convención de divisa. Sin un registro explícito y un modelo de ejecución, no sabes qué resultado neto representa el informe histórico.
8. Selección interesada de resultados y selección de señales
La selección interesada metodológica ocurre cuando un investigador elimina algunas señales y presenta el resto atractivo sin una regla de selección válida y preespecificada. Puede ser deliberada o inconsciente. Una implementación completa perdedora puede parecer rentable porque las observaciones desfavorables han desaparecido de la muestra presentada.
Tres formas de selección interesada
1. «Me salto las señales que no parecen adecuadas». Un gráfico histórico contiene una señal válida, pero el investigador la descarta por un contexto inadecuado. Si las velas posteriores son visibles o se recuerdan, «inadecuado» puede correlacionarse con el resultado perdedor en vez de con una regla disponible en el momento original de la decisión. Una estrategia discrecional puede estudiarse, pero necesita un protocolo de clasificación definido, ciego o prospectivo y decisiones anteriores al resultado conservadas.
2. «Añado un filtro después de ver las pérdidas». Un grupo de pérdidas del martes por la mañana provoca una nueva exclusión de los martes. El mismo periodo histórico mejora por construcción. No establece si los martes son realmente distintos. Trata el filtro como una hipótesis nueva, registra por qué se propuso y valídalo independientemente en vez de presentar la muestra seleccionada como confirmación.
3. «Solo utilizo periodos limpios». El investigador elimina periodos históricos de estrés, como marzo de 2020, la crisis financiera de 2008 o las ventas masivas de finales de 2018, y presenta los periodos restantes como representativos. Esos ejemplos necesitan etiquetas exactas: Lehman Brothers quebró en septiembre de 2008 y el evento conocido como taper tantrum ocurrió en 2013, no en diciembre de 2018. Una estrategia preespecificada puede excluir condiciones observables, pero no puede excluir retrospectivamente una crisis inesperada solo porque el resultado sea incómodo. Conserva los periodos de estrés e indica qué habrían hecho realmente las reglas con la información disponible entonces.
Cómo detectar un tratamiento selectivo de señales
- Cuenta por separado candidatos, señales elegibles y ejecuciones. Los niveles de advertencia del ejemplo del 10% y el 30% de omisiones manuales son desencadenantes ilustrativos de auditoría, no probabilidades de que haya habido selección interesada. Incluso una omisión menor elegida por su resultado puede sesgar un resultado; una tasa alta de exclusión basada en reglas puede ser legítima.
- Registra el motivo de rechazo y su marca temporal. Un filtro escrito antes de la evaluación difiere de una decisión improvisada después del resultado. Para la discrecionalidad intencionada, conserva el juicio realizado en el momento de la decisión en vez de tratarlo silenciosamente como un filtro mecánico.
- Reconstruye el periodo completo. Compara todas las señales elegibles con el subconjunto ejecutado selectivamente, incluidas las condiciones difíciles. Una diferencia de rendimiento requiere diagnóstico: puede reflejar selección, fallo de ejecución o un efecto real de un filtro preespecificado. La diferencia por sí sola no identifica la causa.
El inventario de señales: un control concreto
Asigna a cada candidato un estado en un registro generado automáticamente o conciliado desde el diario. Haz que los estados sean mutuamente excluyentes en el nivel elegido y conserva registros separados de solicitudes y ejecuciones cuando un candidato avance a ejecución:
| Estado | Definición | Convención ilustrativa de revisión |
|---|---|---|
taken | Una señal elegible ejecutada según la regla especificada. | Un objetivo superior al 90% puede describir el cumplimiento entre señales elegibles y ejecutables, no entre todos los candidatos en bruto anteriores a los filtros. |
skipped_by_rule | Un candidato excluido por una regla fijada antes de la evaluación, como calendario, correlación o franja horaria. | Sin límite porcentual universal. Conserva la regla, las entradas medidas y el motivo para que las exclusiones sigan siendo auditables. |
skipped_manual | Una señal por lo demás elegible omitida por una decisión discrecional no modelizada. | Este ejemplo utiliza el 10% como desencadenante de escalada. Toda omisión guiada por el resultado necesita investigación, incluso por debajo de esa cifra. |
invalid_data | Una entrada necesaria faltaba, era inválida o no estaba disponible en el momento de la decisión. | La advertencia del 5% del ejemplo es ilustrativa. Diagnostica el tipo y el momento del problema; no lo ocultes como una exclusión corriente por reglas. |
Los fallos del proveedor o de la infraestructura después de una señal válida requieren estados de ejecución adicionales, como order_rejected, order_state_unknown o partial_fill. No son automáticamente datos de mercado inválidos. Mantén explícito el denominador al informar de una tasa de error; de lo contrario, las exclusiones por reglas sin límite pueden hacer matemáticamente engañoso el objetivo del estado «taken».
Según la política del ejemplo, las omisiones manuales superiores al 10% detienen el avance hasta comprender la discrepancia. Formaliza un motivo defendible como una regla nueva y evalúa la versión nueva, o reconoce que el método previsto no puede ejecutarse con fiabilidad con el proceso actual. No reetiquetes omisiones discrecionales antiguas como si el filtro nuevo existiera entonces. El umbral numérico es una elección de proceso, no una frontera por debajo de la cual desaparezca el sesgo de selección.
Selección interesada en una presentación de venta de un EA
Un criterio prudente de compra es poder reproducir la prueba pertinente con tus propios datos y supuestos de costes y comprender sus limitaciones. Acceder al código fuente permite una inspección más profunda, pero un producto de código cerrado no es automáticamente fraudulento; tiene un límite de validación que tu política puede considerar inaceptable. Un precio alto, una curva suave o una valoración elevada no cubren esa carencia. No compres ni pongas en funcionamiento algo solo porque un informe seleccionado parezca convincente.
9. Errores habituales en las pruebas
Error 1: optimizar sobre todo el conjunto de datos
Un investigador prueba 200 combinaciones de parámetros durante cinco años y selecciona la que muestra +180%, sin una evaluación intacta. El máximo es un resultado seleccionado; su tamaño por sí solo no establece una ventaja. Utiliza un diseño cronológico de desarrollo y evaluación, registra la división en el campo 4 y los 200 ensayos en el campo 7. La división 70/30 del ejemplo es ilustrativa, no una regla universal. Una etapa prospectiva sigue siendo útil, pero no convierte retrospectivamente la selección anterior en una prueba independiente.
Error 2: tratar una muestra histórica pequeña como decisiva
Un backtest de seis meses y 24 operaciones sigue siendo un backtest, pero puede ser evidencia débil para una afirmación amplia a largo plazo. Su incertidumbre puede ser grande respecto a la media y el periodo puede contener solo un régimen relevante. Elige un historial que atienda al alcance previsto e informa de los regímenes realmente observados; «varios años» no garantiza por sí mismo la cobertura. Recuentos como 200 o 500 de este artículo son ejemplos de escenario, no estándares de mercado. Juzga la precisión por la distribución, la dependencia y el umbral de decisión.
Error 3: utilizar solo un lado de la cotización sin modelizar el otro
Una posición larga abierta y cerrada en bid omite el ask de entrada y puede sobrestimar el resultado aproximadamente en el spread bajo una comparación sencilla de precios emparejados. La entrada larga utiliza ask y la salida bid; la entrada corta utiliza bid y la salida ask. Un historial de solo bid no es automáticamente inutilizable si se añade un modelo justificado de ask y ejecución, pero la aproximación debe ser explícita. El modo de ticks registrados de MT5 y un proceso de datos de ticks MT4 adecuadamente configurado son opciones que investigar, no una prueba de realismo completo.[6] Registra en el campo 3 las convenciones de bid, ask, punto medio y datos generados frente a registrados.
Error 4: ignorar las diferencias entre regímenes
Un resultado de un entorno de política, volatilidad o liquidez puede no trasladarse a otro. No etiquetes periodos completos de varios años como uniformemente de tipos bajos, tipos altos, QE o QT cuando las condiciones cambiaron dentro de ellos. La evaluación rodante puede revelar diferencias entre ventanas observadas, pero identificar una ventaja dependiente del régimen requiere suficiente evidencia y una regla que reconozca el régimen utilizando información disponible entonces. Un filtro inventado después de ver las ventanas favorables es una variante de investigación nueva, no una regla automática de activación.
Error 5: afirmar transferibilidad sin probarla
Una prueba de EUR/USD que parece exitosa no establece que el mismo método funcione entre divisas. Si la afirmación abarca varios pares, evalúa un conjunto preespecificado, quizá de cinco a ocho pares en un diseño ilustrativo de investigación, con costes y tratamiento de dependencia adecuados. Si la afirmación original es realmente específica de EUR/USD, fallar en otro par no la refuta por sí solo ni demuestra ajuste de curvas. El alcance de la conclusión debe coincidir con el alcance de la evidencia.
Error 6: confundir rentabilidad con rendimiento ajustado al riesgo
Supongamos que la estrategia A presenta una rentabilidad anualizada del 35% y un drawdown máximo del 22%, mientras B presenta el 25% y el 8% en un horizonte de medición comparable. Una comparación sencilla de tipo Calmar da:
- A: 35 / 22 ≈ 1,6.
- B: 25 / 8 ≈ 3,1.
B tiene el mayor ratio entre rentabilidad y drawdown observado con esas definiciones. No establece todas las dimensiones de estabilidad o riesgo futuro. No puedes calcular Sharpe solo a partir de esos dos números. Sharpe necesita una serie de rentabilidades con una frecuencia especificada, una rentabilidad de referencia coincidente y una convención de anualización: (rentabilidad periódica media - rentabilidad de referencia) / desviación estándar de la rentabilidad periódica, justificando cualquier anualización por la raíz cuadrada del número de periodos mediante los supuestos.
Dividir una rentabilidad anual por una desviación estándar mensual sin unidades coherentes no es un cálculo adecuado de Sharpe. La falta de entradas significa que la métrica no está disponible, no que puedas inventar un valor aproximado. El artículo 15.9 desarrolla Sharpe, Sortino y Calmar y lo que cada uno deja sin medir.
Error 7: dejar de medir después de la puesta en funcionamiento
Un candidato puede superar la investigación histórica, la demo y un piloto limitado, y después dejar de medirse una vez que aumenta su asignación. Sigue conciliando la implementación real y comparando los resultados con los supuestos, la incertidumbre y los límites de escenario de la prueba. Una muestra nueva tiene su propia incertidumbre; no basta con preguntar si su media cae dentro del intervalo de confianza de la muestra antigua. El artículo 15.10 define el ritmo de revisión y las decisiones de mantener, observar, reducir o detener. Este artículo aporta el registro de comparación: definiciones de métricas, intervalos originales, costes y cuantiles simulados de drawdown.
Error 8: cambiar el método tras cada racha de pérdidas
Los cambios semanales de parámetros tras cinco a diez pérdidas pueden adelantarse a la información que llega sobre una única versión. Con resultados independientes y una probabilidad de ganar del 52%, cinco pérdidas en un bloque preespecificado tienen una probabilidad de 0,485 ≈ 2.5%. La probabilidad de al menos una racha así en algún lugar de 100 operaciones es aproximadamente 75%. Esta última tiene muchas oportunidades solapadas para la racha; tratar esas ventanas como independientes utilizando 1 - (1 - q^k)^(N-k+1) sobrestima la probabilidad exacta de la racha en este ejemplo.
Son cálculos de modelo, no una afirmación de que tus resultados de operaciones sean independientes. La enseñanza es plantear la pregunta correcta de probabilidad antes de declarar rota la estrategia. Utiliza criterios preespecificados de revisión de investigación en lugar de la apariencia de la última semana. Los fallos operativos, los límites de riesgo excedidos o un defecto de datos demostrado pueden seguir requiriendo una pausa inmediata; no necesitas una caída estadísticamente significativa de la esperanza matemática antes de proteger la cuenta. Un cambio de reglas crea una versión nueva y necesita su propia evaluación.
Antes de cambiar una regla: comprueba estas capas en orden
No confundas un defecto de la estrategia con un problema de implementación o de datos. Establece qué mide el resultado antes de modificar las reglas de trading:
- Datos y ejecución. Concilia el diario con los registros del proveedor, confirma la versión y cuenta las desviaciones de las reglas. Un periodo contaminado no puede interpretarse como rendimiento limpio de la estrategia especificada; aun así, puede aportar evidencia útil sobre el fallo operativo.
- Costes. Compara el spread, el deslizamiento y la comisión reales con la ficha. Una reducción de la esperanza matemática de 0,15R junto a un aumento de costes de 0,15R puede explicar la discrepancia. Los costes forman parte de la viabilidad de la estrategia negociable aunque el mecanismo de entrada no haya cambiado.
- Régimen. Comprueba si realmente ocurrieron las condiciones en las que debía operar la estrategia y si su filtro de elegibilidad se aplicó correctamente.
- Ventaja. Solo entonces evalúa la distribución de resultados y la incertidumbre respecto a la regla de decisión preespecificada, no solo la media de la última docena de operaciones.
La tabla de decisión completa de «cambiar el sistema o cambiar la ejecución», los criterios de reducción y el proceso de revisión corresponden al artículo 15.10. La regla aquí es resolver las tres primeras capas diagnósticas antes de atribuir la discrepancia a la lógica de entrada y salida. Todo cambio real de reglas vuelve al proceso de pruebas versionado; no es un parche invisible de la evidencia antigua.
10. Lista de comprobación: dos filtros distintos para decidir el paso a real
La lista de comprobación contiene 20 puntos en cinco categorías: evaluación estadística, controles metodológicos, costes, pruebas prospectivas y disciplina operativa. Hay dos filtros porque el punto 17 exige observaciones reales y no puede ser un requisito previo para el primer estudio limitado en real. En esta versión, revisa 1–16, 19 y 20 antes de considerar ese estudio autorizado por separado; revisa los 20 antes de cualquier decisión posterior de aumentar la escala. El plan de medición continua del punto 20 debe existir antes del piloto, no solo después.
Una puntuación no compensa un requisito crítico ausente. «No aplicable» exige una razón escrita. Todas las duraciones, recuentos de operaciones y umbrales numéricos de políticas aquí son elecciones de escenario, no estándares de mercado. Completar la lista no certifica rentabilidad ni autoriza a cursar órdenes.
La página no envía estas respuestas ni las guarda deliberadamente como registro de investigación. Un navegador puede restaurar el estado del formulario al volver; eso no es evidencia de que se hayan verificado los puntos. Guarda la lista revisada junto al archivo fechado de la prueba.
Archivo necesario: once componentes
Una revisión de puesta en funcionamiento necesita un rastro de auditoría. Sin él, seis meses después quizá no puedas reconstruir qué reglas, datos y supuestos produjeron el resultado original:
- La ficha de prueba de doce campos: campos 1–9 antes de la evaluación, resultados y limitaciones después, con el manifiesto de reproducción completado y verificado.
- Entradas históricas: datos brutos de mercado y calendario, fuente, fecha de adquisición, permisos, hashes, versiones depuradas, código de transformación y un registro de huecos, duplicados y revisiones.
- La especificación y la implementación de la estrategia: reglas legibles, código, parámetros, versiones de dependencias y plataforma, marca temporal de fijación y comandos exactos. Fija antes del OOS, no después de verlo.
- Informes IS, de validación y OOS: límites de división, historial completo de ensayos, curvas de capital, intervalos de esperanza matemática, factor de beneficio y drawdown por ventana rodante, además de resultados de referencia comparables.
- Informe de simulación y estrés: ilustrativamente 1.000 trayectorias o más, con semilla, código, esquema de bloques, horizonte, dimensionamiento, cuantiles de rentabilidad y drawdown, tasas de cruce de umbral y limitaciones. Más trayectorias no son más observaciones de mercado.
- El modelo de costes y de cuenta: spreads por sesión o tick, supuestos de deslizamiento, tasas de financiación separadas y multiplicadores diarios, comisión, conversiones, margen y restricciones del símbolo.
- Exportaciones de demo u operativa simulada: todo el periodo de observación previsto, ilustrativamente 30 días, con marcas temporales originales de señales, estados y conciliación histórica.
- Diario del piloto limitado en real, si está autorizado y completado: el periodo previsto, ilustrativamente 90 días, con la R₀ de cada operación, R neta, convención MAE/MFE, costes reales, solicitudes, ejecuciones, incidentes y capturas de pantalla de antes y después cuando sean útiles.
- Inventario de señales: todos los candidatos y motivos de exclusiones, omisiones manuales, datos inválidos y fallos de ejecución, con denominadores reproducibles de las tasas de desviación.
- Registro de ajustes del proveedor: tipo de cuenta, condiciones del símbolo, apalancamiento, volumen mínimo, stops y comisiones aplicables en la fecha de la prueba. Conserva la evidencia necesaria para investigar una disputa de ejecución sin exponer credenciales.
- Copias recuperables y registro de decisión: EA fijado, scripts y plantillas, conclusiones revisadas, limitaciones sin resolver, responsables, ubicaciones de recuperación y condiciones para pausar o reanudar.
Un directorio ilustrativo es strategy_X/2026-Q2/{01_data,02_IS,03_OOS_locked,04_montecarlo,05_demo,06_micro_live,07_artefacts}. Mantén copias recuperables en un almacenamiento adecuado y protege las exportaciones sensibles. El almacenamiento en la nube es una elección regida por tu política de datos, no un requisito. Los hashes revelan diferencias entre archivos; no demuestran que las cotizaciones subyacentes sean correctas.
Completar el primer filtro permite una revisión de si se autoriza un estudio limitado en real, no una orden automática. Completar los veinte permite una revisión posterior de puesta en funcionamiento o de aumento de escala según el plan. Una condición crítica ausente devuelve el proyecto a la etapa sin resolver. La decisión final igualmente válida es no pasar a real.
Preguntas frecuentes
¿Cuánto tarda el proceso completo desde el backtesting hasta una revisión para operar en real?
La secuencia ilustrativa aquí es de cuatro a ocho semanas de trabajo histórico, 30 días de demo y 90 días de un piloto limitado en real autorizado por separado: 148–176 días, aproximadamente cinco a seis meses. Un estudio complejo de múltiples activos o marcos temporales puede tardar ocho a dieciséis semanas solo en la etapa histórica. Son supuestos de planificación, no estándares del sector ni garantías de evidencia suficiente. Las señales poco frecuentes exigen una observación más larga. Un candidato que no supera un filtro sigue sin aprobación; el tiempo transcurrido no es motivo para rebajar el criterio. La etapa opcional de simulación, las pausas y las versiones revisadas añaden tiempo, en lugar de quedar absorbidas silenciosamente en el calendario original.
¿Basta MT4 Strategy Tester para validar?
Depende de la estrategia, los datos y la configuración. Un modelo de solo precios de apertura no puede establecer una secuencia intravela que no representa. Un spread fijo puede ser inadecuado para una regla sensible al spread, y un procedimiento WFA rodante completo necesita ventanas y registros gestionados explícitamente. Un proceso de datos de ticks como TDS puede aportar capacidades ausentes, pero una etiqueta de calidad de modelización del 99% no certifica corrección. Verifica ticks registrados frente a generados, lados de cotización, costes, temporización y operaciones de muestra. La opción histórica Forward de MT5 ofrece una división con reserva, no una observación prospectiva de datos reales.[6] Elige las herramientas según la evidencia necesaria en lugar de suponer que el nombre de una plataforma valida la prueba.
¿Y si la prueba histórica solo tiene 50 operaciones?
Considera un historial relevante más largo, quizá diez años en vez de cinco; un estudio entre pares preespecificado cuando la hipótesis sea realmente transferible; y sensibilidad de bootstrap por bloques con longitudes como 5, 10 y 20. Un historial más largo puede añadir observaciones, pero no necesariamente a una tasa constante. De cinco a ocho pares no producen automáticamente de cinco a ocho veces más evidencia independiente. El bootstrap no crea ninguna observación nueva de mercado. Si la incertidumbre sigue atravesando el umbral de decisión, registra el resultado como no concluyente o limitado por la frecuencia. Un mecanismo plausible no sustituye la evidencia ausente ni autoriza por sí mismo una posición real más pequeña. Continúa la investigación o rechaza la puesta en funcionamiento según el plan.
¿Puedo omitir la demo después de un buen backtest?
Un buen resultado histórico no responde a si las alertas, el arranque, la entrega de datos, la gestión del estado de las órdenes y el proceso del operador funcionan con observaciones entrantes. La demo o un proceso en paralelo adecuado pueden exponer esos defectos antes de arriesgar fondos reales. Las ejecuciones demo no miden completamente el deslizamiento o la liquidez reales, de modo que un estudio posterior de ejecución real sigue siendo una decisión separada y explícitamente autorizada. No se trata de un ritual obligatorio de plataforma, sino de evitar saltarse silenciosamente las preguntas operativas que el backtest no puso a prueba.
¿Qué rentabilidad anual es realista para una estrategia minorista?
Este artículo no dispone de un conjunto de datos fiable que respalde una única «rentabilidad minorista rentable típica». El porcentaje de cuentas con pérdidas de un regulador no es la distribución de rentabilidades de las cuentas rentables. Las rentabilidades declaradas muy altas requieren examinar apalancamiento, riesgo, denominador de la cuenta, flujos de efectivo, selección, costes y duración del periodo favorable. Una pantalla de cuenta prop puede utilizar un denominador distinto del capital propio del trader; hay que explicar esa diferencia. Los ejemplos ilustrativos del 50%, el 200% o el 500% son afirmaciones que investigar, no umbrales que demuestren fraude o rendimiento imposible. Fija un criterio de decisión comprobable en R neta con incertidumbre en vez de adoptar un objetivo promocional de rentabilidad anual.
¿Cómo distingo un cambio de régimen del deterioro de la estrategia?
Empieza por los datos, la implementación y los costes, y después examina si ocurrieron las condiciones previstas. Un periodo reciente realmente no examinado puede aportar evidencia nueva de evaluación para reglas fijadas, pero su tamaño y cobertura de regímenes siguen limitando la conclusión. Un ejemplo de seis meses no es automáticamente suficiente. Si las señales históricas reconstruidas y la ejecución prospectiva difieren en las mismas fechas, concílialas en vez de atribuirlo todo al mercado. Utilizar el periodo nuevo para diseñar un filtro de régimen lo convierte en información de desarrollo para esa revisión. Las decisiones de mantener, observar, reducir o detener siguen el proceso del artículo 15.10, con controles de seguridad separados para problemas operativos inmediatos.
¿Puede la observación prospectiva preceder a un backtest histórico?
Sí, especialmente cuando no existen entradas históricas disponibles en cada momento o etiquetas discrecionales, pero describe la limitación. A cinco operaciones por semana, 30 días dan unas 21 observaciones, seis meses unas 130 y dos años unas 520. La precisión depende de la dispersión y la dependencia, no solo de esos recuentos. Un proceso de alta frecuencia que produzca 50 operaciones al día puede acumular más de 1.000 registros en un mes, pero los eventos compartidos pueden hacerlos muy dependientes. El trabajo histórico puede añadir alcance y contexto; el prospectivo aporta un registro de lo que realmente podía conocerse y de lo que se hizo. Ninguna etiqueta garantiza una inferencia adecuada y la falta de datos históricos no obliga a experimentar con capital real.
¿Puede una estrategia bien probada sufrir aún una llamada de margen o un cierre forzoso?
Sí. Un shock de liquidez o de política no observado, una asignación mayor, cambios en las condiciones de margen del proveedor o un fallo de infraestructura pueden superar las condiciones representadas en la prueba. Remuestrear operaciones observadas no genera todos los eventos no observados. Utiliza los límites de riesgo del plan, los criterios documentados de aumento y reversión de escala y el procedimiento de incidentes del artículo 15.8. El artículo 15.11 trata los cambios de escala. Algunos fallos pueden modelizarse bajo estrés, pero ningún modelo garantiza su gravedad completa. Una advertencia de margen y un cierre automático también son mecanismos específicos del proveedor, no eventos universales intercambiables. Un trimestre favorable no autoriza a aumentar el riesgo fuera del plan.
¿Puedo comprar un EA en lugar de crear una estrategia?
Puedes evaluar una implementación comprada, pero su precio, valoración y backtest seleccionado no sustituyen la diligencia debida. Solicita el historial de ensayos y versiones, datos y supuestos de costes reproducibles y registros reales suficientemente informativos si se alegan. Este ejemplo propone un historial real público de al menos tres años como preferencia de selección inicial; no es una garantía, y el seguimiento de terceros sigue necesitando comprobaciones de procedencia y flujos de efectivo. El código fuente permite una validación más profunda; si tu política lo exige, una negativa significa que el producto no cumple esa política, no una prueba de que el vendedor sea deshonesto. Considera la selección, las variantes ocultas, la supervivencia, la viabilidad actual y los costes de ejecución. Este artículo no establece una tasa global fiable de éxito de los EA de mercados de aplicaciones ni una ventaja financiera universal de comprar frente a crear.
¿Son las pruebas manuales intrínsecamente menos válidas que la automatización?
No. Las pruebas manuales necesitan un protocolo fijo de muestreo y decisión, registros completos y controles contra el sesgo retrospectivo. La automatización necesita código correcto, entradas disponibles en cada momento y un modelo de ejecución creíble. Ambas pueden reproducir repetidamente sus propios errores. Indica qué partes son discrecionales y conserva las decisiones anteriores a los resultados.
¿Puedo repetir un periodo fuera de la muestra?
Un cálculo sin cambios puede repetirse para reproducirlo o auditarlo. Si su resultado orienta un cambio o una selección, ese periodo pasa a ser información de desarrollo para la hipótesis modificada. Conserva el resultado original y etiqueta honestamente el uso posterior; un nombre de archivo nuevo no vuelve a hacer que los mismos datos estén sin examinar.
¿Y si el stop y el objetivo están dentro de una misma vela?
Los datos OHLC por sí solos no establecen cuál llegó primero. Utiliza datos más finos y lados de cotización adecuados, o informa de la sensibilidad pesimista con stop primero y optimista con objetivo primero. Ni siquiera la cronología de ticks establece todos los tamaños de ejecución disponibles ni garantiza que una orden existiera antes de la cotización.
¿Una tasa de acierto alta establece una ventaja positiva?
No. El ejemplo de 47 operaciones gana el 57,4% de las veces, pero suma −5,1R porque la pérdida media supera la ganancia media. Prueba los resultados netos realizados con su denominador de riesgo inicial. Una prueba binomial de probabilidad de ganar no es una prueba de la media de R neta.
¿Establece Monte Carlo el drawdown máximo posible?
No. Los cuantiles describen una distribución simulada especificada, no fronteras rígidas. El resultado depende de la muestra de entrada, el método de remuestreo, la longitud del bloque, el horizonte y el dimensionamiento. Los shocks ausentes, los cambios intratrade del capital y los fallos de liquidez no se crean automáticamente por ejecutar más trayectorias.
¿Debe restarse el spread de cada operación exportada?
Solo si no está ya incluido. Los precios reales bid/ask de entrada y salida suelen incorporar spread y deslizamiento de precios realizado. Añade solo cargos aún ausentes del resultado, con unidades coherentes de divisa y cantidad. Concilia la comisión y la financiación en lugar de descontarlas dos veces.
¿Justifica un resultado no concluyente operar a la mitad de tamaño?
No por sí solo. La evidencia insuficiente sigue siendo insuficiente. Un estudio limitado de ejecución real exige una finalidad separada, autorización, una orden mínima viable y un presupuesto de pérdidas aceptado. Continuar observando sin pasar a real es una decisión válida.
Fuentes y notas de verificación
Las seis primeras entradas aportan la lista de lectura metodológica. Respaldan el contexto metodológico, no el rendimiento de las estrategias sintéticas ni umbrales universales de tamaño de muestra, riesgo o puesta en funcionamiento. Las referencias de plataformas siguientes describen funciones técnicas; la documentación describe esa plataforma, no todos los brokers o centros de negociación.
Lista de lectura de la edición polaca
- Robert Pardo, The Evaluation and Optimization of Trading Strategies, Wiley, 2008. Desarrollo de estrategias, optimización y evaluación walk-forward.
- David Aronson, Evidence-Based Technical Analysis, Wiley, 2007. Pruebas de hipótesis, minería de datos y razonamiento estadístico en la evaluación de estrategias.
- Marcos López de Prado, Advances in Financial Machine Learning, Wiley, 2018. Selección en investigación, sobreajuste de backtests y validación con observaciones financieras dependientes.
- Howard B. Bandy, Quantitative Technical Analysis, Blue Owl Press, 2015. Evaluación de sistemas, remuestreo, dimensionamiento de posiciones y drawdown.
- Van K. Tharp, The Definitive Guide to Position Sizing, International Institute of Trading Mastery, 2008. Resultados basados en R, dimensionamiento y evaluación de sistemas. Una estadística R no es por sí misma una aprobación para poner en funcionamiento.
- MetaQuotes, Testing Trading Strategies, y MetaTrader 5, Strategy Testing. Modos de pruebas históricas, particiones posteriores y ajustes de modelización. La partición histórica posterior de un probador no es un periodo de observación prospectiva de datos reales.
Más abajo aparecen referencias técnicas adicionales conservadas de la edición inglesa anterior. Los ejemplos numéricos siguen siendo escenarios educativos, no estudios de rendimiento de mercado verificados independientemente. Los intervalos binomiales exactos se contrastaron numéricamente y los ejemplos de bootstrap con NumPy y de registro de costes se comprobaron por separado de cualquier cuenta de corretaje.
- TradingView, Strategies, y Repainting: supuestos del emulador de broker, gráficos sintéticos y temporización de la información. Son descripciones específicas de la plataforma, no reglas universales de bolsas.
- Bailey y coautores, The Probability of Backtest Overfitting, y The Deflated Sharpe Ratio: selección y no normalidad en la evaluación del rendimiento.
- MetaTrader 5, Performing Deals, y MQL5, Symbol Properties: gestión de órdenes de la plataforma y ajustes de volumen, financiación y ejecución específicos del contrato.
- MetaTrader 5, Strategy Testing: divisiones históricas posteriores, modos de ticks, demora y ajustes de cuenta y costes, incluidas las limitaciones del cálculo de beneficios en pips.
- Global Foreign Exchange Committee, The Use of Last Look in FX Markets: definición y divulgación de prácticas de last look en el contexto del mercado mayorista de divisas.
- NIST/SEMATECH, Confidence intervals for a proportion: construcciones de intervalos y sus supuestos.
- SciPy, binomtest, y ttest_1samp: pruebas distintas para una probabilidad binomial y una media poblacional.