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 250
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
Ha ha... Aqui está uma mentira...
O problema acabou se revelando na função OpenOrders(). Esqueci completamente de remover o controle da abertura do pedido em caso de quebra de uma vela (barra):
if (Volume[0] > 1) return;
Então, no que a TF, a Expert Advisor, estava testando, estava abrindo ordens naquelas atas...
Estúpido em geral, em uma difícil...
Obrigado...
if (Volume[0] > 1) return;
Não utilize este tipo de verificação para detectar a abertura de um novo bar, não funcionará bem na conta, apenas no testador. Você precisa verificar por tempo de barra ou pelo número de barras no gráfico
Ha ha... Aqui está uma mentira...
O problema acabou se revelando na função OpenOrders(). Esqueci completamente de remover o controle da abertura do pedido em caso de quebra de uma vela (barra):
if (Volume[0] > 1) return;
Então, no que a TF, a Expert Advisor, estava testando, estava abrindo ordens naquelas atas...
Estúpido em geral, em uma difícil...
Obrigado...
Melhor assim(https://www.mql5.com/ru/forum/138609/page482):
Melhor ainda, passe o nome do TF desejado para a função
Melhor assim(https://www.mql5.com/ru/forum/138609/page482):
Sabe, com / PrevTime / Eu tentei algo uma vez, mas nunca funcionou. Acho que não consegui colocar esse código no lugar certo.
Com / se (Volume[0] > 1) retornar; / tudo é muito mais simples. Aqui, como eu acredito, tudo funciona para a TF selecionada. Não sei se funciona em uma demonstração, mas não notei erros, bugs e outros detalhes ao abrir pedidos.
Mas há muito tempo eu não uso o controle de abertura de pedidos em um novo bar. Conseguimos construir a função de controle de posições abertas. Junto com a abertura de ordens em um determinado momento, não precisamos de controle de barras como tal.
O código é apenas antigo. Aparentemente, esqueci-me das limitações e inseri-o sem rodeios e continuei a usá-lo...
Você pode me dizer como obter o valor do preço dos níveis de Fibonacci?
De acordo com a condição, uma vez que o preço tenha cruzado os níveis de Fibonacci especificados, um comércio de compra ou venda é aberto.
Um objeto Fibonacci é desenhado por um Expert Advisor usando a função de Kim: https://www.mql5.com/ru/forum/107476/page107#606564
É desenhado sem nenhum problema. Mas então como sabemos o valor do preço do nível especificado?
Esta função parece não funcionar:
Isso é possível? Ou devemos calcular os preços para cada nível separadamente a partir de OBJPROP_PRICE1 e OBJPROP_PRICE2?
Isto é um absurdo. Fiquei acordada metade da noite rachando meus miolos. É claro que a noite provavelmente não é o melhor momento para procurar soluções.
Ajude por favor, boa gente!
Você pode me dizer como obter o valor do preço dos níveis de Fibonacci?
De acordo com a condição, uma vez que o preço tenha ultrapassado os níveis especificados de Fibonacci, uma compra ou venda é aberta.
Um objeto Fibonacci é desenhado por um Expert Advisor usando a função de Kim: https://www.mql5.com/ru/forum/107476/page107#606564
É desenhado sem nenhum problema. Mas então como sabemos o valor do preço do nível especificado?
Esta função não parece caber:
Isso é possível? Ou devemos calcular os preços para cada nível separadamente a partir de OBJPROP_PRICE1 e OBJPROP_PRICE2?
Isto é um absurdo. Fiquei acordada metade da noite rachando meus miolos. É claro que a noite provavelmente não é o melhor momento para procurar soluções.
Socorro, boa gente!
Já havia uma pergunta semelhante:
Quero obter o preço a um nível de Fibo de 23,6%.
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Este dá 0,236, ou seja, não preço, mas nível.
Você pode me dizer como obter o preço do nível. Obrigado!
E também já foi respondido:
Apenas duas operações aritméticas. Multiplicação (0,236 multiplicado pela diferença entre os preços do nível zero e do nível um) e depois adição (o resultado da multiplicação é adicionado ao preço do nível zero).
Uma pergunta semelhante já foi feita:
Quero obter o preço a nível de Fibo de 23,6%.
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Este dá 0,236, ou seja, não o preço, mas o nível.
Você pode me dizer como obter o preço do nível. Obrigado!
E a resposta também foi dada:
Apenas duas operações aritméticas. Multiplicação (0,236 multiplicado pela diferença entre os preços do nível zero e do nível um) e depois adição (o resultado da multiplicação é adicionado ao preço do nível zero).
Muito obrigado!) Foi o que eu pensei em princípio)
"0,236 multiplicado pela diferença entre os preços zero e de primeiro nível" - só que provavelmente seria mais correto dizer "entre os preços zero e de último nível".