Metodología de los sistemas
A la hora de desarrollar un sistema con el entorno de diseño Visual Basic, es interesante conocer cómo está estructurado el código de programación, así como comprender qué ocurre cuando aplicamos un sistema a un gráfico y qué elementos se ponen en marcha.
A continuación, vamos a tratar de explicar estos dos puntos, analizando las diferentes partes del esqueleto de un sistema.
El esqueleto de un sistema
Cuando desarrollamos un sistema, observamos que éste se monta dentro de un esqueleto predefinido. A continuación vamos a repasar las distintas partes de esta estructura para una mejor comprensión:
1. Declaración de variables.
Parte del código donde el usuario puede definir las variables a usar en su sistema. Además, aquí se definirán también los parámetros de entrada.
Para definir una variable, especificamos el nombre y el tipo de dato que será:
Para definir un parámetro, lo incluimos entre las expresiones '¡¡Parameters y 'Parameters!! y especificamos su valor por defecto:
También podemos especificar si queremos que el sistema se encapsule dentro de un tipo concreto de sistemas cuando accedemos al catálogo de sistemas:
Por defecto, cualquier sistema que hagamos se incluirá dentro del tipo de sistemas User.
2. Inicialización de variables
Aquí es donde se inicializan las variables, se establecen los identificadores de los indicadores que vayamos a usar, las características de algunos parámetros de las funciones, etc... A este procedimiento de inicialización recurre el programa sólo una vez, antes de comenzar los cálculos.
Es importante usar este módulo no sólo para crear los identificadores de los indicadores, si no para devolver a su estado inicial a las variables globales que hayamos declarado en el punto 1. Si no lo hacemos, corremos el riesgo de que el programa arrastre resultados anteriores en caso de que, por ejemplo, insertemos el sistema y cambiemos alguno de los parámetros de entrada.
3. Definición y reglas del sistema.
En este módulo el usuario define la estrategia. Por tanto, aquí se incluirán las condiciones, operadores, etc... Más adelante, veremos que a diferencia del punto 2, el programa recurre a este módulo una vez por cada barra generada en el gráfico, justo en el momento de cambio de barra.
Los puntos 1, 2 y 3 son las partes del sistema que el usuario puede modificar dentro de la estructura del sistema. El resto de puntos vienen diseñados de antemano y por tanto, sólo interesa saber en qué consisten.
4. Valor de variables parámetro
Este método es controlado por el propio programa y el usuario no tiene que interactuar con él. Sencillamente, desde aquí, el programa sabe qué parámetros se van a asignar al sistema actualmente.
5. Rutina para el recorrido de barras
En este módulo se gestiona el proceso mediante el cual el método del punto 3, OnCalculateBar, entra en acción con cada nueva barra del gráfico.
El proceso empieza desde la primera barra o barra de origen, definida en la función StarBar (que el usuario puede definir desde el método del punto 2), iniciando una rutina que se repite hasta que llega a la última barra (FinalBar).
Una vez que acaba, VisualChart volverá a llamar a éste método cuando se termina de formar la última barra generada durante el tiempo real. En ese momento, dicha barra cogerá la posición FinalBar, que mientras sigan entrando nuevas barras, se irá actualizando.
Tanto StarBar como FinalBar son variables de tipo entero largo que incluyen la posición de cada barra dentro del gráfico (empezando por la posición número cero).
6. Conexión del sistema
Este evento se activa cuando realizamos la acción de insertar sistema sobre un gráfico. Al saltar dicho evento, se pone en marcha toda la maquinara. Primero se registran los valores de los parámetros definidos por el usuario, seguidamente se accede al evento OnInitCalculate del punto 1 y por último se llama al evento OnCalculateRange.
7. Desconexión del sistema
Este evento se activa una vez que quitamos el sistema del gráfico. A efectos prácticos, no influye en nada al funcionamiento de la estrategia, pero puede ser utilizado por el usuario para realizar controles o comprobaciones.
A continuación, vamos a tratar de explicar estos dos puntos, analizando las diferentes partes del esqueleto de un sistema.
El esqueleto de un sistema
Cuando desarrollamos un sistema, observamos que éste se monta dentro de un esqueleto predefinido. A continuación vamos a repasar las distintas partes de esta estructura para una mejor comprensión:
1. Declaración de variables.
Parte del código donde el usuario puede definir las variables a usar en su sistema. Además, aquí se definirán también los parámetros de entrada.
Para definir una variable, especificamos el nombre y el tipo de dato que será:
Dim PrecioTS As Double
Option Explicit
Public APP As SysUserApp
Para definir un parámetro, lo incluimos entre las expresiones '¡¡Parameters y 'Parameters!! y especificamos su valor por defecto:
'¡¡ Parameters
Dim NumeroContratos As Integer '1
'Parameters !!
También podemos especificar si queremos que el sistema se encapsule dentro de un tipo concreto de sistemas cuando accedemos al catálogo de sistemas:
'¡¡ Summary
' Classification: SobreMedias
'Summary !!
Por defecto, cualquier sistema que hagamos se incluirá dentro del tipo de sistemas User.
2. Inicialización de variables
Aquí es donde se inicializan las variables, se establecen los identificadores de los indicadores que vayamos a usar, las características de algunos parámetros de las funciones, etc... A este procedimiento de inicialización recurre el programa sólo una vez, antes de comenzar los cálculos.
Public Sub System_OnInitCalculate()
With APP
MediaData = .GII(AvSimple, Data, 50, PriceClose)
Es importante usar este módulo no sólo para crear los identificadores de los indicadores, si no para devolver a su estado inicial a las variables globales que hayamos declarado en el punto 1. Si no lo hacemos, corremos el riesgo de que el programa arrastre resultados anteriores en caso de que, por ejemplo, insertemos el sistema y cambiemos alguno de los parámetros de entrada.
GananciaAcumulada = 0
PrecioStopDinamico = 0
NivelMaximo = 0
NivelMinimo = 0
End With
End Sub
3. Definición y reglas del sistema.
En este módulo el usuario define la estrategia. Por tanto, aquí se incluirán las condiciones, operadores, etc... Más adelante, veremos que a diferencia del punto 2, el programa recurre a este módulo una vez por cada barra generada en el gráfico, justo en el momento de cambio de barra.
Los puntos 1, 2 y 3 son las partes del sistema que el usuario puede modificar dentro de la estructura del sistema. El resto de puntos vienen diseñados de antemano y por tanto, sólo interesa saber en qué consisten.
4. Valor de variables parámetro
Este método es controlado por el propio programa y el usuario no tiene que interactuar con él. Sencillamente, desde aquí, el programa sabe qué parámetros se van a asignar al sistema actualmente.
5. Rutina para el recorrido de barras
En este módulo se gestiona el proceso mediante el cual el método del punto 3, OnCalculateBar, entra en acción con cada nueva barra del gráfico.
El proceso empieza desde la primera barra o barra de origen, definida en la función StarBar (que el usuario puede definir desde el método del punto 2), iniciando una rutina que se repite hasta que llega a la última barra (FinalBar).
Una vez que acaba, VisualChart volverá a llamar a éste método cuando se termina de formar la última barra generada durante el tiempo real. En ese momento, dicha barra cogerá la posición FinalBar, que mientras sigan entrando nuevas barras, se irá actualizando.
Tanto StarBar como FinalBar son variables de tipo entero largo que incluyen la posición de cada barra dentro del gráfico (empezando por la posición número cero).
6. Conexión del sistema
Este evento se activa cuando realizamos la acción de insertar sistema sobre un gráfico. Al saltar dicho evento, se pone en marcha toda la maquinara. Primero se registran los valores de los parámetros definidos por el usuario, seguidamente se accede al evento OnInitCalculate del punto 1 y por último se llama al evento OnCalculateRange.
7. Desconexión del sistema
Este evento se activa una vez que quitamos el sistema del gráfico. A efectos prácticos, no influye en nada al funcionamiento de la estrategia, pero puede ser utilizado por el usuario para realizar controles o comprobaciones.
Comentarios
Publicar un comentario