Convertir Ficheros ASCII a XPO

Tras las múltiples peticiones recibidas de lectores y foristas, en este artículo os explicamos cómo pasar un archivo con datos en ASCII al formato nativo del Global Server de Tradestation o, en su defecto, cargar directamente el fichero ASCII en Tradestation. Dado que los que suelen dar más problemas son los datos intradiarios, paso a explicaros cómo se realizaría el proceso con ellos, dando por supuesto que, por analogía, sabreís pasar datos diarios con las indicaciones que os voy a dar 😉

Para poder seguir el tutorial, además de Tradestation, necesitareís los siguientes programas:

– Evidentemente, lo primero que necesitamos es un programa que permita la descarga de históricos diarios e intradiarios en formato ASCII. Para ello, ¿quién mejor sino que Visual Chart?

– Seguidamente, espero que tengais Microsoft Excel (cualquiera de sus versiones) y/o un útil programa de edición de texto en castellano, el TextPad, que podeís descargaros haciendo click aquí.

– Y por supuesto necesitareis un excelente conversor de ASCII a XPO que encontró uno de nuestros foristas, Mareado, que podeís descargar dirigiendoos a Hypertrader.it (requiere registro como usuario de su foro antes de poder descargar el archivo).

Con todo esto, ya podeís cargar cualquier fichero ASCII en Tradestation o convertirlo a XPO para poder enlazarlo con series de datos en tiempo real. Veamos cómo…

1. CARGAR UN FICHERO ASCII EN TRADESTATION
Posiblemente ésta sea la forma más sencilla de cargar datos externos en Tradestation si sólo quereis testear y optimizar sistemas. Para ello, lo primero que tenemos que hacer es obtener datos en ASCII. Abrimos Visual Chart y cargamos un gráfico con los datos que deseemos introducir en Tradestation (os recomiendo que cargueis datos a 1 minuto para que luego en Tradestation podais jugar con diferentes escalas). Seguidamente seleccionamos el gráfico y pulsamos con el botón derecho en él; seleccionamos la opción «Exportar gráfico a formato texto…» le damos nombre y guardamos el archivo en la carpeta que deseemos.

Bien, ya tenemos un histórico en ASCII. Ahora tenemos que retocar un poco el archivo de texto. Para ello, lo abrimos con el programa Textpad (muy buen editor, recomendable para todo tipo de tareas) y lo modificamos tal y como os indico:

– Borrad la primera fila (contiene los encabezados de cada columna, no lo necesitamos pero si quereis apuntaros el orden de las columnas por si se os olvida ;-))

– Id al menu Configurar y seleccionad Modo Selección de Bloque.

– Con dicho modo activado ya podemos eliminar columnas del archivo. Ahora debeis eliminar las dos primeras columnas hasta la segunda coma, esto es, la que contienen el ticker (por ejemplo, ESTX50) y la periodicidad (en nuestro caso, una I de intradía). Seguidamente debeis eliminar los dos ultimos ceros que van al final de la hora (es decir, si pone 100500, que serían las 10:05 h., debeis eliminar los dos últimos ceros). Si no quereis complicaros seleccionando con el ratón, podeis realizar rápidamente la edición haciendo click al principio de la columna que deseais seleccionar y seguidamente, manteniendo pulsada la tecla Shift (la de debajo de Bloq Mayusculas) hacer click al final de la columna; una vez seleccionada no teneís más que pulsar la tecla Suprimir y ya está.

Otra posibilidad de hacer todo esto de forma sencilla, es abrir el archivo con Excel, indicarle que las columnas están separadas por comas, marcar todos los campos como Texto e indicar que el separador decimal es un punto (si quereis más detalles sobre esto mandadme un correo aunque si habeis usado Excel para editar ficheros de texto no tendreis problemas para hacer esto…). Una vez abierto el fichero eliminad la primera fila y las dos primeras columnas. Para retocar la hora simplemente podeis extraer los cuatro primeros dígitos de la columna que contiene la hora en otra columna con la función EXTRAE de Excel y después reemplazar la columna de la hora original por esta nueva. Luego guardais los datos como archivo CSV, aunque os guardará los campos separados por punto y coma (;) en lugar de coma (,). Por ello, una vez guardado el archivo, abridlo con Textpad y reemplazad todos los puntos y coma (;) por comas (,), vereis que es mucho más rápido que el Bloc de Notas haciendo esta tarea.

Personalmente a mi me gusta más hacerlo con Excel pero entiendo que haya personas que no lo tengan o que se apañen mejor con el Textpad, por eso os comento las dos formas.

Ahora no teneis más que abrir Tradestation, crear un nuevo Workspace e insertar un nuevo gráfico haciendo click en el icono de la hoja con barras verdes. Ahi debeís seleccionar 3rd Party Directory y pulsar en el botón New Dir… para seleccionar la carpeta en la que teneis el archivo TXT (ó CSV) que habeis retocado. Seleccionais el archivo y le dais a Plot. Os aparecerá un menu en el que os pide el orden de los campos; al ser datos intradiarios, debeis coger el segundo (Date-Time-Open-High-Low-Close-Vol-OpenInt) y antes de dar a OK seleccionad cuidadosamente el formato de fecha que, en el caso de Visual Chart, es Year-Month-Day.

