Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 705
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
Aparentemente, eu não expliquei exatamente o problema. O problema é que há uma ordem GBPUSD em aberto (não pendente), o preço em aberto é 1,61029. A função OrderOpenPrice, como eu a entendo, deve retornar o preço realmente aberto do pedido (1,61029). Entretanto, retorna um valor arredondado para 4 casas decimais, 1,6103. Testado em diferentes pedidos com diferentes preços abertos - o resultado é o mesmo: falta o último dígito.
Para isso, existe o DoubleToStr(), que escreverá com Dígitos reais, mas escreverá com 4! Veja a Documentação no canto superior esquerdo, você encontrará tudo lá e aprenderá muito + tutorial!
Aí está:
Há DoubleToStr() para isso, que escreverá com Dígitos reais, mas desta forma escreverá com 4! Veja a Documentação no canto superior esquerdo, você encontrará tudo lá e aprenderá muito + tutorial!
Aí está:
Muito obrigado! E eu estou lendo o tutorial, e escrevendo um EA à medida que vou avançando.
E outra pergunta: qual é a maneira mais fácil de saber que uma determinada ordem é fechada (por bilhete)? Devo usar a função OrderCloseTime, ou existe uma função especial para este fim?
Muito obrigado! Estou lendo o tutorial e escrevendo um EA à medida que vou avançando.
E outra pergunta: qual é a maneira mais fácil de saber se um pedido é fechado (por bilhete)? Devo usar a função OrderCloseTime, ou existe uma função especial para este fim?
A variável do bilhete deve armazenar o número do bilhete do pedido a ser verificado
A variável do bilhete deve armazenar o número do bilhete do pedido a ser verificado
Se o pedido for fechado, não deveria ser encontrado na história (MODE_HISTÓRIA)?
A variável do bilhete deve armazenar o número do bilhete do pedido a ser verificado
Obrigado.
Outra pergunta. Há um bloco no EA que deve apagar as ordens pendentes, dependendo do fechamento das ordens de mercado:
OrderSelect(T1,SELECT_BY_TICKET);
datetime cls1;
cls1=OrderCloseTime(); // hora de fechar 1 pedido
OrderSelect(T2,SELECT_BY_TICKET);
datatime cls2;
cls2=OrderCloseTime(); // hora de fechar 2 pedidos
Alert(cls1," ",cls2);
if(cls1==0 && cls2==0) //se ambos os pedidos estiverem abertos
return(0);
else
CLS+++; // bandeira de fechamento para uma das ordens
if(cls1>0 && CLS===1) //apagar ordens pendentes dependendo de qual ordem é fechada
OrderDelete(T3);
if(cls2>0 && CLS===1)
OrderDelete(T4);
return(0);
}
O bloco não funciona por algum motivo (não fecha ordens pendentes) e o Alerta sempre mostra "0 0". Eu fechei especificamente uma das ordens abertas, mas nada acontece. Parece que a EA não verifica se o pedido já foi fechado e agora está processando os dados antigos. Qual poderia ser o problema?
Obrigado.
Outra pergunta. Há um bloco no EA que deve apagar as ordens pendentes, dependendo do fechamento das ordens de mercado:
O bloco não funciona por algum motivo (as ordens pendentes não são fechadas) e o Alerta sempre mostra "0 0". Eu fechei de propósito uma das ordens abertas, mas nada acontece. Parece que a EA não verifica se o pedido já foi fechado e agora está processando os dados antigos. Qual poderia ser o problema?
Onde o bilhete de pedido é descoberto? E de onde vem o OrderCloseTime se a ordem ainda estiver ativa (pelo menos é selecionada entre as ativas por código)?
se um pedido é fechado, não deveria ser procurado na história (MODE_HISTÓRIA)?
Oh, pare de se enfurecer. Neste caso, o pool é ignorado. Somente com tempo de fechamento maior que/igual a zero você pode determinar de qual lista a ordem foi selecionada. É uma pena não conhecer estas noções básicas ;)
Eu quase nunca procuro por bilhete, mais por índice, pode ser uma vergonha, mas o que você pode fazer ;)
mas a busca pelo bilhete certo não é citada ali, talvez ele esteja procurando-o errado e depois reclama que o código não funciona...
Eu quase nunca procuro por bilhete, mais por índice, talvez seja uma vergonha, mas o que você pode fazer ;)
mas procurar o bilhete certo lá no código não levou, talvez ele esteja procurando-o errado e depois reclamando que o código não funciona...