Rankia España Rankia Argentina Rankia Brasil Rankia Chile Rankia Colombia Rankia Czechia Rankia Deutschland Rankia France Rankia Indonesia Rankia Italia Rankia Magyarország Rankia México Rankia Netherlands Rankia Perú Rankia Polska Rankia Portugal Rankia Romania Rankia Türkiye Rankia United Kingdom Rankia USA
Acceder
Programación de un indicador en PV (2): Añadir tendencia

Programación de un indicador en PV (2): Añadir tendencia

En el último artículo que publicamos, explicamos cómo sería el proceso para diseñar un indicador personalizado mediante la programación en PDV. No obstante, como ya dijimos, nos centramos en abordar los aspectos básicos del diseño de un indicador. Sin embargo, existe la posibilidad de añadir ciertos elementos que le den mayor potencial al indicador desarrollado, como podría ser la capacidad para detectar el cambio de tendencia. Veamos cómo.

Escenario de ejemplo

Como ya hemos dicho, en el anterior artículo elaboramos un indicador usando la Plataforma de Diseño Visual. El indicador que usamos de ejemplo lo denominamos Stochastic Ratio y representaba la diferencia porcentual entre las dos líneas del indicador Estocástico. Este Stochastic Ratio tenía el siguiente aspecto:

sistemas1

Podemos ver que el valor que devuelve oscila en torno a cero, en función de la relación entre las dos líneas del Estocástico. Tal y como está representado en la imagen, en un vistazo, es fácil observar cuándo el oscilador está sobre cero y cuando por debajo de cero, que a efectos de tendencia, podemos considerar como las señales que avisan de la dirección de la misma. Sin embargo, suele ser de mucha utilidad distinguir entre tendencia alcista o bajista con un cambio de color según sea el caso. Visual Chart ofrece la posibilidad de asignarle un color diferente al indicador según sea su tendencia, tal y como podemos ver si accedemos al panel de propiedades del indicador:

sistemas2

Sin embargo, en la imagen podemos ver que aunque tenemos asignado colores diferentes a cada una de las tendencias, el color del indicador siempre es el mismo. De hecho, el color que está tomando es el color neutral; esto es debido a que para que el indicador pueda cambiar de color según sea el caso, es necesario que desde el código fuente especifiquemos cual es la dirección de la tendencia en cada barra. Esto se consigue mediante la propiedad IndicatorPosition.

La propiedad IndicatorPosition

Cuando usamos el método Valor Indicador, tenemos la posibilidad de acceder al listado de propiedades de la línea que vamos a dibujar, en concreto las siguientes: valor de la línea, número de línea y número de barras atrás

sistemas3

Debemos aclarar que aunque en la ventana también aparece la propiedad Color, esta propiedad sólo hace referencia al color con el que se verá visualmente el elemento dentro del diagrama de flujo, y por tanto no se puede considerar una propiedad de la línea en sí misma. Pues bien. Además de estas, las líneas tienen una propiedad más llamada IndicatorPosition. Esta propiedad permite especificar la dirección de tendencia de la línea en la barra determinada desde la propiedad Barra Atrás.

En lo que respecta a la propia propiedad, podemos encontrar que comprende tres posibles estados:

  1. IndicatorPosition.Bull
  2. IndicatorPosition.Bear
  3. IndicatorPosition.Neutral

Obviamente, el primero de los estados indica que la tendencia es alcista, el segundo de ellos que la tendencia es bajista y el tercero que la tendencia es neutra. La pregunta que nos haríamos a continuación, una vez presentada esta nueva propiedad, sería la siguiente: nos queda claro que cambiando el estado de la misma podemos diferenciar entre tendencia alcista, bajista o neutra, pero también hemos visto que desde la ventana de propiedades no aparece ninguna referencia a la propiedad IndicatorPosition… ¿cómo hacemos entonces para modificarla?

La explicación es la siguiente: La Plataforma de Diseño Visual no deja de ser un asistente de programación que facilita la labor al usuario. Sin embargo, este asistente sólo contempla los elementos esenciales de una lista de elementos que podemos utilizar desde el propio desarrollo en .NET, dejando fuera algunos como la propiedad con la que queremos trabajar. No obstante, para hacer frente a este tipo de situaciones, Visual Chart deja abierta la posibilidad de que podamos hacer uso de los elementos en .NET que no están incluidos en la estructura de la Plataforma de Diseño Visual de un modo sencillo: Incluyendo la sentencia que queramos utilizar tal y como se haría en .NET pero con la particularidad de que estaría entrecomillada.

Desarrollo de la programación

Para explicar el proceso que vamos a seguir, vamos a ver primero cómo se utiliza la propiedad IndicatorPosition directamente desde el lenguaje de programación .NET. El código sería el siguiente:

sistemas4

En .NET, el método Valor Indicador se sustituye por Me.SetIndicatorValue, y entre paréntesis se especifican las propiedades que va a llevar la línea que se quiere dibujar. Como vemos, en base al valor de stochastic_ratio, usamos el método o bien poniendo la propiedad en estado Bull o bien en estado Bear.

El resto de datos que observamos, representarían lo siguiente:

  1. Valor del indicador.
  2. Número de línea.
  3. Barras atrás.

Es decir:

Me.SetIndicatorValue(valor, núm.línea, bars.atrás, posición).

 

Para poder trasladar esta idea al lenguaje de programación en PDV, tendremos que sustituir el método Valor Indicador por una sentencia que incluya las líneas de programación en .NET.

Quedaría así:

sistemas5

Si ahora probamos el indicador en un gráfico, podemos ver cómo efectivamente ahora sí distingue entre dirección alcista y bajista:

sistemas6

Esta propiedad ofrece multitud de posibilidades visuales. Por ejemplo, si quisiéramos distinguir entre los casos en los que el ratio supera una u otra banda (BandaCompra y BandaVenta) y los casos en los que el ratio se queda estancado entre ambas, podríamos cambiar el código del indicador tal que así:

sistemas 7

Es decir, usamos dos condiciones para detectar los casos en los que el ratio esté por encima o debajo de las bandas, y en caso de que no ocurra ni una cosa ni la otra, asignamos a la propiedad posición de las tres líneas el estado IndicatorPosition.Neutral.

sistemas 8

Conclusiones

Lo que principalmente queremos destacar de este artículo es que existe la posibilidad de hacer uso de la propiedad IndicatorPosition aunque no esté incluida en la programación PDV. Para ello sustituiremos el método Valor Indicador por una sentencia entrecomillada como las de los ejemplos.

La estructura a seguir siempre será la misma independientemente del indicador que desarrollemos. Basta con recordar que el valor del indicador irá situado en el primer campo del método Me.SetIndicatorValue.

Departamento de Estrategias

Accede a Rankia
¡Sé el primero en comentar!