Por favor ter em conta a secção adequada quando criar tópicos — https://www.mql5.com/pt/forum/421109/page6#comment_49385139
bom dia pessoal quando o martingale entra em ação o valor do lote não reinicia quando ganho a operação, parece que não esta validando a função martingale = false, alguém pode me ajudar se tem alguma outra forma de fazer, pois estou iniciando na programação
Voce tem certeza que seu stopLevel e takeProfitLevel são valores monetarios? Olhando rapidamente aqui eu acho confuso isso. Se voce quer 100 dolares de ganho e 50 dolares de perda porque simplesmente não compara isso contra a variavel profit?
Voce tem certeza que seu stopLevel e takeProfitLevel são valores monetarios? Olhando rapidamente aqui eu acho confuso isso. Se voce quer 100 dolares de ganho e 50 dolares de perda porque simplesmente não compara isso contra a variavel profit?
Olá Ricardo, talvez eu tenha errado no código, pois é meu primeiro EA, mas o valor 100 e 50 são pontos, não sei como fazer validar o Takeprofit para reiniciar o valor do Lote.
Olá Ricardo, talvez eu tenha errado no código, pois é meu primeiro EA, mas o valor 100 e 50 são pontos, não sei como fazer validar o Takeprofit para reiniciar o valor do Lote.
Certo, o uso da _Point eu não conheço bem deixar pra outra pessoa comentar. Se tu esta informando em pontos porque não simplesmente soma nos levels sem a multiplicação? Além disso pra comparar precisa trocar uso do POSITION_PROFIT (valor monetario de prejuizo/ganho) por POSITION_PRICE_CURRENT (preço do ativo). Além disso, seria interessante chamar uma função de normalização do preço se fosse informar o preço no fechamento, o uso do PositionClose() torna isso desnecessario e contorna esse problema que poderia existir.
Fora isso, eu não tinha dado atenção a parte do POSITION_REASON no final. Vejá que voce esta com uma posição aberta selecionada, ali não lhe informa o motivo de encerramento porque voce não tem garantia que ele já ocorreu. Se ele ocorreu, a posição não existe mais e deve ser selecionada do historico de deals usando as funcoes History* .
Bom dia, Paulo Henrique!! Caso você resolva alterar o seu código e utilizar o histórico de operações encerradas para calcular o lote (como o Ricardo mencionou no comentário anterior), segue o exemplo de uma função que você poderá utilizar como base para construir a sua, de acordo com a sua estratégia: Grade e martingale: o que são e como usá-los - Função CalcLot()
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
bom dia pessoal quando o martingale entra em ação o valor do lote não reinicia quando ganho a operação, parece que não esta validando a função martingale = false, alguém pode me ajudar se tem alguma outra forma de fazer, pois estou iniciando na programação