32
TRADERS´ 04.2019
PORTADA
el gráfico dónde toma una posición y dónde la cierra.
La escritura de mensajes en una terminal donde se nos
informe de eventos no suele estar contemplado.
Sistema automático independiente a la plataforma:
La
programación de estos sistemas se hacen en un lenguaje
independientealaplataformadelbróker.Mediantefunciones
API (Application Programming Interface) se conectará con
ella y las órdenes serán colocadas o canceladas como si
de forma manual se tratara. No sólo habrá programada una
estrategia sino todo un sistema que mediante mensajes
en una terminal informará de condiciones de mercado,
escaneo de activos listos para ser operable, operaciones en
curso, envío de emails con avisos, etc.
Dos potentes lenguajes están disponibles para ello:
Python y R con librerías de trading, backtesting y el uso
de Machine Learning.
Para el ejemplo elegiremos Python pero R es igual de
bueno. En cuanto al uso de redes neuronales encontra-
remos cuatro librerías muy potentes: TensorFlow, Scikit-
learn, Pytorch y Keras. Una breve descripción sobre ellas
puede ver en el cuadro correspondiente.
Código de ejemplo con Keras
Se describirá a continuación el código de una estrategia
que utiliza Keras para predicción del movimientos de
precios de mini DAX utilizando para ello los datos de la
serie diaria del futuro del mini DAX. El código se puede
descargar desde
aquí .Primeramente se importan las librerías necesarias,
Numpy es una poderosa librería científica, Pandas es
usada para estructurar datos, en este caso, para coger
los datos descargados desde Yahoo Finance del mini DAX
desde el año 1996 hasta Abril del 2019 y poder tratarlos
más tarde. Talib es una herramienta ampliamente utili-
zada por desarrolladores con más de 200 indicadores
programados, muchos de ellos conocidos con MACD,
RSI, media móviles, estocástico, Bollinger, ADX etc. Aquí
será usada para coger alguno de ellos e implementar la
estrategia a la hora de búsqueda de señales de compra
o venta. A continuación otra función generará un número
pseudo aleatorio para comenzar el entrenamiento.
El ficher
o “ csv ”generado enYahoo Finance estará ubicado
en c:\tmp y se prepara la data usando además una media
móvil simple de 10 períodos y un RSI de 9 períodos.
Con la función dataset.dropna() se elimina de la data filas
vacías si las hubiese.
Dos marcos de datos que almacenarán las entradas y
las variables de salida (representado gráficamente en el
esquema de una red neuronal de la figura 1). “X” almace-
nará las entidades de entrada. “Y” almacenará el valor a
predecir: aumento del precio.
Observamos que cada vez que realiza una pasada (epoch o época) va ofreciendo un porcentaje de aciertos que comienza sobre el 53%
Fuente: Ejecución en Python con Keras por
tradingalgoritmico.comG1
Inicio de la fase de aprendizaje