[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 52
Pessoal, ajudem-me a entender o código. A tarefa principal é eliminar uma ordem pendente quando um certo nível é alcançado.
if (OrdersTotal()!=0 && Bid == Delete_Level)
{
for (int i=1; i<=OrdersTotal(); i++) //Cycle for all orders..
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)//If there is the next one
{
if(OrderType()>1)
{
if(OrderDelete(OrderTicket())==true)
{
Alert ("Ордера удалены");
}
}
}
}
}
O nível Delete_Level é determinado pela posição de MA 30 em 3 barras até o momento atual.
double MA3 = iMA(NULL, 0, MA_Period_2, 0, MODE_SMA, PRICE_CLOSE, 2); //определение уровня MAdouble Delete_Level = MA3;// Определение значения переменной
Mas o pedido não é excluído neste Nível_De_eliminação. Ajude-me a entender qual é o meu erro.
Algo se esclareceu. Mas ainda não se sabe como resolvê-lo. Usando o Alerta, eu acho que a condição
if (OrdersTotal()!=0 && Bid == Delete_Level)
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para excluir uma ordem pendente quando ela chegar ao nível Delete_Level.
Algo se esclareceu. Mas ainda não consigo descobrir como resolvê-lo. Usando o Alerta, eu acho que a condição
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para apagar uma ordem pendente quando ela chegar ao nível Delete_Level.
Normalize estas variáveis, "reduza-as a um denominador comum" - por exemplo, use alguma tolerância (+/-) do valor da variável Delete_Level, porque não há igualdade exata como você tem agora - Bid == Delete_Level.
Algo se esclareceu. Mas ainda não consigo descobrir como resolvê-lo. Usando o Alerta, eu acho que a condição
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para excluir uma ordem pendente quando ela chegar ao nível Delete_Level.
Por exemplo,
if(Bid-MarketInfo(Symbol(),MODE_SPREAD)*Point< Delete_Level && Bid+MarketInfo(Symbol(),MODE_SPREAD)*Point > Delete_Level) - считать за
if( Bid == Delete_Level )
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Existe uma função de exemplo para trabalhar com datas, ou seja, para determinar a diferença entre duas datas, ela é maior que zero ou não?
e o que é uma data no seu entendimento e na compreensão da MQL ?
Pessoal, ajudem-me a entender o código. A tarefa principal é eliminar uma ordem pendente quando um certo nível é alcançado.
O nível Delete_Level é determinado pela posição de MA 30 em 3 barras até o momento atual.
Mas o pedido não é excluído neste Nível_De_eliminação. Ajude-me a entender qual é o meu erro.
O que você quer dizer com "para onde vai o algoritmo"?
Você diz que não é apagado, o que significa que não vai para OrderDelete.
Então a questão é: para onde vai? Que condição a está bloqueando?
Você diz que ela não é apagada, o que significa que não chega à OrderDelete.
A questão é onde ela chega? Que condição a bloqueia?
Eu entendo a lógica. Vou tentar consertá-lo agora.
Algo se esclareceu. Mas ainda não se sabe como resolvê-lo. Usando o Alerta, eu acho que a condição
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para excluir uma ordem pendente quando ela chegar ao nível Delete_Level.
Algo se esclareceu. Mas ainda não consigo descobrir como resolvê-lo. Usando o Alerta, eu acho que a condição
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para apagar uma ordem pendente quando ela chegar ao nível Delete_Level.
Normalize estas variáveis, "reduza-as a um denominador comum" - por exemplo, use alguma tolerância (+/-) do valor da variável Delete_Level, porque não há igualdade exata como você tem agora - Bid == Delete_Level.
Algo se esclareceu. Mas ainda não consigo descobrir como resolvê-lo. Usando o Alerta, eu acho que a condição
não está satisfeito. Apenas "if(OrderTotal()!=0" separadamente sim, mas não junto com "Bid == Delete_Level". Qual é a razão para isto? Por que quando o Delete_Level é alcançado, a ordem pendente não é excluída. Por favor, sugira algo ou sugira uma solução alternativa para excluir uma ordem pendente quando ela chegar ao nível Delete_Level.
Por exemplo,
Desculpe, mas você poderia ir com calma?) Ajude-me a entender o erro em