Trading Tools: Extracción de estadísticas de sistemas (II).
En la anterior entrada donde tratamos este tema, comentamos que, a la hora de estudiar las estadísticas de un sistema usando el objeto VCDS_System, existía un caso especial de sistemas que requería de su análisis por separado.
Los sistemas en cuestión eran aquellos que necesitaban más de un gráfico (data) para poder funcionar. Por ejemplo, porque estemos operando sobre barras de 1 minuto, pero la información la extraemos de una compresión mayor de, por ejemplo, 20 minutos.
A continuación, vamos a detallar cómo trabajar en estos casos con la hoja Excel que pusimos de ejemplo.
Configuración de la Hoja Excel con Sistemas con más de un gráfico.
Si recordamos, la interfaz de la hoja tenía varios campos que el usuario debía rellenar manualmente antes de iniciar la descarga de datos:
En las columnas M y O aparecían dos campos a los que hemos denominado Compresion2 y Compresion3.
Si el sistema que vamos a analizar usa un gráfico de 1 minuto y otro mayor de 5 minutos, entonces pondremos lo siguiente:
Tipo Compresión = Minutes
Compresión = 1
Compresion2Type = Minutes
Compresion2 = 5
Compresion3Type = No se usa
Haciendo esto, ya hemos especificado que vamos a necesitar un segundo gráfico.
Si el sistema requiere tres gráficos, como cabe de esperar, entonces deberemos especificar también el tipo de gráfico de la tercera compresión.
Explicación del código de programación.
Anteriormente indicábamos que, para extraer los datos estadísticos, necesitábamos crear los siguientes objetos:
1. Un objeto de tipo VCDS_DataSourceManager
2. Un objeto de tipo VCDS_DataSerie
3. Un objeto de tipo VCDS_System
Cuando especificamos que vamos a usar un segundo o un tercer gráfico, además, vamos a necesitar crear dos objetos más del tipo VCDS_DataSerie.
El desarrollo y comprobación del uso de más de un gráfico, la realizamos en el código tras haber creado el objeto VCDS_DataSerie principal:
El aspecto fundamental que hay que comprender es que, cuando creamos fuente2 y fuente3, al hacer la llamada al método NewDataSerie, le pasamos el campo Context indicando que coja el mismo contexto que la fuente principal. Haciendo esto, hemos vinculado las distintas fuentes dentro del mismo contexto: Equivaldría a insertar en la misma ventana varios gráficos.
Una vez hecho esto, podemos realizar la llamada al método NewSystem sin tener que especificarle nada nuevo.
Por último, para este ejemplo Excel en concreto, damos al usuario la opción de usar dos gráficos más de distinta compresión (si el sistema los requiere) pero usando el mismo símbolo. No obstante, siempre se puede dejar abierta la posibilidad de definir si los gráficos suplementarios van a usar el mismo símbolo u otro cualquiera: Sencillamente, cambiaríamos el campo SymbolCode del método NewDataSerie.
Los sistemas en cuestión eran aquellos que necesitaban más de un gráfico (data) para poder funcionar. Por ejemplo, porque estemos operando sobre barras de 1 minuto, pero la información la extraemos de una compresión mayor de, por ejemplo, 20 minutos.
A continuación, vamos a detallar cómo trabajar en estos casos con la hoja Excel que pusimos de ejemplo.
Configuración de la Hoja Excel con Sistemas con más de un gráfico.
Si recordamos, la interfaz de la hoja tenía varios campos que el usuario debía rellenar manualmente antes de iniciar la descarga de datos:
En las columnas M y O aparecían dos campos a los que hemos denominado Compresion2 y Compresion3.
Si el sistema que vamos a analizar usa un gráfico de 1 minuto y otro mayor de 5 minutos, entonces pondremos lo siguiente:
Tipo Compresión = Minutes
Compresión = 1
Compresion2Type = Minutes
Compresion2 = 5
Compresion3Type = No se usa
Haciendo esto, ya hemos especificado que vamos a necesitar un segundo gráfico.
Si el sistema requiere tres gráficos, como cabe de esperar, entonces deberemos especificar también el tipo de gráfico de la tercera compresión.
Explicación del código de programación.
Anteriormente indicábamos que, para extraer los datos estadísticos, necesitábamos crear los siguientes objetos:
1. Un objeto de tipo VCDS_DataSourceManager
2. Un objeto de tipo VCDS_DataSerie
3. Un objeto de tipo VCDS_System
Cuando especificamos que vamos a usar un segundo o un tercer gráfico, además, vamos a necesitar crear dos objetos más del tipo VCDS_DataSerie.
El desarrollo y comprobación del uso de más de un gráfico, la realizamos en el código tras haber creado el objeto VCDS_DataSerie principal:
Set fuente = g_Objects.NewDataSerie(Simbolo, GetCompresion(CboTipoComp.Text), compresion, FechaIni, FechaFin)
If Err.Number = 0 And fuente.Size > 0 Then
Exito = True
Else
Exito = False
End If
'--- uso de compresiones mayores
If Exito Then
If CboTipoComp2.Text <> "No se usa" Then
Set fuente2 = g_Objects.NewDataSerie(Simbolo, GetCompresion(CboTipoComp2.Text), compresion2, FechaIni, FechaFin, fuente.context)
'incluir en el mismo contexto que la fuente principal
Err.Clear
If Err.Number <> 0 Or fuente2.Size = 0 Then
Exito = False
End If
End If
If CboTipoComp3.Text <> "No se usa" Then
Set fuente3 = g_Objects.NewDataSerie(Simbolo, GetCompresion(CboTipoComp3.Text), compresion3, FechaIni, FechaFin, fuente.context)
'incluir en el mismo contexto que la fuente principal
If Err.Number <> 0 Or fuente3.Size = 0 Then
Exito = False
End If
End If
End If
El aspecto fundamental que hay que comprender es que, cuando creamos fuente2 y fuente3, al hacer la llamada al método NewDataSerie, le pasamos el campo Context indicando que coja el mismo contexto que la fuente principal. Haciendo esto, hemos vinculado las distintas fuentes dentro del mismo contexto: Equivaldría a insertar en la misma ventana varios gráficos.
Una vez hecho esto, podemos realizar la llamada al método NewSystem sin tener que especificarle nada nuevo.
Por último, para este ejemplo Excel en concreto, damos al usuario la opción de usar dos gráficos más de distinta compresión (si el sistema los requiere) pero usando el mismo símbolo. No obstante, siempre se puede dejar abierta la posibilidad de definir si los gráficos suplementarios van a usar el mismo símbolo u otro cualquiera: Sencillamente, cambiaríamos el campo SymbolCode del método NewDataSerie.
Comentarios
Publicar un comentario