Respuesta

No todos los Backtester Engine son iguales

2 respuestas

hannahis

Abonado, bbp_participant, comunidad, 21 respuestas.

Visitar el perfil

hace 7 años #116341

No todos los motores Backtester son iguales.

 

La forma en que un backtester "organice" sus datos históricos influirá enormemente en la fiabilidad y validez del software.

 

En todo experimento científico hay que evaluar la validez de la prueba antes de valorar la fiabilidad de los resultados.

 

No es válido utilizar una báscula para medir su estatura y, por tanto, los "resultados" son irrelevantes, inválidos para la comparación.

 

Además, si cada vez que se sube a la báscula (en un intervalo de 2 minutos) y suponiendo que todas las demás variables siguen siendo las mismas, se obtienen resultados diferentes, entonces la báscula es un instrumento válido, pero muy poco fiable.

 

Del mismo modo, si un software de Forex no utiliza los datos históricos "correctamente" para simular lo más cerca posible cómo se comporta un mercado real (como en su cuenta real), entonces no importa cuán fantasiosas sean las características de un software de Forex, es INVÁLIDO.

 

Ponemos tanta fe en todas esas pruebas estadísticas, sin embargo, a menudo no examinamos o evaluamos en primer lugar cómo funciona el motor de backtester del software. No evaluamos si el uso de "valores de barras anteriores" en la estrategia de múltiples marcos de tiempo se está empleando correctamente.

 

Entiendo que el SQ está en el proceso de agregar características de marco de tiempo Multi a SQ4 (y estoy esperando para probar a ver si es mejor que otro software) y por lo tanto quiero escribir para aumentar la conciencia del "problema común" que me enfrenté con otro software de Forex que emplean metodología defectuosa en su lógica de marco de tiempo multi, a fin de esperar que SQ evitaría estas caídas en boxes.

 

El uso común del "Valor de la barra anterior (PBV) del marco de tiempo superior" en la función de marco de tiempo múltiple es fundamentalmente erróneo en mi opinión.

 

He aquí un ejemplo.

 

Utilizo un gráfico de 1 minuto y añado indicadores/reglas M30, H1, H4 a mi estrategia.

 

Cuando utilizamos la barra de cierre del PBV del marco de tiempo superior como parte del cálculo de mi EA, verdadero/falso y si ejecutar la operación o no, nos encontramos con este problema...

 

a las 11:57 am el EA tendrá que reunir varios valores de cierre de barra de diferentes/múltiples marcos de tiempo para determinar si las reglas de mi EA son verdaderas o falsas.

 

Para las reglas de 1min, tomará el valor del precio de cierre de la barra de 1min a las 11:57

 

Para las reglas de M30, tomará el cierre de la barra anterior de M30 a las 11:30 (que tiene una brecha/diferencia de tiempo de 27min respecto al cierre de mi barra actual)

 

Para las reglas H1, tomará el cierre de la barra anterior de H1 a las 11:00 (que tiene 57 minutos de diferencia con el cierre de mi barra actual).

 

Para las reglas de H4, tomará el cierre de la barra anterior de H4 a las 8:00 (porque el intervalo de H4 es a las 00:00, 04:00, 08:00 y 12:00 etc) que es una brecha/diferencia de tiempo de 3hrs y 57 desde el cierre de mi barra actual).

 

 

Veamos otro ejemplo: Imagine que su EA en diferentes intervalos utilizará 4 valores de precio diferentes (en lugar de utilizar sólo el nivel de precio de cierre de la barra actual de 1min) para calcular sus reglas de apertura/cierre para determinar si ejecutar una operación o no.

 

A las 15:46

 

Las reglas de 1min tomarán/utilizarán el valor del precio de cierre de la barra a las 3:46 para su cálculo.

 

Las reglas M30 tomarán/utilizarán el valor del precio de cierre de la barra a las 3:30 (intervalo de tiempo =16min) (el ejemplo anterior, tiene un intervalo de tiempo de 27min)

 

Las reglas H1 tomarán/utilizarán el valor del precio de cierre de la barra a las 3:00 (intervalo de tiempo = 46min) (el ejemplo anterior, tiene un intervalo de tiempo de 57min)

 

Las reglas H4 tomarán/utilizarán el valor del precio de cierre de la barra a las 00:00 (intervalo de tiempo = 3hrs 46min) (el ejemplo anterior, tiene un intervalo de tiempo de 3hrs y 57)

 

 

Entonces, ¿qué implicaciones tiene este uso "indebido" de la barra anterior del marco temporal superior y qué dificultades plantea a los usuarios?

 

 

1. Para que cualquier objetivo de EA logre resultados consistentes, necesita tener una fórmula consistente.  

 

¿Es coherente la fórmula de su EA? (es decir, qué método utiliza para calcular los precios de mercado/datos históricos para determinar si debe ejecutar una operación o no, si las reglas son verdaderas/falsas).

 

Si utilizamos un nivel de precios y lo aplicamos a todos los marcos temporales, por ejemplo, utilizar sólo el valor de la barra de cierre / apertura / precio actual y aplicarlo a todos los demás marcos temporales, estamos "produciendo" una fórmula coherente.

 

