Indicador de Control Horario. Parte 2

La semana pasada introdujimos el uso del indicador de Control Horario. La finalidad de su uso no era otra que la de filtrar las combinaciones de parámetros de tipo horario que no son válidos, con el fin de mejorar la optimización de un sistema.

Una vez que explicamos en qué consiste y la información que de él se desprende, en el presente artículo vamos a mostrar cómo implementarlo en un sistema cualquiera.

Para ello, vamos a coger como ejemplo el sistema Default System PDV. Este sistema está desarrollado mediante la plataforma visual, de modo que ésta será el editor que usaremos para realizar la demostración.

Añadir el control horario a un sistema en PDV

Lo primero que debemos hacer es seleccionar el sistema en cuestión a través de Programación/Sistema/Modificar Sistema...

Una vez tenemos el sistema abierto, accedemos a la ventana de herramientas. Desde allí, vamos a incluir el indicador en cuestión a la lista de indicadores:

Añadimos el indicador pulsando sobre la carpeta Indicadores

Seleccionamos el indicador del listado




Cuando definimos las variables del indicador, debemos incluirlas como parámetros de entrada. Además, los dos primeros parámetros, HoraInicio y HoraFin, los sustituimos por aquellos asociados al horario incluidos inicialmente en el sistema: Por ejemplo, en el Default System PDV, estos parámetros se llaman InitTime y FinishTime, por tanto, los cambiamos por los correspondientes en el indicador:

Especificamos los parámetros a estudiar


Con esto, ya tenemos incluido el Control Horario en el sistema. Ahora, el siguiente paso será filtrar los casos en los que estemos usando parámetros horarios no válidos.

Lo que queremos hacer es lo siguiente: Cuando el indicador devuelva como resultado un 1, entonces estamos ante un caso en el que los valores de horario son válidos. En tal caso, permitimos que el sistema actúa como debe.

Pero si el indicador devuelve un 0, entonces nos indica que algo anda mal en los parámetros de horario. Si sucede esto, le vamos a indicar al sistema que no haga nada y, además, vamos a forzar la finalización del sistema declarando el método ShouldTerminate como cierto (esto hace que el sistema se detenga).

Creamos un nuevo cuadro de condición donde vamos a preguntar el valor del indicador ControlHorario:

Añadimos una nueva condición

Especificamos la regla a cumplir

Una vez creada la condición, la añadimos al principio del sistema. Si la regla se cumple, el sistema sigue su curso normal.

Si cumple la regla, el sistema sigue su curso

Pero si no se cumple, el sistema no hace nada y definimos ShoulTerminate como cierto. Como no podemos seleccionar esta función de la lista de funciones, usamos un cuadro de Sentencia y la añadimos entrecomillada:


Si el indicador vale 0, el sistema no hace nada

Ya sólo tenemos que compilar el sistema e insertarlo sobre un gráfico.

Optimización

Finalmente, cuando vayamos a optimizar el sistema, observaremos que ahora contamos con mayor número de parámetros. Esto es debido a que ahora también tenemos los parámetros del indicador.

No obstante, estos parámetros no habría que optimizarlos, puesto que sólo nos sirven como márgenes para limitar el valor Inferior y el valor Superior del horario de inicio y el horario fin.

Los pasos a dar serían los siguientes:

1. En el campo SaltoHora especificamos el incremento que vamos a aplicarle a los campos de horario.
2. En los campos IniMin/IniMax, especificamos los valores inferior y superior aplicados al campo HoraInicio.
3. En los campos FinMin/FinMax, especificamos los valores inferior y superior aplicados al campo HoraFin.
4. Por último, especificamos los intervalos e incrementos de los parámetros del sistema a optimizar.

Configuración para el sistema Default System PDV

El optimizador no tiene modo de filtrar los valores no válidos, pero con la inclusión del ControlHorario, cuando seleccione este tipo de combinaciones, el sistema no va a arrojar resultados, por lo que los obviará y además actuará de forma más rápida, ya que no perderá tiempo en analizar dichos valores.

Cálculo de resultados en el optimizador

Como último comentario, cabe destacar que ciertos casos de valores no válidos si son permitidos: Aquellos que coinciden con el valor más próximo a un nivel máximo.

En el ejemplo, el valor HoraFinMax = 2200 no puede ser alcanzado nunca con un incremento de 15 en 15 empezando desde 1700: De 2195 salta a 2210, como el valor fin se supera, el indicador marca 2195 como valor válido. Posteriormente, en la recogida de resultados, debemos considerar el 2195 como un equivalente a haber obtenido 2200.

Comentarios

Entradas populares de este blog

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

Indicador Cuidatar

El indicador Volume Distribution