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
Lucas,
Recomendo fortemente seguir a recomendação do Rogério Giannetti.
Tratar os códigos de retorno das chamadas de função é uma boa prática básica e essencial para desenvolver um software confiável.
Se os erros que eventualmente ocorrem nessas chamadas de função não forem tratados, vc corre o risco de o seu robô (ou qualquer software que você esteja desenvolvendo) ficar apresentando aqueles problemas intermitentes "misteriosos" e difíceis de serem reproduzidos e depurados.
De qualquer forma, uma vez testado o código de retorno e confirmado que a posição foi fechada, vc precisará garantir que a função PositionClose() não seja chamada mais de uma vez, inserindo algum tipo de tratamento na cláusula "else" do "if" que o Giannetti inseriu.
Acredito que a sua sugestão de inserir um sleep(2000) funcionará tão bem quanto a minha, com a vantagem de ser mais simples.
A única brecha da sua solução é a possibilidade de demorar mais de 2 segundos para ser confirmado o fechamento da posição e, nesse meio tempo, chegar mais um tick acionando novamente o Ontick() e o PositionClose(). É extremamente implausível isso acontecer, mas "vai que", né? ... Se a conexão entre o terminal e o servidor da corretora sair do ar por mais de 2 segundos, por exemplo ... Por isso acho mais seguro usar uma variável booleana para marcar que a posição já foi fechada, para garantir que nunca haverá um segundo acionamento da PositionClose().
Fico agradecido pela ajuda de todos, irei alterar para o Código mais completo e vou esperar que seja retirado perfeitamente do mercado para saber que tudo deu certo. Vou analisar hoje o meu código todo e ver aonde podem ter brechas como esta, para me precaver de mais erros na execução.
Obrigado a todos, e feliz carnaval rsrs
Tive problema com estas função :
O que pode ser isto?
Tive problema com estas função :
O que pode ser isto?
Deve ser exatamente o que a mensagem diz: a variável "position" não foi declarada.
A variável "position" tem que ser um objeto da classe na qual o método SelectPosition() foi declarado.
Se essa classe que contém o método SelectPosition() não tiver sido construída por você, provável você precisará fazer o #include de algum arquivo de extensão ".mqh" contendo a declaração da classe, para poder usá-la.
bom dia, queria saber como estirar o dinheiro que depositei direto no site do metatrader 5 e não em uma corretora?