Cómo usar indicadores en cBots
En este artículo y su video correspondiente, explicamos cómo puede usar indicadores integrados en sus cBots. El uso de indicadores en un cBot se hace típicamente para una variedad de propósitos, principalmente para hacer que los cBots tomen decisiones de operación dependiendo de las salidas del indicador. Para demostrarlo, desarrollaremos una simple estrategia de operaciones automática basada en el Índice de Fuerza Relativa (RSI).
Crear un nuevo cBot
Para crear un nuevo cBot, cambie a la pestaña Algo y haga clic en Nuevo cBot.
Renombraremos nuestro cBot a "RSI cBot". Así es como funcionará nuestra estrategia de operaciones automática.
- El bot entrará en posiciones de compra cuando el indicador RSI se mueva por debajo de un umbral predefinido.
- El bot entrará en posiciones de venta cuando el indicador RSI se mueva por encima de un umbral predefinido.
Definir e inicializar el indicador
Lo primero que necesitamos hacer es definir el indicador RSI en nuestra clase cBot. Para hacerlo, declaramos un nuevo campo.
1 | |
Uso de miembros de clase privados
Podemos hacer el campo rsi privado de manera segura ya que solo se usará en nuestro cBot.
Todos los indicadores de cTrader necesitan ser inicializados antes de que podamos usarlos. Esto se hace mejor en el cuerpo del método OnStart() para que el cBot tenga acceso a la salida del indicador después de que comience a ejecutarse. cTrader ofrece una práctica clase que le permite inicializar fácilmente indicadores integrados usando constructores predefinidos. Antes de que podamos ver cómo se hace esto, agregaremos dos parámetros necesarios para inicializar el indicador RSI.
1 2 3 4 5 | |
Ahora que hemos agregado nuestros parámetros, estamos listos para inicializar el indicador.
1 2 3 4 | |
Implementar lógica de operaciones
Como ya hemos inicializado el indicador, podemos llamarlo y usarlo en nuestra lógica de operaciones. En el caso del indicador RSI, podemos leer las salidas usando la colección Results.
Para hacerlo, usaremos el método OnBar() e implementaremos las siguientes condiciones.
- Si el valor actual del RSI está por debajo del umbral de compra del RSI, entrar en una nueva posición de compra.
- Si el valor actual del RSI está por encima del umbral de venta del RSI, entrar en una nueva posición de venta.
Debido a que confiamos en umbrales predefinidos para ejecutar nuestra lógica de operaciones, agregaremos dos parámetros más a nuestro cBot.
1 2 3 4 5 | |
A continuación, implementaremos nuestras condiciones en el código del cBot.
1 2 3 4 5 6 7 8 9 10 11 | |
Es hora de implementar métodos auxiliares para ejecutar órdenes de operación. Esto se hace para crear un nivel adicional de abstracción en el código, mejorando la legibilidad y la reutilización.
Comenzamos agregando un parámetro más al cBot que le permite establecer el volumen operado.
1 2 | |
Después, agregaremos los métodos Open() y Close() para entrar en una nueva posición y cerrar todas las posiciones abiertas por el cBot en una dirección dada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Podemos usar nuestros métodos auxiliares para completar la estrategia de operaciones automática.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Hacer backtesting del cBot
Después de terminar de codificar el cBot, podemos compilarlo y cambiar a la pestaña Backtesting para ver cómo se desempeña en datos históricos.
También podemos adjuntar el indicador RSI al gráfico actual para ver si las operaciones ejecutadas por el cBot coinciden con los puntos de entrada previstos.
