Quiero generar datos sintéticos de forex con el fin de hacer backtesting de mis algoritmos de trading. Tengo algunas ideas aproximadas en mente sobre cómo hacer esto:
Comience con una curva que represente una tendencia y luego genere aleatoriamente puntos alrededor de la curva según una distribución gaussiana o de otro tipo. A continuación, tome los puntos generados y genere de alguna manera los datos de la barra (apertura, alta, baja, cierre) alrededor de esos puntos; alternativamente, añada un factor de tiempo, y luego determine aleatoriamente cuándo se produce un tick y recoja los datos en barras después.
Mi pregunta es: ¿se aleja esto de los métodos establecidos para la generación de datos sintéticos? Supongo que eso plantea la pregunta más básica: son ¿hay algún método establecido para la generación de datos sintéticos? No consigo encontrar ningún escrito sobre este tema, ya sea una entrada de blog o un trabajo de investigación.
Así que, además de solicitar recursos externos sobre la generación de datos sintéticos, me gustaría saber qué tipo de distribuciones modelan mejor las relaciones entre la apertura, el máximo, el mínimo y el cierre, o cómo generar los intervalos adecuados entre los ticks, el diferencial entre los precios de compra y venta, etc.
1 votos
Podría utilizar un proceso estocástico con un término de deriva y volatilidad. Tal vez un modelo de tipos de interés como Vasicek que tiene reversión media, ES-VJ++ que es Vasicek con saltos, Hull-White, Black-Derman-Toy, etc. etc. El problema, por supuesto, es que sus algoritmos de trading (deberían) identificar rápidamente las suposiciones guasianas (o no) del modelo y batir al "mercado". ¿Por qué no pruebas el sim trading con un broker que te de datos en vivo? No he visto escritos sobre datos sintéticos de trading.
0 votos
Vencer a un mercado falso es un problema, de ahí mi interés por la investigación existente. Tienes razón, debería y hago pruebas con datos en vivo de un broker también. El problema es que los datos en vivo lleva tiempo, y no puedo controlarlos. Además de las pruebas en vivo, Quiero tener un conjunto de pruebas de la unidad para ejecutar mi estrategia contra, para servir como una comprobación de cordura que incluso en los casos ideales mi estrategia hace beneficio. Lo ideal sería comprobar un gran número de casos con parámetros variables. No puedo garantizar que todos esos movimientos aparezcan en los datos en vivo, y los datos históricos no están limpios además de tener el mismo problema.
0 votos
Así que sí, tal vez quiero que los datos sean tan simplistas que cualquier estrategia razonable los supere, pero aun así quiero modelar un mercado real lo más cerca posible...