Visión general
Estoy entrenando un índice por ejemplo FTSE100, donde tengo 8 años de datos pasados (diarios). También tengo una lista de sus componentes.
Para cada acción, tengo las siguientes características: Fecha
, Apertura
, Cierre
, Máximo
, Mínimo
, Volumen Comerciado
ESCALADO
Decidí predecir si comprar/vender el índice. En lugar de utilizar valores de cierre, decidí optimizar para el porcentaje de cambio, por lo tanto, creé una nueva variable porcentaje_cambio
, que no está limitada por 1. ¿Esto hace que sea una métrica mala, y debería utilizar precios de cierre en su lugar?
¿Por qué no utilicé valores de cierre?
No estaba seguro de cómo escalarlo para ejecutarlo correctamente. Actualmente, la entrada de mi modelo son los 10 cambios porcentuales anteriores, por ejemplo, [t0, t1, ... , t10]
prediciendo [t11]
donde ti
es el cambio porcentual en el día i
.
Si utilizara el escalado, constantemente me encontraría con nuevos valores. Además, si mañana llega un nuevo máximo histórico, necesitaré reescalar los datos y volver a entrenar el modelo.
Además, pensé en reemplazar el porcentaje de cambio por el índice real denotado por pi
. Pensé en escalar solo el período de ventana móvil [p0, p1, ... , p10]
, sin embargo, el predictor [p11]
podría estar fuera del límite de 1.
Pregunta: ¿Maneja LSTM fácilmente entradas y salidas > 1?
SELECCIÓN DE CARACTERÍSTICAS
Por favor, aconséjeme qué variable independiente usar: porcentaje de cambio
o precio de cierre
(y cómo debería escalarlo). He entrenado el modelo en 2500 observaciones (500 épocas) dándome un 53% de precisión en el conjunto de pruebas (¿es bueno?). También obtuve un retorno del 30% en 600 días de prueba. Actualmente, las únicas características que estoy usando son las tasas de cambio de los últimos 10 días.
¿Qué características aprendió mi modelo?
No estoy seguro. ¿Aprendió medias móviles, gradientes lineales/aproximaciones de volatilidad, etc.? ¿O debería incluirlos en mi modelo como [t0, t1, ... , t10, MA10días, MA3días, Gradiente3días, Volatilidad3días]
?
ENTRENANDO EL MODELO
Dado que tengo 100 componentes, ¿tendría sentido ejecutar/pre-entrenar el mismo modelo en todas estas acciones? Todas las acciones están altamente correlacionadas con el índice, y pensé en calcular medias móviles, gradientes, etc. para cada uno de los Cierre, Apertura, Máximo, Mínimo
y luego ejecutar PCA para seleccionar solo unos pocos componentes.
SI LLEGASTE HASTA AQUÍ
Sé que esta es una larga pregunta y te agradezco por cualquier ayuda dada, ¡recompensaré los 100 puntos que tengo por la mejor respuesta! Gracias
0 votos
Pregunta: ¿LSTM maneja fácilmente entradas y salidas > 1? Sí, si no es muy diferente de 1. Todos los parámetros en una red neuronal deben estar entre 1 y -1. No puedes introducir los precios directamente, siempre tienes que normalizar. Pregunta 2: ¿Qué características tienes que usar? Bueno, eso es el arte de la predicción. Puedes usar indicadores, tus propios índices, etc.
0 votos
Por cierto, deberías intentar usar logReturns en su lugar.