Saltar a contenido

Estrategias de barras de rango en cTrader

Un gráfico de rango se construye para representar un rango específico de movimientos de precio, independientemente del tiempo que tarde el precio en realizar ese movimiento. Esto filtra los movimientos de precio que son más pequeños que el tamaño del rango, lo que facilita la visualización de las tendencias. En cTrader, el proceso para desarrollar estrategias de operaciones automatizadas que toman decisiones basadas en barras de rango es el mismo que el proceso para crear tales estrategias basadas en velas estándar basadas en el tiempo. En este artículo y su video correspondiente, demostraremos cómo puede desarrollar y realizar backtesting de una estrategia simple basada en barras de rango.

Definir las señales de compra y venta

Describiremos brevemente nuestra lógica de operaciones.

  • Señal de compra - ocurre cuando una barra de rango alcista que sigue a una barra de rango bajista y cierra por encima del precio de apertura de la barra bajista.
  • Señal de venta - ocurre cuando una barra de rango bajista sigue a una barra de rango alcista y cierra por debajo del precio de apertura de la barra alcista.

La interpretación de la señal de compra es que, cuando una tendencia bajista se encuentra con una fuerte resistencia, es el momento de comprar en espera de un rebote. La configuración inversa se aplica a la señal de venta: una tendencia alcista se encuentra con resistencia, y debemos capitalizar esto colocando una orden de venta.

Crear un cBot de ejemplo

Podemos comenzar a crear nuestro cBot. Primero definiremos los parámetros necesarios.

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 10000)]
public double Volume { get; set; }

[Parameter(DefaultValue = 20)]
public double StopLoss { get; set; }

[Parameter(DefaultValue = 20)]
public double TakeProfit { get; set; }

Podemos codificar nuestra señal de compra de la siguiente manera.

1
2
3
4
if (Bars.Last(0).Close > Bars.Last(0).Open && Bars.Last(1).Close < Bars.Last(1).Open && Bars.Last(0).Close > Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

Nuestra señal de venta se ve así.

1
2
3
4
if (Bars.Last(0).Close < Bars.Last(0).Open && Bars.Last(1).Close > Bars.Last(1).Open && Bars.Last(0).Close < Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

Realizar backtesting de la estrategia

Después de construir nuestro nuevo cBot, cambiamos a la pestaña Backtesting y ejecutamos un backtesting. Aquí están los resultados.

Nota

Las estrategias de barras de rango utilizan las mismas estructuras de datos que las estrategias basadas en velas. Por ejemplo, usamos la colección Bars para recuperar nuestras barras de rango; habríamos usado la misma colección al intentar recuperar velas. Esta característica de cTrader le permite desarrollar estrategias que pueden ser probadas y ejecutadas en cualquier tipo de gráfico sin necesidad de modificaciones.

En este tutorial, demostramos cómo puede desarrollar rápidamente una estrategia simple basada en gráficos de rango. También sugerimos que tales estrategias pueden reutilizarse libremente en gráficos que contienen velas basadas en el tiempo.