Saltar a contenido

Estrategias Renko en cTrader

Un gráfico Renko es un tipo de gráfico que se construye utilizando solo el movimiento del precio. Un nuevo ladrillo Renko solo se forma una vez que el movimiento del precio para un símbolo excede un cierto umbral de pips; el componente de tiempo típicamente utilizado en los gráficos de velas está completamente ausente. cTrader permite a los operadores desarrollar estrategias automatizadas basadas en barras Renko de la misma manera que desarrollar tales estrategias para barras de velas basadas en el tiempo. En este artículo y su video correspondiente, crearemos un cBot simple que utiliza una estrategia basada en Renko y realizaremos un backtesting.

Definir la estrategia de operaciones

Comenzaremos definiendo la señal de compra. Dado que las barras Renko son independientes del tiempo, naturalmente filtran el ruido del mercado, haciéndolas útiles para identificar agotamientos de tendencias y posibles reversiones. Colocaremos una nueva orden de compra cuando dos barras Renko bajistas sean seguidas por dos barras alcistas.

Nuestra señal de venta seguirá la configuración opuesta. Colocaremos una orden de venta cuando dos barras Renko alcistas sean seguidas por dos barras bajistas.

Crear un cBot de ejemplo

Ahora podemos proceder a codificar un cBot basado en la estrategia anterior. Para comenzar, definiremos los parámetros para el volumen de la orden y los niveles relativos de stop-loss y take-profit.

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; }

Implementaremos nuestra estrategia de operaciones en el método OnBarClosed(). Para nuestra configuración alcista, comprobaremos si las barras con índices 3 y 2 tienen un precio de cierre inferior al precio de apertura y también comprobaremos si las barras con índices 1 y 0 tienen un precio de cierre superior al precio de apertura.

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

Para nuestra configuración bajista, comprobaremos lo contrario. Las barras con índices 3 y 2 deben tener un precio de cierre superior a su precio de apertura; las barras con índices 1 y 0 deben tener un precio de apertura superior a su precio de cierre.

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

Hacer backtesting del cBot

Después de guardar y compilar nuestro cBot, podemos proceder directamente al backtesting. Si añadimos el cBot a un gráfico de EURUSD con un umbral de Renko de 20 pips, deberíamos obtener resultados alentadores.

Nota

Las estrategias basadas en Renko utilizan las mismas estructuras de datos que las velas basadas en tiempo. Por ejemplo, hemos utilizado la colección Bars para recuperar nuestras barras Renko como lo habríamos hecho para recuperar velas de un gráfico de velas. Esta característica permite desarrollar estrategias que pueden ser probadas y ejecutadas en cualquier tipo de gráfico sin necesidad de modificaciones. Si hacemos backtesting de nuestro cBot en un gráfico de velas, todas las operaciones se ejecutarán de acuerdo con las reglas especificadas.

Nota

Las estrategias basadas en Renko pueden optimizarse al igual que las estrategias basadas en velas en la pestaña Optimización.

En esta guía, hemos creado un cBot basado en Renko exitoso con un esfuerzo mínimo.