Pronóstico del mercado de divisas con redes neuronales

10

Me gustaría utilizar ANN para automatizar el comercio de divisas, preferiblemente USD / EUR o USD / GBP. Sé que esto es difícil y puede que no sea sencillo. Ya leí algunos documentos y realicé algunos experimentos, pero sin mucha suerte. Me gustaría recibir consejos de EXPERTOS para que esto funcione.

Esto es lo que hice hasta ahora:

  1. Recibí datos tick por tick para el mes de julio de 2013. Tiene oferta / demanda / volumen de oferta / volumen de solicitud.
  2. Extrajo todos los ticks para el período de tiempo de 12 p.m. a 14 p.m. para todos los días.
  3. A partir de estos datos, se creó un conjunto de datos donde cada entrada consta de n valores de oferta en secuencia.
  4. Usó esos datos para entrenar un ANN con entradas n-1 y la salida es el enésimo valor de oferta previsto.
  5. El ANN tenía n-1 neuronas de entrada, (n-1) * 2 + 1 neurona oculta y 1 de salida. La capa de entrada tenía TF lineal, oculta tenía TF de registro y la salida tenía TF lineal.
  6. Entrenó la red con propagación hacia atrás con n-125 primero y luego 10.

Para ambos n, el MSE no cayó por debajo de 0.5 y se mantuvo en ese valor durante el entrenamiento completo. Suponiendo que esto podría deberse a que las series temporales son totalmente aleatorias, utilicé el paquete R para encontrar la autocorrelación parcial en el conjunto de datos (pacf). Esto dio valores distintos de cero solo para 2 y 3 rezagos.

Pregunta 1: ¿Qué significa esto exactamente?

Luego usé el exponente de hurst para evaluar la aleatoriedad. En R, hurst (valores) mostró valores superiores a 0.9.

Pregunta 2: Se supone que es casi al azar. ¿Debería tener un valor más cercano a 0.5?

Repetí el entrenamiento del ANN con n = 3. El ANN recibió capacitación y pudo obtener un valor bastante bajo para MSE. Sin embargo, el resultado calculado de este ANN no difiere mucho del (n-1) valor de la oferta. ¡Parece que ANN solo toma la última oferta como la próxima oferta! Probé diferentes estructuras de red (todas las percepciones de múltiples capas), diferentes parámetros de entrenamiento, etc., pero los resultados son los mismos.

Pregunta 3: ¿Cómo puedo mejorar la precisión? ¿Hay algún otro método de entrenamiento que no sea la propagación hacia atrás?

usuario1300
fuente
No estoy seguro de si lo hará mejor que predecir el ruido 1 / f cuando utilice valores pasados ​​como indicadores para los futuros. scholarpedia.org/article/1/f_noise#Stock_markets_and_the_GNP - sus resultados hasta ahora parecen consistentes con eso. Probablemente debería considerar otras características posibles que tienen alguna razón para correlacionarse con los tipos de cambio futuros. Si esto fuera fácil, habría científicos de datos más ricos.
Neil Slater
sí, tal vez otras variables están contribuyendo al siguiente valor más que los valores de la serie de tiempo en sí mismo. Experimentaré con eso también. Gracias por los consejos.
user1300

Respuestas:

6

Los resultados que está viendo no son un subproducto de su producto de capacitación, sino que neural netsno son una excelente opción para esta tarea. Neural netsson efectivamente un medio para crear una función no lineal de alto orden al componer una serie de funciones más simples. Esto a menudo es algo realmente bueno, porque permite que las redes neuronales se ajusten a patrones muy complejos.

Sin embargo, en una bolsa de valores, cualquier patrón complejo, cuando se negocia, decaerá rápidamente. La detección de un patrón complicado generalmente no generará resultados útiles, porque generalmente son patrones complejos a corto plazo. Además, dependiendo de la métrica que elija, hay varias formas de obtener buenos resultados que en realidad no valdrán la pena en la inversión (como simplemente predecir el último valor en su ejemplo).

Además, el mercado de valores es sorprendentemente caótico, lo que puede resultar en un neural netsobreajuste. Esto significa que los patrones que aprende se generalizarán mal. Algo similar a solo ver una disminución de las existencias en un día y decidir de manera uniforme que las existencias siempre disminuirán solo porque se vieron en un plazo relativamente corto. En cambio, las técnicas como ridgey robust regression, que identificarán patrones más generales y menos complejos, funcionan mejor.

El ganador de una competencia Kaggle similar utilizada robust regressionpor esta misma razón. Es probable que vea mejores resultados si cambia a un modelo de aprendizaje superficial que encontrará funciones de un orden polinómico inferior, sobre las funciones complejas profundas de una red neuronal.

indico
fuente
muchas gracias. Evaluaré una regresión robusta y veré cómo funciona.
user1300