![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Agora eu coloquei uma função no comentário - Comentário (isCloseLastPosByStop());
Você está testando no testador? Se no testador, certamente poderá haver uma situação em que duas ou mais últimas posições fechadas não terão um OrderCloseTime() diferente.
Estou vendo. Se várias posições são fechadas simultaneamente no testador (de acordo com o sinal), então a funçãoCloseLastPosByStop() pode "falhar" e não funcionar ? Mas online parece funcionar.
Sim, - Eu verifiquei no testador agora quando trabalhava com uma posição. Tudo funciona corretamente! A função exibe corretamente em Comentário (isCloseLastPosByStop()) o fechamento por Stop Loss e muda a bandeira no tempo ao fechar por outro motivo.
Estou vendo. Se várias posições são fechadas no testador ao mesmo tempo, então a funçãoCloseLastPosByStop() pode "falhar" e não funcionar ?
Sim, porque isCloseLastPosByStop() identifica a última posição fechada pelo tempo máximo de fechamento, que é medido em segundos. Portanto, precisamos de mais de um segundo para passar entre o fechamento de múltiplas posições. No testador, menos de um segundo pode passar.
E online aparentemente funcionará.
Boa tarde, KimIV. Preciso de seus conselhos, ou melhor, de sua ajuda. Preciso da função start() para trabalhar não no sentido do tick, mas para funcionar a cada segundo, independentemente de um novo tick ter chegado ou não. Eis como eu tentei implementar esta tarefa:
Quero que a função start() funcione a cada segundo, independentemente de ter chegado ou não um novo tick.
Eu já fiz assim:
Muito obrigado!!!! Você ainda pode me dizer se meu código sequer funciona? Não no testador... Funciona no testador...? Ou eu tenho que...
Início inútil()...
Você também pode me dizer se meu código funciona de alguma forma?
Eu não sei... Eu não verifiquei...
Nãono testador... Será que vai funcionar na vida real...?
No testador, qualquer coisa em loop não funciona. Só os que têm carrapatos funcionam...
Em linha, seu código deve parecer funcionar. Pelo menos parece funcionar logicamente...
Ou você tem que...
Início inútil()...
Estou vendo. Mais uma vez, obrigado.
. Se você tiver alguma idéia de como identificar de forma mais confiável a última posição fechada, eu as aceitarei com gratidão e tentarei redesenhar a função.
Obrigado por sua amável oferta. Infelizmente, boas idéias não me vêm muitas vezes (infelizmente...) à cabeça! Não faz muito tempo, por exemplo, notei que suas funções quase não fazem uso do "componente" - OrderComment
Entretanto, talvez, a aplicação desta função lhe dê novas idéias (para o deleite de todos os presentes).
Por exemplo, se (OrderComment()==" [sl]" && .... - pode ampliar a gama de tarefas que você executa!
//---------------------------------------------------------------------------------
"Mais funções, - boas e diferentes" (c)
. Se você tiver alguma idéia de como identificar de forma mais confiável a última posição fechada, eu as aceitarei com gratidão e tentarei revisar a função.
Por exemplo, como se(OrderComment()==" [sl]" && .... - pode expandir a gama de tarefas a serem realizadas!
rid, você sugeriu uma maneira de identificar a parada acionada pela entrada nos comentários da ordem. Obrigado, mas pode haver outras entradas além da [sl] nos comentários.
Eu resolvo o mesmo problema comparando o preço de fechamento com o preço de parada.