Trading Tools: Ejemplo de formulario con VCDataSource
Hace unos meses les presentamos un ejemplo de diseño de formulario en el que se hacía uso de la tecnología COM, mediante la cual era posible, desde la aplicación cliente, utilizar datos de tiempo real usando Visual Chart 6 como proveedor de datos. Para ello, usábamos los métodos y funciones propios de la librería VCRealTime. Pueden acceder a dicho artículo desde el siguiente enlace.
Puesto que las Trading Tools no sólo facilitan datos de tiempo real, sino que además es posible, entre otras cosas, solicitar información relativa a los resultados históricos de valores, indicadores o estrategias, esta semana les facilitamos otro ejemplo de formulario dedicado específicamente a ello.
Pueden descargar el proyecto desde el siguiente enlace:
Ejemplo DataSource Form
Acerca de la aplicación
Como decimos, la aplicación cliente consiste en un formulario que nos permite o bien extraer los datos de una estrategia, o bien los de un indicador. Ambos aplicados a un valor dentro de una compresión de tiempo y fechas concretas.
Si ponemos en marcha el ejecutable (es necesario hacerlo con permisos de administrador), observaremos la siguiente ventana:
Por defecto, aparece el formulario para la extracción de datos de una estrategia. A la izquierda, vemos los datos que es necesario rellenar antes de poner en marcha el proceso. Y a la derecha la tabla donde
se exportarán los datos.
Si directamente le damos al botón OK, descargará los resultados de la estrategia ADXBAND System aplicada sobre el Futuro del Dax en 5 minutos para el intervalo entre el 11 de noviembre de 2016 y el 1 de enero de 2017. La información extraída se representa de la siguiente forma:
Si seleccionamos la pestaña de Indicadores, podemos ver que el formato es similar:
A la izquierda se especifica qué indicador se quiere analizar, y a la derecha la tabla donde se verán los resultados. Nuevamente, si le damos directamente al botón OK, descargará el valor de la media simple sobre el Futuro del Dax en 5 minutos para el mismo intervalo que antes, tal y como podemos ver en la siguiente imagen:
Tanto en el caso de los indicadores como en el de las estrategias, se aplican los parámetros predeterminados y por tanto no pueden modificarse.
Diseño de la aplicación
A efectos de la programación, el proyecto se apoya en el uso de las clases estáticas de la librería VCDataSourceLib. En concreto, hace uso de cuatro objetos de esas clases, declarados al principio del código del formulario:
1. La clase DataSourceManager incluye la colección de métodos y funciones que nos permiten crear al resto de objetos. Por tanto, se presenta como imprescindible su uso.
2. La clase DataSerie incluye la colección de métodos y funciones que hacen referencia a la información de los valores (precios, volumen, etcétera).
3. La clase System incluye la colección de métodos y funciones asociados a las estrategias.
4. La clase Indicator incluye la colección de métodos y funciones asociados a los indicadores.
De las cuatro, el objeto DataSourceManager y el objeto DataSerie son imprescindibles, puesto que para utilizar a los otros objetos se precisa de la existencia de estos.
El resto del código se divide en dos regiones: Por un lado, todo lo relativo a la extracción de datos de las estrategias (región Fuente Sistemas) y por otro, lo relativo a la extracción de datos de indicadores (región Fuente Indicadores).
Cabe destacar los métodos necesarios para la creación de los objetos fuente, sistema e indicador.
1. Para la creación del objeto fuente, se hace uso del método NewDataSerie() de la clase DataSourceManager:
2. Para la creación del objeto sistema, se hace uso del método NewSystem() de la clase DataSourceManager. Este método solicita dos campos obligatorios: El código del sistema y un objeto de la clase DataSource. Inicialmente, desconocemos ambos, puesto que sólo contamos con el nombre (o alias) con el que se conoce a la estrategia y con un objeto de la clase DataSerie. Para obtener ambos datos, hacemos lo siguiente:
- Primero, extraemos el código de la estrategia buscándolo dentro del catálogo usando el nombre de la estrategia. Para ello creamos la función Buscar_Codigo_Sis():
- Y segundo, obtenemos el objeto DataSource mediante el método GetDataSource() nuevamente de la clase DataSourceManager. Para ello, utilizamos la propiedad ID del objeto fuente y se la pasamos como parámetro.
El resultado final sería el siguiente:
3. Para la creación del objeto indicador, el proceso es idéntico al utilizado anteriormente, tan sólo cambia el método para la creación de indicadores, que en este caso sería NewIndicator():
Puesto que las Trading Tools no sólo facilitan datos de tiempo real, sino que además es posible, entre otras cosas, solicitar información relativa a los resultados históricos de valores, indicadores o estrategias, esta semana les facilitamos otro ejemplo de formulario dedicado específicamente a ello.
Pueden descargar el proyecto desde el siguiente enlace:
Ejemplo DataSource Form
Acerca de la aplicación
Como decimos, la aplicación cliente consiste en un formulario que nos permite o bien extraer los datos de una estrategia, o bien los de un indicador. Ambos aplicados a un valor dentro de una compresión de tiempo y fechas concretas.
Si ponemos en marcha el ejecutable (es necesario hacerlo con permisos de administrador), observaremos la siguiente ventana:
Por defecto, aparece el formulario para la extracción de datos de una estrategia. A la izquierda, vemos los datos que es necesario rellenar antes de poner en marcha el proceso. Y a la derecha la tabla donde
se exportarán los datos.
Si directamente le damos al botón OK, descargará los resultados de la estrategia ADXBAND System aplicada sobre el Futuro del Dax en 5 minutos para el intervalo entre el 11 de noviembre de 2016 y el 1 de enero de 2017. La información extraída se representa de la siguiente forma:
Si seleccionamos la pestaña de Indicadores, podemos ver que el formato es similar:
A la izquierda se especifica qué indicador se quiere analizar, y a la derecha la tabla donde se verán los resultados. Nuevamente, si le damos directamente al botón OK, descargará el valor de la media simple sobre el Futuro del Dax en 5 minutos para el mismo intervalo que antes, tal y como podemos ver en la siguiente imagen:
Tanto en el caso de los indicadores como en el de las estrategias, se aplican los parámetros predeterminados y por tanto no pueden modificarse.
Diseño de la aplicación
A efectos de la programación, el proyecto se apoya en el uso de las clases estáticas de la librería VCDataSourceLib. En concreto, hace uso de cuatro objetos de esas clases, declarados al principio del código del formulario:
1. La clase DataSourceManager incluye la colección de métodos y funciones que nos permiten crear al resto de objetos. Por tanto, se presenta como imprescindible su uso.
2. La clase DataSerie incluye la colección de métodos y funciones que hacen referencia a la información de los valores (precios, volumen, etcétera).
3. La clase System incluye la colección de métodos y funciones asociados a las estrategias.
4. La clase Indicator incluye la colección de métodos y funciones asociados a los indicadores.
De las cuatro, el objeto DataSourceManager y el objeto DataSerie son imprescindibles, puesto que para utilizar a los otros objetos se precisa de la existencia de estos.
El resto del código se divide en dos regiones: Por un lado, todo lo relativo a la extracción de datos de las estrategias (región Fuente Sistemas) y por otro, lo relativo a la extracción de datos de indicadores (región Fuente Indicadores).
Cabe destacar los métodos necesarios para la creación de los objetos fuente, sistema e indicador.
1. Para la creación del objeto fuente, se hace uso del método NewDataSerie() de la clase DataSourceManager:
2. Para la creación del objeto sistema, se hace uso del método NewSystem() de la clase DataSourceManager. Este método solicita dos campos obligatorios: El código del sistema y un objeto de la clase DataSource. Inicialmente, desconocemos ambos, puesto que sólo contamos con el nombre (o alias) con el que se conoce a la estrategia y con un objeto de la clase DataSerie. Para obtener ambos datos, hacemos lo siguiente:
- Primero, extraemos el código de la estrategia buscándolo dentro del catálogo usando el nombre de la estrategia. Para ello creamos la función Buscar_Codigo_Sis():
- Y segundo, obtenemos el objeto DataSource mediante el método GetDataSource() nuevamente de la clase DataSourceManager. Para ello, utilizamos la propiedad ID del objeto fuente y se la pasamos como parámetro.
El resultado final sería el siguiente:
3. Para la creación del objeto indicador, el proceso es idéntico al utilizado anteriormente, tan sólo cambia el método para la creación de indicadores, que en este caso sería NewIndicator():
Comentarios
Publicar un comentario