Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação
Você tem alguma questão sobre Metatrader 5! Pergunte Aqui!
Rogerio Figurelli, 2015.10.29 04:07
Olá Gabriel, note que você deve testar o retorno da PositionSelect(). Veja mais detalhes em https://www.mql5.com/pt/docs/trading/positionselect
Isso por que ela retorna true se a função for concluída com êxito e false em caso de falha, cuja razão poderá ser verificada pela função GetLastError().
Se ocorreu o S/L ou T/P, como referido, a posição não existirá mais, e por isso esse teste se torna ainda mais relevante.
Rogerio Figurelli:
Obrigado Figurelli!
Através do código abaixo estou obtendo êxito! Abraços
{ if(pSymbol == NULL) pSymbol = _Symbol; bool select = PositionSelect(pSymbol); if(select == true) return(PositionGetDouble(POSITION_VOLUME)); else return(WRONG_VALUE); }
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Bom dia!
Me deparei com um problema e gostaria da ajuda de vocês. Meu expert funciona da seguinte maneira, quando a variável1 é igual a um e quando não há posições em aberto no ativo em questão, ele dispara uma ordem a mercado com Stop Loss e Take Profit. Eu atualizo os dados da posição sempre antes de checar se o volume da posição.
Quando vou utilizar este E.A no Strategy Tester, ele atualiza o volume da operação quando uma ordem a mercado é dada, porém quando a mesma é fechada por um stop loss ou take profit o volume da posição não se altera e continua como se estivesse com a operação em aberto. Mesmo após passar no código abaixo.
Só há alteração na posição, quando outra ordem a mercado é dada. Fora do Strategy Tester tudo funciona normalmente!
Alguém poderia me ajudar? Agradeço antecipadamente.