Discussão do artigo "Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições"

 

Novo artigo Desenvolvendo um EA multimoeda (Parte 28): Adicionando um gerenciador de fechamento de posições foi publicado:

Ao executar muitas estratégias em paralelo, pode surgir a necessidade de, de tempos em tempos, fechar todas as posições abertas e reiniciar as estratégias. O código já escrito permite implementar esse comportamento apenas em conjunto com manipulações manuais. Vamos tentar automatizar essa parte.

Na Parte 12 adicionamos ao EA multimoeda um módulo de gerenciamento de risco para limitar o rebaixamento diário e total. Embora não aumente o lucro, é muito importante para proteger o capital em condições desfavoráveis. Baseia-se nas regras do prop-trading, com possibilidade de configuração flexível: rebaixamento em moeda, em porcentagem do saldo ou desde o início do dia.

O módulo é implementado como a classe CVirtualRiskManager com métodos para monitoramento do saldo, lucro e verificação de restrições. Também está prevista uma função de fixação de lucro, ao atingir a meta todas as posições são fechadas e o trading é interrompido.

No caso de contas comuns, seria desejável que, após atingir o lucro, o trading fosse reiniciado automaticamente. Atualmente, isso exige intervenção manual. Chegou a hora de automatizar também este processo.

Para reiniciar as estratégias de negociação ao atingir o lucro definido foram considerados dois caminhos:

  1. expandir o atual gerenciador de risco,

  2. criar um módulo separado.

Escolhemos o segundo caminho, pois o atual gerenciador de risco funciona independentemente das estratégias: ele fecha apenas posições reais, sem afetar as virtuais. Alterar essa lógica complicaria a arquitetura e quebraria a independência modular.

Além disso, como o gerenciador de risco cria carga adicional durante os testes, é melhor levar essa nova funcionalidade para um módulo separado. Assim ele poderá ser usado mesmo sem o gerenciador de risco em execução.

O novo objetivo é um módulo capaz de reiniciar todas as estratégias quando determinadas condições forem atendidas (lucro, perda, tempo etc.), sem depender do histórico e sem intervenção manual. Vamos chamar o novo módulo de gerenciador de fechamento, pois é um módulo separado cuja presença não é obrigatória, mas sua adição pode melhorar os resultados, e ele controla o processo de fechamento completo de todas as posições, tanto reais quanto virtuais.


Autor: Yuriy Bykov