Trading Tools: Extracción de estadísticas de sistemas.
Uno de los aspectos fundamentales del desarrollo de estrategias en VisualChart recaba en la extracción de los resultados estadísticos de los negocios de dichos sistemas.
Muchos usuarios tienden a exportar estos resultados a otras plataformas, como por ejemplo Excel, con la finalidad de poder realizar estudios derivados del análisis estadístico.
Como hemos visto en anteriores apartados, podemos utilizar las nuevas herramientas COM para extraer fuentes de datos desde VisualChart y utilizarlas desde la interfaz cliente.
Esto mismo también puede hacerse con la información relativa a los sistemas. Por tanto, partiendo de esta idea, podemos agilizar el proceso de extracción de datos estadístico del qué hablábamos antes.
En el siguiente enlace, se accede a una hoja Excel que nos va a permitir acceder a las estadísticas de sistemas de manera directa, sin necesidad de previamente tener que abrir un gráfico y cargar el sistema:
Estadística Sistemas
Cómo utilizar la hoja de Estadísticas
Para poder trabajar con ésta herramienta, necesitamos previamente tener abierto VisualChart, pues lo vamos a utilizar como proveedor de datos.
Además, será necesario ejecutar la hoja Excel con privilegios de administrador, pues en otro caso no nos va a permitir la conexión cliente/servidor que se pone en marcha entre VisualChart y Excel.
Puesto que vamos a acceder a un histórico de fuentes, deberemos asegurarnos de que la fuente elegida ha sido previamente registrada en nuestro equipo. De no ser así, deberemos al menos una vez abrir un gráfico de dicha fuente para que quede registrada.
Por último y como es lógico, los sistemas a los que vayamos a acceder deberán estar compilados en nuestro equipo.
Los parámetros que debemos especificar a la hoja Excel antes de poner en marcha la extracción de estadísticas son los siguientes:
1. Código del producto: Aquí especificamos el código VisualChart del producto a analizar. Este código tiene la estructura 010 + codigo mercado + codigo producto (Telefónica= 010 + 060 + TEF.MC = 010060TEF.MC)
2. FechaInicial/FechaFinal: Indicamos las fechas inicio y fin del histórico que queramos analizar.
3. TipoCompresión/Compresión: Especificamos el tipo de barra que vamos a usar: 5 minutos, 1 día, 2 minutos, etc...
4. Codigo del sistema: Debemos conocer el código del sistema y escribirlo aquí. Por ejemplo, el sistema Close difference system tiene como código CDSYS, por tanto, CDSYS es lo que debemos especificar en este campo. Podemos ver el código de cada sistema adjunto al lado de su nombre en la ventana de sistemas:
5. Compresion2Type/Compresion3Type: Estos campos se utilizan para casos especiales donde un sistema requiere de un segundo o un tercer gráfico externo. En la mayoría de los sistemas no se usa. En posteriores entradas ahondaremos más en este tema.
Especificados todos los parámetros, sólo queda pulsar el botón OK para que se inicie el proceso de extracción de estadísticas. Este proceso puede durar unos segundos.
Aclaraciones
Los parámetros propios del sistema no se especifican desde la hoja Excel. La aplicación tomará los parámetros predeterminados del sistema.
La hoja Excel sólo muestra un número limitado de información estadística. Sin embargo, es posible acceder a cualquier campo de los que aparecen en el listado de estadísticas de Visual Chart.
Anotaciones relativas a la programación
Para poder haber llevado a cabo esta aplicación, nos hemos apoyado una vez más en la clase VCDataSourceLib, creando un objeto del tipo VCDS_DataSourceManager al que hemos llamado g_Objects.
Los tres pasos a dar para la extracción de estadísticas son los siguientes:
1. Creación de la fuente de datos
Creamos un objeto de tipo VDCS_DataSerie y lo creamos usando los datos aportados por el usuario previamente:
2. Creación del sistema.
Si la fuente se ha generado, creamos un objeto del tipoVDCS_System al que le pasamos el código de sistema indicado por el usuario:
Cuando realizamos la llamada al método NewSystem, si no especificamos ningún parámetro para el sistema, entonces la clase interpreta que vamos a usar los parámetros predeterminados del sistema. El programador puede variar esto y añadir los parámetros propios del sistema para que el usuario los cambie desde la propia hoja Excel.
3. Datos estadísticos.
Si el sistema se ha creado con éxito, ya sólo queda acceder a los datos estadísticos. El objeto de tipo VCDS_System tiene una propieda llamada GetStatisticVariableValue. Accediendo a ésta propiedad, podemos extraer cualquier campo estadístico del listado de estadísticas:
Cabe destacar que previamente a la extracción de estadísticas, hay que configurar cómo van a ser los resultados que queremos obtener: si en puntos o en porcentaje, recogidos por días o por negocios, etc... Para ello, llamamos al método SetCalculateOptions:
Muchos usuarios tienden a exportar estos resultados a otras plataformas, como por ejemplo Excel, con la finalidad de poder realizar estudios derivados del análisis estadístico.
Como hemos visto en anteriores apartados, podemos utilizar las nuevas herramientas COM para extraer fuentes de datos desde VisualChart y utilizarlas desde la interfaz cliente.
Esto mismo también puede hacerse con la información relativa a los sistemas. Por tanto, partiendo de esta idea, podemos agilizar el proceso de extracción de datos estadístico del qué hablábamos antes.
En el siguiente enlace, se accede a una hoja Excel que nos va a permitir acceder a las estadísticas de sistemas de manera directa, sin necesidad de previamente tener que abrir un gráfico y cargar el sistema:
Estadística Sistemas
Cómo utilizar la hoja de Estadísticas
Para poder trabajar con ésta herramienta, necesitamos previamente tener abierto VisualChart, pues lo vamos a utilizar como proveedor de datos.
Además, será necesario ejecutar la hoja Excel con privilegios de administrador, pues en otro caso no nos va a permitir la conexión cliente/servidor que se pone en marcha entre VisualChart y Excel.
Puesto que vamos a acceder a un histórico de fuentes, deberemos asegurarnos de que la fuente elegida ha sido previamente registrada en nuestro equipo. De no ser así, deberemos al menos una vez abrir un gráfico de dicha fuente para que quede registrada.
Por último y como es lógico, los sistemas a los que vayamos a acceder deberán estar compilados en nuestro equipo.
Los parámetros que debemos especificar a la hoja Excel antes de poner en marcha la extracción de estadísticas son los siguientes:
1. Código del producto: Aquí especificamos el código VisualChart del producto a analizar. Este código tiene la estructura 010 + codigo mercado + codigo producto (Telefónica= 010 + 060 + TEF.MC = 010060TEF.MC)
2. FechaInicial/FechaFinal: Indicamos las fechas inicio y fin del histórico que queramos analizar.
3. TipoCompresión/Compresión: Especificamos el tipo de barra que vamos a usar: 5 minutos, 1 día, 2 minutos, etc...
4. Codigo del sistema: Debemos conocer el código del sistema y escribirlo aquí. Por ejemplo, el sistema Close difference system tiene como código CDSYS, por tanto, CDSYS es lo que debemos especificar en este campo. Podemos ver el código de cada sistema adjunto al lado de su nombre en la ventana de sistemas:
5. Compresion2Type/Compresion3Type: Estos campos se utilizan para casos especiales donde un sistema requiere de un segundo o un tercer gráfico externo. En la mayoría de los sistemas no se usa. En posteriores entradas ahondaremos más en este tema.
Especificados todos los parámetros, sólo queda pulsar el botón OK para que se inicie el proceso de extracción de estadísticas. Este proceso puede durar unos segundos.
Aclaraciones
Los parámetros propios del sistema no se especifican desde la hoja Excel. La aplicación tomará los parámetros predeterminados del sistema.
La hoja Excel sólo muestra un número limitado de información estadística. Sin embargo, es posible acceder a cualquier campo de los que aparecen en el listado de estadísticas de Visual Chart.
Anotaciones relativas a la programación
Para poder haber llevado a cabo esta aplicación, nos hemos apoyado una vez más en la clase VCDataSourceLib, creando un objeto del tipo VCDS_DataSourceManager al que hemos llamado g_Objects.
Los tres pasos a dar para la extracción de estadísticas son los siguientes:
1. Creación de la fuente de datos
Creamos un objeto de tipo VDCS_DataSerie y lo creamos usando los datos aportados por el usuario previamente:
Set g_Objects = New VCDS_DataSourceManager
'-- Actualizamos las variables
FechaIni = CDate(Cells(4, 2).Text): FechaFin = CDate(Cells(5, 2).Text)
Simbolo = Cells(3, 2).Text
compresion = Range("D5")
'--
Set fuente = Nothing
On Error Resume Next
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
2. Creación del sistema.
Si la fuente se ha generado, creamos un objeto del tipoVDCS_System al que le pasamos el código de sistema indicado por el usuario:
If Exito Then
Application.StatusBar = "La fuente: " & Simbolo & " se ha cargado."
'---
Exito = False
CodigoSis = Range("Sistema").Text
'Crear sistema
On Error Resume Next
Set Sistema = g_Objects.NewSystem(CodigoSis, fuente)
'-- Si no ha habido errores activamos los eventos del sistema
If Err.Number = 0 And Sistema.Size > 0 Then
Exito = True
Else
Exito = False
Application.StatusBar = "Sistema no cargado."
End If
End If
Cuando realizamos la llamada al método NewSystem, si no especificamos ningún parámetro para el sistema, entonces la clase interpreta que vamos a usar los parámetros predeterminados del sistema. El programador puede variar esto y añadir los parámetros propios del sistema para que el usuario los cambie desde la propia hoja Excel.
3. Datos estadísticos.
Si el sistema se ha creado con éxito, ya sólo queda acceder a los datos estadísticos. El objeto de tipo VCDS_System tiene una propieda llamada GetStatisticVariableValue. Accediendo a ésta propiedad, podemos extraer cualquier campo estadístico del listado de estadísticas:
'Ganancia acumulada
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_NetProfit, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 5) = ValorAux
'Drawdown
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_Drawdown, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 6) = ValorAux
'Peor serie de pérdidas
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_WorstSerieOfLosses, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 7) = ValorAux
'PRR
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_Adjusted_ProfitFactor, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 8) = Round(ValorAux, 3)
'Fiabilidad
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_Fiability, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 9) = Round(ValorAux, 3)
'Ratio POS/NEG
ValorAux = Sistema.GetStatisticVariableValue(VC_SV_WinnersLosersRatio, i)
If Err.Number = 0 And ValorAux <> 2147483647 Then Cells(nfila, 10) = Round(ValorAux, 3)
Cabe destacar que previamente a la extracción de estadísticas, hay que configurar cómo van a ser los resultados que queremos obtener: si en puntos o en porcentaje, recogidos por días o por negocios, etc... Para ello, llamamos al método SetCalculateOptions:
If Sistema.Size > 0 Then
'-- Establecemos los params de la ESTADISTICA
Sistema.SetCalculateOptions VCDS_SMU_Points, VCDS_SC_Trades, 1, FechaIni, FechaFin
Comentarios
Publicar un comentario