Si habeis hecho todo correctamente, se os abrirá una pantalla donde podeís definir los parámetros del activo que estamos insertando (ticker, horario de las sesiones, etc.). Rellenamos los campos que creamos convenientes (no olvideis indicar en Display Value el valor As Is para que no haya problemas con la escala) y pulsamos en OK. Finalmente llegamos a la ventana en la que podemos definir las fechas del gráfico y la periodicidad. Para comprobar que habeis hecho bien todo, os recomiendo que la primera vez cargueis el histórico entero y comprobeis que todo es correcto. Una vez que ya teneis todo el histórico cargado no teneis más que guardar el Workspace con el nombre que os apetezca.

Ahora que ya sabeis como se carga un archivo de texto en Tradestation, podeís construiros vuestras propias bases de datos en ASCII en una carpeta que contenga los ficheros retocados para cargarlos cuando querais testear y optimizar un sistema.

2. CONVERTIR UN ARCHIVO ASCII A XPO
Sin embargo el método anterior se nos queda corto si deseamos coger un histórico de Visual Chart y encadenarlo con datos en tiempo real, por ejemplo, los que recibimos de la TWS a través de Metaserver. Básicamente no podremos hacerlo ya que para ello necesitaremos que el histórico esté en formato XPO (esto es, almacenado por el Global Server). No existen demasiados programas que hagan esta conversión (y menos que trabajen de forma correcta con datos intradiarios): entre ellos, cabe señalar HistoryCentre (de los creadores de Metaserver), DataShark (aunque la demo que he estado manejando no me entusiasmó demasiado) y una pequeña joya gratuita que nos llega desde Italia: Hypertools.

Los pasos a seguir para convertir el fichero ASCII que retocamos en el paso anterior a XPO con Hypertools son los siguientes:

– Abrimos Hypertools y hacemos doble click en el asistente Ascii to XPO.

– Pulsando en Next nos aparecerá una ventana que nos pide la periodicidad de los datos que vamos a convertir, el fichero que contiene los datos y el nombre que tendrá el archivo de salida.

– Una vez seleccionadas las opciones anteriores, confirmamos en la ventana siguiente que todos los datos son correctos. Para ello no teneis más que mirar que los datos que aparecen en la ventana inferior se corresponden con los de la ventana superior. Si todo está en orden le dais a Next.

– Ahora en la siguiente ventana tenemos que especificar las características del producto que estamos convirtiendo. Para ello, indicamos el mercado y la categoría a la que pertenece el producto y el proveedor (importante: poned siempre DBC Online como proveedor si trabajais con Metaserver, o el feed de datos que creais conveniente si usais otro). La hora podeis dejarla como está y en la casilla «During import use symbol…» poned el simbolo que definira a los datos en el Global Server (tened cuidado de no poner uno que ya esté definido en el Global Server o al importar el XPO se os borrarán los datos que tengaís…).

Una vez pulsamos en el boton Finish ya tenemos configuradas las opciones de conversion. Ahora no tenemos más que ir a File -> Execute… o pulsar en el botón de la exclamación roja y el programa empezará a convertir a XPO. Si hubiera algun fallo el programa nos informará de él pero lo normal es que termine la conversión y guarde el archivo en la carpeta que le hayamos indicado (al término de la conversión de todas formas no está de más que confirmemos que en esa carpeta se nos ha generado un archivo XPO).

Ya solo nos falta incorporar este archivo a la base de datos del Global Server. Para ello, abrimos el Global Server en modo Offline y vamos a File -> Import Data -> Global Server format. En el asistente que nos aparecerá, pulsamos en Browse y seleccionamos el archivo XPO que acabamos de generar y le damos a Abrir. Si por un casual en la ventana hubiera más de un archivo XPO aseguraos de que solo está seleccionado el que deseais convertir (si hubiera más de uno podemos tener errores). Le damos a Siguiente y nos preguntará qué simbolo deseamos convertir; dicho simbolo deberá coincidir con el que le indicamos en su momento en Hypertools cuando configuramos la conversión. Le damos a Siguiente y nos preguntará si es correcta la resolución de los datos (por ejemplo, 1 minuto). Pulsamos en Siguiente y pasamos a configurar las fechas y las horas de los datos (es importante que la primera fecha coincida con la primera fecha del histórico). Una vez hecho esto, pulsamos en Finalizar y voila!!! Ya tenemos el simbolo importado en el Global Server con todos los datos importados. Ahora no teneis más que abrir Tradestation, insertar un gráfico, seleccionar Global Server y en esa lista os aparecerá el simbolo que acabais de importar. Lo seleccionais, aceptais, lo configurais a vuestro gusto y, si habeis seguido todos los pasos correctamente, tendreís en pantalla el gráfico con los datos del simbolo importado sobre el que podeis cargar datos en tiempo real desde Metaserver o desde cualquier otro feed en tiempo real..

Un saludo
X-Trader

COMPARTIR EN: