TradingTools: Extracción de Estadísticas de un Portfolio

En anteriores entradas de nuestro blog, presentábamos una opción para extraer de manera directa las  estadísticas de un sistema a una hoja Excel a través de las Trading Tools.

En el presente artículo, presentamos una nueva modalidad. En esta ocasión, vamos a poder analizar los resultados obtenidos por un conjunto de sistemas previamente definidos.

Pueden descargar la hoja Excel desde el siguiente enlace:

Ejemplo EstadisticaPortfolio



Cómo utilizar la hoja de Estadísticas Porfolio

El proceso que seguiremos inicialmente es similar al de la versión anterior. Para más detalles, pueden consultar dicha entrada.
La diferencia en este caso se centra en la descripción de la lista de sistemas que vamos a usar. Esta información se rellena en las cuatro primeras columnas de la hoja Excel:

También debemos especificar el rango de fechas durante las cuales se realizará el estudio estadístico.


Por último, si queremos obtener los resultados en términos porcentuales o de dinero.




Datos devueltos

Una vez ponemos en marcha la aplicación, se solicitan los datos de cada sistema a Visual Chart.
La información recibida se agrupa por DIAS. Esto nos va a permitir poder analizar de manera conjunta los resultados obtenidos por los distintos sistemas.
Por último, se muestra la información estadística para cada día dentro del intervalo de fechas especificado.



Anotaciones relativas a la programación

Los aspectos fundamentales asociados a la programación fueron expuestos en la anterior entrada de extracción de estadísticas. En este caso, vamos a centrarnos en cómo hemos agrupado las estadísticas según el día.
El principal punto a destacar es el método SetCalculateOptions. Declarar este método es el equivalente a definir las opciones de filtro de las estadísticas de Visual Chart:


Sólo que en este caso lo haremos desde el código de programación: Queremos agrupar los resultados en días, y además, mostrar los resultados en Dinero o Porcentual, según lo que haya elegido el usuario:

        '-- Establecemos los params de la ESTADISTICA
        If Range("B3").Text = "Porcentual" Then Unidad = VCDS_SMU_Perc
        If Range("B3").Text = "Dinero" Then Unidad = VCDS_SMU_Money
        For i = 1 To ND
            Datos(i).Sistema.SetCalculateOptions Unidad, VCDS_SC_Days, 1, FechaIni, FechaFin
            Datos(i).n = 1
        Next i

Hecho esto, recorremos las fechas desde la fecha inicio hasta la fecha fin, recuperando para cada fecha los datos estadísticos de cada sistema, siempre y cuando éstos coincidan con la fecha en cuestión:

    For i = 1 To ND
    With Datos(i)
        If .Sistema.Size > 0 Then
            Calcular = False
            'Resultado
            FechaAux = .Sistema.GetStatisticVariableDate(VC_SV_Net, .n)
            If FechaAux < Dia Then
                SalirFecha = False
                While Not SalirFecha
                    .n = .n + 1
                    If .n > .Sistema.GetStatisticVariableSize(VC_SV_Net) Then
                        SalirFecha = True
                    Else
                        FechaAux = .Sistema.GetStatisticVariableDate(VC_SV_Net, .n)
                        If FechaAux = Dia Then
                            SalirFecha = True
                            Calcular = True: IncluirDia = True
                        ElseIf FechaAux > Dia Then
                            SalirFecha = True
                        End If
                    End If
                Wend
            ElseIf FechaAux = Dia Then
                Calcular = True: IncluirDia = True
            End If


Aclaraciones

Para este ejemplo que hemos desarrollado, la información estadística que se facilita se limita a los campos de ganancia y pérdida máxima. No obstante, puesto que tenemos los datos necesarios de cada operación, el usuario puede generar el cálculo de cualquier valor estadístico que desee, pudiendo incluso aprovechar las funciones estadísticas que proporciona Microsoft Excel y aplicarlas a dichos datos.

Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

MANEJO DE PLANTILLAS. Eliminar plantilla de un gráfico activa

Estudio de las divergencias en el RSI