Importar Ficheros HST en Python y R

Dedicado a Paduel por su incansable labor difundiendo la programación en Python

 

Seguramente recordéis a Antonio Rodríguez aka Paduel, al cual entrevistamos hace unos meses aquí en X-Trader.net. Antonio realiza una excelente labor ayudando a todo aquel que desee aprender a programar en Python y aplicarlo al trading desde su grupo en Telegram, Python para Trading

Recientemente Paduel me avisaba de que había creado una función para poder leer directamente los archivos en formato HST desde Python. Para los que no lo sepan, el formato HST almacena los históricos para cada símbolo y timeframe en Metatrader y se almacenan dentro de la carpeta history\<nombre_servidor_broker> que cuelga de la carpeta de datos de cada Metatrader. Se trata de ficheros binarios que almacenan toda la información y que pueden ser leídos offline, sin necesidad de tener conexión al broker.


Ejemplo de ruta de los archivos HST en Metatrader

La cuestión es que hasta la fecha, si queríamos leer estos datos desde Python o R, no nos quedaba otra que exportarlos a CSV desde el History Center de Metatrader, una tarea sin lugar a dudas bastante tediosa. Afortunadamente Paduel nos da la solución con las dos funciones que podéis encontrar en el siguiente Gist que tiene Paduel en GitHub. En particular, podéis encontrar la función para Python 3 en https://gist.github.com/paduel/44513e5373ad88ec1d7b71e03bd90603. Una vez importada la función dentro del código, ya sea en nuestro script o en un Jupyter Notebook, basta con llamar a la función con el nombre del archivo como argumento tal que:

df = read_hst('EURUSD15.hst')

Con esa línea estaremos creado una variable llamada df que recibirá un dataframe de Pandas conteniendo el histórico del EURUSD en timeframe de 15 minutos directamente desde Metatrader. Todo en cuestión de segundos y sin tener que ponerse a hacer conversiones. ¡¡¡Bravo Paduel!!!

Como soy un poco tocapelotas, me decidí a echarle morro y comentarle a Paduel en Twitter que todo esto del Python está muy bien (de hecho me parece impresionante la comunidad que se ha creado y la ingente cantidad de recursos que existen para este entorno de programación), pero que estaría muy bien tenerlo para R (ya saben, mi eterna pelea, ¡Python vs R! :D). Finalmente quedamos en que Paduel me daba el punto de partida y yo lo remataba.

Conversacion entre Paduel y X-Trader en Twitter

Sin embargo a Paduel le dio un ataque y en un par de días sacó la versión para R del invento que podéis encontrar en https://gist.github.com/paduel/3a163cd363b06f418663a9723340eb1d. Una vez importemos la función dentro de R, instalad el paquete Anytime y teclead por ejemplo lo siguiente (es importante que el archivo HST esté en la carpeta de trabajo que hayamos definido en R):

df<-read_hst("GBPJPY60.hst")

Con esa sencilla línea importamos el histórico del par GBPJPY en timeframe de 1 hora. Si todo ha ido bien, habremos creadoun dataframe en R con todos los datos del archivo HST. Para comprobarlo, basta con teclear head(df) y ver que tenemos almacenados las columnas con los datos como en el siguiente pantallazo:


Ahora ya no hay excusa para trastear con los datos de Metatrader directamente en Python y/o R, ¡a trabajar!

 

Saludos,
X-Trader


Artículos Relacionados


Generar un Fichero con Histórico Intradía con Amibroker

Generar un Fichero con Histórico Intradía con Amibroker

En el siguiente artículo remitido por Tolo, os comentamos la forma de generar un fichero intradía de x minutos con el histórico de un valor, con la posibilidad de hacerlo cada n minutos. Para ello...

MQL4 para Novatos IV

MQL4 para Novatos IV

Continuamos con la serie sobre el lenguaje MQL. En esta ocasión se abordan las principales funciones de indicadores técnicos que trae incorporadas de serie.

¿Adiós Metatrader 4?

¿Adiós Metatrader 4?

Parece que los rumores comienzan a ser ciertos: la versión 4 de Metatrader no tiene cabida en los futuros planes de negocio de MetaQuotes. En este artículo, todos los detalles al respecto.

StatCollect o Cómo Mejorar un Grid

StatCollect o Cómo Mejorar un Grid

Con la herramienta StatCollect de ArgoLab podéis refinar vuestros estrategias basadas en grids analizando las características estadísticas del mercado en el que vayáis a operar.

Copiando Operaciones en Metatrader

Copiando Operaciones en Metatrader

Casualmente hoy en mis viajes por la Red me he topado con dos copiadores de operaciones para Metatrader mediante los que es posible replicar la operativa de cualquier Expert Advisor en otro...

Históricos en Metatrader II

Históricos en Metatrader II

En este artículo revisamos algunos servicios de históricos para Metatrader que pueden resultarnos de gran utilidad a la de realizar backtests precisos de nuestras estrategias.