Para usar ML en el comercio, comenzamos con datos históricos (precios de acciones / datos de forex) y agregamos indicadores para construir un modelo en R / Python / Java. Luego seleccionamos el algoritmo de aprendizaje automático adecuado para hacer las predicciones.
Primero, veamos algunos de los términos relacionados con ML.
Algoritmos de aprendizaje automático: hay muchos algoritmos de ML (lista de algoritmos) diseñados para aprender y hacer predicciones sobre los datos. Los algoritmos de ML se pueden usar para predecir una categoría (problema de clasificación de abordaje) o para predecir la dirección y la magnitud (problema de regresión de abordaje).
- ¿Cómo maneja R las operaciones en grandes conjuntos de datos?
- ¿Qué tan malo es estandarizar variables ficticias?
- ¿Es posible la carrera en ciencia de datos sin codificación o muy poca codificación?
- ¿Cuán estrechamente está relacionada la analítica de big data con el aprendizaje automático?
- Cuando observamos el muestreo, ¿por qué necesitamos 30 datos?
Ejemplos:
- Predecir el precio de una acción en 3 meses a partir de ahora, sobre la base de los últimos resultados trimestrales de la compañía.
- Predecir si la Fed aumentará su tasa de interés de referencia.
Indicadores / Características: los indicadores pueden incluir indicadores técnicos (EMA, BBANDS, MACD, etc.), indicadores fundamentales o indicadores macroeconómicos.
Ejemplo 1 – RSI (14), Precio – SMA (50) y CCI (30). Podemos usar estos tres indicadores, para construir nuestro modelo, y luego usar un algoritmo de ML apropiado para predecir valores futuros.
Ejemplo 2 – RSI (14), RSI (5), RSI (10), Precio – SMA (50), Precio – SMA (10), CCI (30), CCI (15), CCI (5)
En este ejemplo, hemos seleccionado 8 indicadores. Algunos de estos indicadores pueden ser irrelevantes para nuestro modelo. Para seleccionar el subconjunto correcto de indicadores, utilizamos técnicas de selección de características.
Selección de características: es el proceso de seleccionar un subconjunto de características relevantes para usar en el modelo. Las técnicas de selección de funciones se clasifican en 3 amplias categorías: métodos de filtro, métodos basados en envoltorios y métodos integrados. Para seleccionar el subconjunto correcto, básicamente utilizamos un algoritmo ML en alguna combinación. Las características seleccionadas se conocen como predictores en el aprendizaje automático.
Support Vector Machine (SVM): SVM es un algoritmo bien conocido para el aprendizaje automático supervisado, y se utiliza para resolver problemas de clasificación y regresión.
Un algoritmo SVM funciona en los puntos de datos etiquetados y los separa a través de un límite o un hiperplano. SVM intenta maximizar el margen alrededor del hiperplano de separación. Los vectores de soporte son los puntos de datos que se encuentran más cerca de la superficie de decisión.
Reglas de encuadre para una estrategia de forex usando SVM en R: dada nuestra comprensión de las características y SVM, comencemos con el código en R. Hemos seleccionado el par de divisas EUR / USD con un marco de tiempo de 1 hora que se remonta a 2010. Indicadores utilizados aquí están MACD (12, 26, 9) y SAR parabólico con configuraciones predeterminadas de (0.02, 0.2).
Primero, cargamos las bibliotecas necesarias en R, y luego leemos los datos EUR / USD. Luego calculamos MACD y SAR parabólico utilizando sus respectivas funciones disponibles en el paquete “TTR”. Para calcular la tendencia, restamos el precio de cierre EUR / USD del valor SAR para cada punto de datos. Retrasamos los valores del indicador para evitar sesgos de anticipación. También creamos una clase Up / down basada en el cambio de precio.
Posteriormente fusionamos los indicadores y la clase en un marco de datos llamado datos del modelo. Los datos del modelo se dividen en capacitación y datos de prueba.
Luego usamos la función SVM del paquete “e1071” y entrenamos los datos. Hacemos predicciones usando la función de predicción y también trazamos el patrón. Estamos obteniendo una precisión del 53% aquí.
De la gráfica vemos dos áreas distintas, un área superior más grande en rojo donde el algoritmo hizo predicciones cortas, y el área inferior más pequeña en azul donde se alargó.
El indicador SAR sigue el precio a medida que la tendencia se extiende con el tiempo. El SAR está por debajo de los precios cuando los precios suben y por encima de los precios cuando los precios bajan. El SAR se detiene y se revierte cuando la tendencia del precio se revierte y se rompe por encima o por debajo. Estamos interesados en el cruce de precio y SAR, y por lo tanto estamos tomando medidas de tendencia como la diferencia entre precio y SAR en el código. De manera similar, estamos utilizando los valores del histograma MACD, que es la diferencia entre los valores de la línea MACD y la línea de señal.
Mirando el diagrama, enmarcamos nuestras dos reglas y las probamos sobre los datos de prueba.
Regla corta = (Precio – SAR)> -0.0025 y (Precio – SAR) -0.0010 y MACD <0.0010
Regla larga = (Precio – SAR)> -0.0150 y (Precio – SAR) -0.0005
Estamos obteniendo un 54% de precisión para nuestras operaciones cortas y una precisión del 50% para nuestras operaciones largas. El algoritmo SVM parece estar haciendo un buen trabajo aquí. Nos detenemos en este punto, y en nuestra próxima publicación sobre Aprendizaje automático veremos cómo las reglas enmarcadas como las que se diseñaron anteriormente se pueden codificar y probar para verificar la viabilidad de una estrategia comercial.
Descargue estos archivos de código en Machine Learning y su aplicación en los mercados de divisas [MODELO DE TRABAJO]