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:
- Recibí datos tick por tick para el mes de julio de 2013. Tiene oferta / demanda / volumen de oferta / volumen de solicitud.
- Extrajo todos los ticks para el período de tiempo de 12 p.m. a 14 p.m. para todos los días.
- A partir de estos datos, se creó un conjunto de datos donde cada entrada consta de n valores de oferta en secuencia.
- Usó esos datos para entrenar un ANN con entradas n-1 y la salida es el enésimo valor de oferta previsto.
- 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.
- 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?
fuente
Respuestas:
Los resultados que está viendo no son un subproducto de su producto de capacitación, sino que
neural nets
no son una excelente opción para esta tarea.Neural nets
son 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 net
sobreajuste. 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 comoridge
yrobust regression
, que identificarán patrones más generales y menos complejos, funcionan mejor.El ganador de una competencia Kaggle similar utilizada
robust regression
por 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.fuente
Pruebe con una red neuronal recurrente, un modelo muy adecuado para datos de series temporales. Son notoriamente difíciles de entrenar, pero parecen funcionar bien cuando se entrenan adecuadamente: http://cs229.stanford.edu/proj2012/BernalFokPidaparthi-FinancialMarketTimeSeriesPredictionwithRecurrentNeural.pdf
fuente