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:

    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

Entradas populares de este blog

Trading Tools: Descarga de históricos para Visual Chart 6

Indicador Cuidatar

El indicador Volume Distribution