Sin embargo, si utilizamos múltiples valores de barras anteriores tomados del valor de la barra anterior de múltiples marcos de tiempo, creamos una fórmula "variable". Una fórmula que está cambiando todo el tiempo porque está utilizando diferentes valores de precios tomados en diferentes intervalos de tiempo.

 

Es de sentido común, una fórmula variable/cambiante producirá resultados variables/cambiantes (resultados incoherentes) y una fórmula fija producirá resultados fijos, coherentes con su aplicación. Se mantiene fiel a la intención y ejecución del usuario.

 

Por lo tanto, no espero ningún resultado consistente de EA que se generaron a partir de software que utiliza diferentes "valor de la barra anterior" cuando uso multi reglas de marco de tiempo en mi EA. De hecho, No voy a perder mi tiempo / dinero con dicho software.

 

2. Imagínese cómo va a establecer sus reglas de negociación si utiliza valores de barras anteriores H4 (u otros marcos temporales superiores).  

 

Imagina que quieres que tu EA entre al cierre de la barra actual cuando se cruce la MA de H4. Cómo vas a poner esta regla si el software está utilizando el valor de la barra anterior de H4?  

 

Usted tiene que pensar "hacia atrás", es decir, ¿Cómo se ve la condición antes de H4 crossover, en otras palabras, ¿qué crees que tus indicadores H4 tienen que ser 4 horas antes de una ruptura ocurrió (porque el software utiliza la barra anterior de H4, que fue hace 4 horas).  

 

A veces, el indicador H4 permanece igual durante muchas barras antes de que realmente se cruce, ¿cómo vas a poner esas reglas de "barra anterior"? No sería más fácil poner las reglas como es, en el cierre de la barra actual?

 

si el software utiliza el cierre de la barra actual de 1min para calcular el indicador H4, entonces puedo simplemente poner mis reglas como: ejecutar una operación cuando la MA 100 de H4 cruce la MA 200, siempre que sea al cierre de la barra de 1min. Mucho más fácil que introducir la condición de cierre de la barra anterior de H4 que es de hace 4 horas.

 

 

El problema radica en la metodología del desarrollador del software a la hora de utilizar datos históricos. De ahí que no todos los backtester estén (diseñados) igual.  

 

El uso de los valores de barras anteriores de otros marcos temporales múltiples como punto de decisión/ejecución produce un rendimiento (EA) poco realista e inexacto.

 

Backtesting realistaAunque ninguna aproximación puede ser 100% perfecta, hemos hecho todo lo posible para recrear con precisión las condiciones pasadas del mercado y la ejecución de órdenes para la negociación de estrategias. Los motores típicos de backtesting tienen muchas suposiciones y atajos, que dan lugar a pruebas poco realistas y resultados poco fiables. MultiCharts es una plataforma de negociación de nivel institucional que minimiza las suposiciones y tiene en cuenta muchos factores.

 

 

No estoy aquí para promocionar MC, sino para resaltar y añadir el énfasis en la importancia de utilizar correctamente los datos históricos para recrear las condiciones pasadas del mercado con el fin de producir resultados de backtesting fiables/válidos para que selecciones qué EA descartar o mantener.

 

 

 

El uso de datos históricos tiene 2 funciones diferentes/principales

 

1) Proporcionar el seguimiento/movimiento de los precios durante un determinado periodo de tiempo (hasta cuándo se remontan sus datos históricos). 

 

     Por lo tanto, estos datos se empaquetan en barras de tiempo OHLC. Así que usted puede ver en el gráfico MT4, los movimientos de precios durante meses o años.

 

2) Para que el software utilice los valores de precio para calcular si las reglas de su EA son verdaderas/falsas. Para ejecutar o abrir/cerrar una operación en un entorno de backtesting simulado.

 

 Aunque estoy usando el indicador de H4, no tengo que depender de los valores de precio OHLC de H4 para tomar una decisión sobre si en el nivel de precio actual/cierre de barra, ¿hay un cruce en la MA de H4? Ese es el error común en el que creo que caen muchos programas. Sólo porque estoy usando indicadores H4 como parte de la fórmula de mi EA no significa que los valores de barra OHLC de H4 sólo pueden ser utilizados.  

 

El uso de datos históricos en este punto es para la ejecución, no para el seguimiento de precios. desde H4 se compone de múltiples valores de la barra de 1min, por lo que es más preciso utilizar el valor de la barra actual o cierre de la barra de 1 min y aplicar este valor a través de todos los indicadores para el cálculo y así determinar si se debe ejecutar el comercio en el momento oportuno en lugar de utilizar "fuera de datos" valor de la barra anterior de H4. Dado un mercado tan volátil, lo que ocurrió hace 4 horas, la diferencia mercado/tendencia/precio habría cambiado drásticamente.

 

 

La precisión es la clave

    

