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
Ian,
Verifique Straddle&Trail expert. você pode encontrá-lo aqui https://www.mql5.com/en/forum/general
Olá a todos,
Quero fechar todas as minhas encomendas ao mesmo tempo, mas não posso.
Eu tentei este código, mas não funcionou:
''''''''''''''''''''''''''''''''''''''''
total = EncomendasTotal();
para(i=0;i < total;i++)
{
if(OrderSelect(i, SELECT_BY_POS)==verdadeiro)
{
OrderClose(OrderTicket(),OrderLots(),Ask,80,CLR_NONE);
OrderClose(OrderTicket(),OrderLots(),Bid,80,CLR_NONE);
}
}
''''''''''''''''''''''''''''''''''''''''
Alguém pode me ajudar?
Eu ficaria muito grato se vocês pudessem me ajudar.
Mehdi,
Coloque este código (procedimento) fora da seção de início() e quando você se encontrar a condição de fechar todas as negociações, basta chamar o procedimento dessa forma:
int start()
{ // seu código aqui .....
Se (sua condição aqui) ShutDownAllTrades();
}
Fechar tudo comércio
{ int Retry;
Enquanto (OrdensTotal()>0)
{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
se (OrderType()==OP_BUY)
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);
Sleep(1000);
}
caso contrário se (OrderType()==OP_SELL)
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow);
Sleep(1000);
}
senão
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
OrderDelete(OrderTicket());
Sleep(1000);
}
}
}
}
HTH
Yannis
Prezado Yannis,
Obrigado por sua ajuda.
Desejo-lhe o melhor.
Mehdi,
Coloque este código (procedimento) fora da seção de início() e quando você se encontrar a condição de fechar todas as negociações, basta chamar o procedimento dessa forma:
int start()
{ // seu código aqui .....
Se (sua condição aqui) ShutDownAllTrades();
}
Fechar tudo comércio
{ int Retry;
Enquanto (OrdensTotal()>0)
{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
se (OrderType()==OP_BUY)
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow);
Sleep(1000);
}
caso contrário se (OrderType()==OP_SELL)
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow);
Sleep(1000);
}
senão
{ Retry=0; while (Retry<5 && !IsTradeAllowed()) { Retry++; Sleep(1000); }
OrderDelete(OrderTicket());
Sleep(1000);
}
}
}
}
HTH
YannisPrezado Yannis,
Eu adicionei seu procedimento entre " int deinit() { } " (fora do início) como você disse, mas há um problema através da compilação após o ShutDownAllTrades { : '{' vírgula ou ponto-e-vírgula esperado .
Aguardo ansiosamente a sua resposta.
Muito obrigado.
Oops desculpe.
O que está faltando é o () depois de void ShutDownAllTrades()
Tenha cuidado também com a variável chamada 'Slippage' na função de fechamento do pedido.
Talvez seja necessário substituí-la por aquela que você está usando ao fazer seus pedidos.
Yannis
Oops desculpe.
O que está faltando é o () depois de vazio ShutDownAllTrades()
Tenha cuidado também com a variável chamada 'Slippage' na função de fechamento do pedido.
Talvez seja necessário substituí-la por aquela que você está usando ao fazer seus pedidos.
YannisEstá funcionando muito bem !
Obrigado novamente
Estou usando o indicador MTF CCI para a linha inferior do indicador Multi Time Frame, é uma linha de passo amarela, veja imagem anexa.
Quando a linha estiver acima do nível 100 (sobre-comprado) - o preço irá descer e quando estiver abaixo de -100 (sobre-vendido) - o preço irá subir.
O único problema com ele que não se atualiza sempre, tenho que fazê-lo manualmente clicando com o botão direito no gráfico e selecionando 'Atualizar'.
Uma pergunta aos programadores: Existe alguma função no MQ4 para fazer esse tipo de atualização automaticamente em cada tick?
Agradeceria um conselho.
euro pean
Tente isto:
Objetos nulosRedraw()
Redraws todos os objetos da tabela
Amostra
ObjetosRedraw();
Você pode precisar usar ObjectCreate primeiro.
Tente isto:
Objetos nulosRedraw()
Redraws todos os objetos da tabela
Amostra
ObjetosRedraw();
Talvez você precise usar primeiro o ObjectCreate.Obrigado por responder.
Tanto quanto sei, ObjectsRedraw() refresca objetos que acabaram de ser 'criados' e 'definidos'.
Preciso atualizar um indicador que não está na lista de Objects, portanto o ObjectsRedraw() não funciona.
Ou talvez você saiba como se referir a um indicador existente?