Como utilizar indicadores em cBots
Neste artigo e no vídeo correspondente, explicamos como pode usar indicadores integrados nos seus cBots. O uso de indicadores num cBot é normalmente feito para uma variedade de propósitos, mais notavelmente fazendo com que os cBots tomem decisões de negociação dependendo dos resultados dos indicadores. Para demonstrar isto, iremos desenvolver uma simples estratégia de negociação automatizada baseada no Relative Strength Index (RSI).
Criar um novo cBot
Para criar um novo cBot, mude para o separador Algo e clique em Novo cBot.
Iremos renomear o nosso cBot para "RSI cBot". Eis como a nossa estratégia de negociação automatizada irá funcionar.
- O bot irá entrar em posições de compra quando o indicador RSI se mover abaixo de um limite predefinido.
- O bot irá entrar em posições de venda quando o indicador RSI se mover acima de um limite predefinido.
Definir e inicializar o indicador
A primeira coisa que precisamos de fazer é definir o indicador RSI na nossa classe cBot. Para tal, declaramos um novo campo.
1 | |
Usando membros de classe privados
Podemos tornar o campo rsi privado com segurança, pois será usado apenas no nosso cBot.
Todos os indicadores cTrader precisam de ser inicializados antes de podermos usá-los. Isto é melhor feito no corpo do método OnStart() para que o cBot tenha acesso ao resultado do indicador após começar a funcionar. O cTrader oferece uma classe útil que lhe permite inicializar facilmente indicadores integrados usando construtores pré-feitos. Antes de podermos ver como isto é feito, iremos adicionar dois parâmetros necessários para inicializar o indicador RSI.
1 2 3 4 5 | |
Agora que adicionámos os nossos parâmetros, estamos prontos para inicializar o indicador.
1 2 3 4 | |
Implementar lógica de negociação
Como já inicializámos o indicador, podemos chamá-lo e usá-lo na nossa lógica de negociação. No caso do indicador RSI, podemos ler os resultados usando a coleção Results.
Para tal, iremos usar o método OnBar() e implementar as seguintes condições.
- Se o valor atual do RSI estiver abaixo do limite de compra do RSI, entre numa nova posição de compra.
- Se o valor atual do RSI estiver acima do limite de venda do RSI, entre numa nova posição de venda.
Como dependemos de limites predefinidos para executar a nossa lógica de negociação, iremos adicionar mais dois parâmetros ao nosso cBot.
1 2 3 4 5 | |
A seguir, iremos implementar as nossas condições no código do cBot.
1 2 3 4 5 6 7 8 9 10 11 | |
É hora de implementar métodos auxiliares para executar ordens de negociação. Isto é feito para criar um nível adicional de abstração no código, melhorando a legibilidade e a reutilização.
Começamos por adicionar mais um parâmetro cBot que lhe permite definir o volume negociado.
1 2 | |
Depois, iremos adicionar os métodos Open() e Close() para entrar numa nova posição e fechar todas as posições abertas pelo cBot numa determinada direção.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Podemos usar os nossos métodos auxiliares para completar a estratégia de negociação automatizada.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Teste de verificação do cBot
Depois de terminarmos a programação do cBot, podemos construí-lo e mudar para o separador Testes de verificação para ver como funciona em dados históricos.
Também podemos anexar o indicador RSI ao gráfico atual para ver se as negociações executadas pelo cBot correspondem aos pontos de entrada pretendidos.