De hecho, si los marcos de tiempo múltiples están disponibles en SQ, idealmente, deberíamos estar utilizando sólo 1min gráfico de tiempo para introducir todas nuestras reglas de negociación. El gráfico de tiempo que utilice determina la rapidez/frecuencia con la que desea que su EA escanee el mercado en busca de oportunidades de trading. No tiene nada que ver con las estrategias que esté utilizando. Puede introducir H4, H1 o cualquier otro indicador de tiempo en el gráfico de tiempo de 1min. La cuestión es una cuestión de velocidad. ¿Cómo de rápido quieres que tu EA reaccione a los cambios del mercado? Un EA lento no es probable que tenga ejecuciones precisas de entrada/salida.  

 

En las actuales condiciones volátiles del mercado, es eminente que nuestros EA sean rápidos y precisos. Si es tan laggy con tal brecha de tiempo / diferencia, es muy difícil de lograr EA altamente precisa y rentable. La mayor parte de mi EA puede hacer entre $3000 - $5000 por semana (teniendo en cuenta la volatilidad del mercado actual). No voy a ser capaz de lograr tales resultados si utilizo cualquier marco de tiempo superior a 1min.

 

¿Con qué rapidez desea que su EA escanee el mercado y siga buscando las oportunidades adecuadas? ¿Cada minuto, cada hora o cada 4 horas? ¿Con qué rapidez desea que su EA responda a los cambios del mercado, cada minuto o cada hora?  

 

El uso de gráficos de tiempo de 1min me permite desarrollar EA que tiene altas reglas de entrada/salida. Con el uso de múltiples marcos de tiempo y la evitación del uso "erróneo" de múltiples valores de barras anteriores (en lugar de 1 valor de la barra actual), tenemos una mejor esperanza de hacer un buen beneficio de todos los movimientos del mercado (de cos el resto depende de qué tan sólido es su plan de comercio / estrategias).

 

 

 

¿Por qué cree que Multi Chart tiene esta función a continuación?

 

Simulación tick a tick

Bar Magnifier es esencial para aumentar precisión durante el backtesting. MultiCharts puede construir barras mayores a partir de componentes menores â€" barras de segundos y minutos a partir de ticks, barras de horas y dÃas a partir de minutos. Puede recrear los movimientos exactos de los precios dentro de cada barra utilizando la Lupa de Barra. Por ejemplo, la Lupa de Barra puede cargar de forma invisible minutos que componen la horay La estrategia se probará minuto a minuto.

 

Por lo tanto, al utilizar el gráfico de tiempo de 1min para su EA, está realizando un backtesting de su EA minuto a minuto (siempre que el desarrollador utilice el cierre de barra de 1min como punto de cálculo para todas las demás entradas/reglas de marcos de tiempo múltiples).

 

Ps: No estoy aquí para promover MC, porque creo que MC y SQ son 2 software muy separados. SQ son más para los no programadores. Pero podemos aprender de la experiencia de otras personas.

 

 

Conclusión

Dado que SQ4 está incorporando características de Mult time frame, por favor no utilice la barra anterior del marco de tiempo superior como su metodología de backtesting. Definitivamente nunca compraría un software con tales métodos de backtesting. Porque cualquiera que sea el EA que desarrolle usando las características del valor de la barra anterior, estos EA (con fórmula variable / brecha de tiempo) nunca producirán resultados consistentes y confiables para que yo ponga mi EA en una cuenta real. 

Estoy impresionado con el equipo de desarrollo de SQ y por lo tanto quiero que SQ tenga éxito en la búsqueda de maneras de proporcionar herramientas eficaces y potentes a sus usuarios dedicados, que son todos tan solidarios y agradecidos de los miembros del equipo SQ. El éxito de SQ redundará en el éxito de los usuarios (en su búsqueda de EA rentables). 

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #141579

gracias por el largo artículo, entiendo lo que quieres decir. En general, usted está diciendo que no es una buena idea utilizar el valor de la barra anterior en estrategias multi-TF.

 

Yo no lo veo tan estricto, depende, y a veces tiene ventajas usar valores de barras anteriores. Pero el nuevo SQ4 no te limitará en tu elección, tiene posibilidad de usar el valor de la barra actual (por ejemplo la barra H4 que está actualmente en desarrollo), no estás limitado al valor de la barra anterior.

 

Has mencionado MultiCharts, sin duda es un buen software, pero SQ tiene un motor de backtesting comparable o incluso mejor, utilizando precisión de tick real de forma limpia y comprensible.

Siempre me ha parecido confusa la elección de Tradestation/MultiCharts de utilizar la simulación de barras interiores.

Mark
Arquitecto de StrategyQuant

0

hannahis

Abonado, bbp_participant, comunidad, 21 respuestas.

Visitar el perfil

hace 7 años #141580

¡¡¡Genial!!!

 

Marca,

 

Es tranquilizador saber que SQ4 no tiene esa restricción, sino que ofrece mucha más flexibilidad de la que puedo imaginar.

 

Ahora vale la pena esperar porque me preguntaba cómo está organizado el motor de backtest de SQ4 y si se repetiría algún tipo de caída en picado.  

 

Me alegra mucho saber que SQ4 es mucho más "avanzado" de lo que me gustaría. Buen trabajo.  

 

Las cosas buenas merecen la espera....Estoy esperando con gran expectación.

0

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)