Tengo unas cuantas variables financieras de un universo bursátil como son los precios OHLC, el volumen y otros fundamentales con distinta frecuencia temporal. Usando este conjunto estoy creando una expresión que da los pesos a invertir en esa acción en particular entre todo el universo para un día en particular.
Por ejemplo, una expresión puede ser algo así como
$$(close-open)/vwap$$ $$(close-average(close,10))/std(close,10)$$
La expresión se evalúa en cada acción del universo y el vector final se normaliza para llegar a los pesos que se asignan para esa acción en particular. Si el peso es positivo, significa que vamos a ir en largo en esa acción y si es negativo la dirección es corta y si el peso es 0, entonces no se asigna ninguna posición para esa acción en particular.
Esta configuración se repite en datos pasados y se hace una prueba retrospectiva para evaluar el rendimiento de la expresión. El backtest revela algunos parámetros como el Sharpe o la rentabilidad absoluta, etc.
Ahora bien, dado un conjunto fijo de variables, operadores y funciones que tienen algunos metaparámetros, ¿cuál es el mejor algoritmo posible para encontrar expresiones óptimas que den como resultado un buen rendimiento sobre los datos históricos (digamos que todas las combinaciones posibles que tienen un ratio de agudeza superior a 4). Además, sería estupendo saber si existe algún algoritmo en la literatura que, en lugar de buscar en todo el espacio de expresiones, pueda utilizarse para generar artificialmente nuevas expresiones a partir de un conjunto de entrenamiento creado por humanos que contenga la secuencia que utilizaron para llegar a una expresión buena y las expresiones que no funcionaron (generando artificialmente nuevas expresiones).