Como automatizar uma estratégia de negociação manual
A negociação automatizada ou algorítmica oferece várias vantagens em relação à negociação manual:
- Os sistemas automatizados eliminam a tomada de decisões emocional e executam negociações com maior precisão, velocidade e eficiência.
- Os algoritmos implementam consistentemente estratégias de negociação avançadas, ao mesmo tempo que as medidas de gestão de risco são aplicadas de forma fiável.
- Os algoritmos permitem testar estratégias usando dados históricos e diversificar em vários ativos e mercados simultaneamente.
A API do cTrader Algo permite que os traders automatizem estratégias manuais complexas, permitindo-lhes capitalizar as muitas vantagens da negociação algorítmica. Neste artigo e no vídeo que o acompanha, irá aprender a automatizar estratégias manuais complexas e transformar sequências de operações em algoritmos.
Identificar os padrões da estratégia manual
Para desenvolver um algoritmo, vamos assumir que estamos a negociar manualmente o padrão hammer para entradas longas e o padrão hanging man para entradas curtas.
Um hammer ocorre durante uma tendência de descida e sugere uma potencial reversão de alta. O padrão hammer é usado para identificar entradas de compra.

Um hanging man aparece durante uma tendência de subida e indica uma potencial reversão de baixa. O padrão hanging man é usado para identificar entradas de venda.

Desenvolver um cBot para negociar a estratégia manual
No Algo do cTrader, vamos criar um algoritmo que implementa a estratégia descrita na secção anterior.
Clique no botão Novo no separador cBot. Escreva Estratégia de padrões no campo do nome e clique em Criar.

No método OnBarClosed(), implementamos a lógica para a nossa estratégia. As nossas entradas têm de cumprir estas duas condições:
- O preço de fecho corresponde ao preço mais alto.
- O tamanho da vela é pelo menos cinco vezes maior do que o corpo da vela.
Começamos por definir os parâmetros Volume, StopLoss e TakeProfit.
1 2 3 4 5 6 7 8 | |
Depois, escrevemos um excerto para executar uma negociação de compra quando as condições necessárias são cumpridas.
1 2 3 4 5 | |
1 2 3 | |
Do lado oposto, estas são as condições que têm de ser cumpridas para as nossas entradas de venda:
- O preço de fecho corresponde ao preço mais baixo.
- O tamanho da vela é pelo menos cinco vezes maior do que o corpo da vela.
Da mesma forma, escrevemos um excerto para executar uma negociação de venda quando as condições necessárias são cumpridas.
1 2 3 4 5 | |
1 2 | |
Pode copiar o código completo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Para compilar o cBot, prima Ctrl+B ou clique em Compilar.
Para testar o cBot, primeiro adicionamos uma instância. Selecione a opção Localmente, especifique os parâmetros pretendidos e clique no botão Adicionar instância.

Em seguida, navegamos até ao separador Testes de verificação, especificamos um período para a operação de teste de verificação e iniciamos o teste de verificação.
Assim que o processo de teste de verificação estiver concluído, podemos inspecionar as negociações. Verá que as condições de entrada são cumpridas imediatamente antes de cada negociação ser iniciada.
Com a automatização bem-sucedida da nossa estratégia, podemos empregar o cBot para fazer negociações em nosso nome.
Implementar a estratégia de reversão do RSI
No nosso segundo exemplo, queremos implementar uma estratégia baseada na reversão do indicador Relative Strength Index (RSI). Nesta estratégia, entramos em posições esperando que o RSI inverta a sua direção e seguimos estas regras:
- Quando o valor do RSI desce abaixo do limiar de compra do RSI, entramos numa posição de compra.
- Quando o valor do RSI sobe acima do limiar de venda do RSI, entramos numa posição de venda.
Vamos criar um novo cBot, inserir RSI Reversal Strategy como nome e clicar em Criar.

Quando o editor de código aparecer, adicione System.Linq no topo do código como referência.
1 | |
Vamos adicionar dois parâmetros que nos permitirão modificar os limiares antes de executarmos o cBot.
1 2 3 4 5 | |
Declaramos e inicializamos o nosso indicador de força relativa.
1 2 3 4 5 6 | |
1 2 3 | |
Em seguida, implementamos as condições que definem a nossa lógica de negociação.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Pode copiar o código completo abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Vamos construir a nossa estratégia, adicionar uma instância e testá-la, como fizemos com a estratégia anterior.
Podemos inspecionar e rever algumas transações novamente para ver as condições de entrada a serem cumpridas logo antes de uma transação ser iniciada.
Este artigo demonstrou como identificar uma estratégia manual e convertê-la numa estratégia automatizada, permitindo operações de negociação algorítmica.
