Programación: Cómo detectar barras de tiempo real

Hace un tiempo, un usuario nos preguntaba cómo podemos hacer para saber desde el código de un proyecto en qué momento el proceso está actuando sobre barras de tiempo real y no sobre las barras históricas. Esta información puede ser muy útil para multitud de situaciones: Por ejemplo, en el caso de que queramos acceder desde un indicador a los campos de tiempo real, los cuales no están disponibles durante el histórico, o por ejemplo, si queremos que una estrategia empiece a funcionar a partir de la barra del momento actual y no en el histórico.

A continuación, mostramos los pasos que habría que dar para conocer este dato. Estos pasos sólo pueden desarrollarse desde la programación en .NET (C# o VB.NET), ya que la Plataforma de Diseño Visual (PDV) carece de las herramientas necesarias para poder llevarlo a cabo. La explicación la haremos utilizando como lenguaje de programación C#, si bien como decimos, el proceso sería muy similar desde VB.NET.

Para saber si estamos en la última barra del histórico, haremos lo siguiente:
1. Añadimos una variable global que se llame, por ejemplo, lasthistoricalbar:
Esta variable la vamos a usar para almacenar el número de barra correspondiente a la última barra generada en el histórico.

2. En OnInitCalculate asignamos a dicha variable un -1. De este modo, inicializamos la variable con un valor nulo.

3. En el método OnCalculateRange (dentro de la región Visual Chart Code), escribimos esto:
Lo que estamos diciendo con esto es que si nuestra variable guardaba el valor nulo, actualizamos con el número de barra correspondiente a la barra final.

4. Por último, ya desde OnCalculateBar, comprobamos si bar >= last_historicalbar, si lo cumple, entonces es que la barra actual forma parte de las barras de tiempo real. Si no, es que está calculando histórico.

Si quieren ver un ejemplo de código donde se utiliza un método similar, pueden acceder a la estrategia pública Trailing Stop System 2, donde queda bien reflejado este caso.

En dicha estrategia, sólo se actúa durante las barras de tiempo real.


Comentarios

Entradas populares de este blog

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

Indicador Cuidatar

El indicador Volume Distribution