![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
Eu estou negociando AO VIVO. Você negocia AO VIVO? Poderia ser broblem?obrigado pela ajuda com antecedência...
Foi a conta de demonstração da Alpari.
Você quer dizer que você tentou usá-la com uma conta real?
Deveria funcionar também.
Foi uma conta de demonstração da Alpari.
Você quer dizer que você tentou usá-lo com uma conta real?
Deve funcionar também.Sim, tentei usá-lo com conta real ao vivo, mas houve um erro msg...
Muito confuso, mas obrigado por sua ajuda de qualquer forma...
Eu tentei, mas ERRO : 4109
Ferramentas->Opções->ExpertAdvisors-> V Enable ExpertAdvisors(...e Scripts)
Ferramentas->Opções->ExpertAdvisors-> V Enable ExpertAdvisors(...e Scripts)
Muito obrigado... está funcionando agora!!!
CloseOnTime EA de Kimiv.
Ferramentas->Opções->ExpertAdvisors-> V Enable ExpertAdvisors(...e Scripts)
Ainda estou recebendo o mesmo erro. O que você quer dizer com"V"?
obrigado
Eu tenho o mesmo problema.
Encomenda ...... falhou em fechar .Error:4109![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
Fechar todas as ordens abertas
Tenho uma pergunta sobre como fechar todas as negociações abertas. Isso inclui as negociações que foram abertas manualmente.
Aqui está o código:
if(BalanceEquityProtectionLevel > 0 && AccountEquity() <= AccountBalance ()* BalanceEquityProtectionLevel)
{
AllowTrading = falso;
Imprimir("Min. Equity Level Reached - Trading Halted For ",Symbol());
// Alerta("Mín. Equity Level Reached - Trading Halted For ",Symbol());
for(cnt=OrdensTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
mode=OrderType();
if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }
if (mode===OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }
// }
}
}
O problema é que, se eu tiver aberto alguns pares, nem sempre é verdade que todos os negócios também serão fechados. Além disso, acontece que a EA continua a abrir outra negociação, apesar do parâmetro permitir negociação == falso.
Eu estava depurando esta coisa e notei que, por alguma razão, este bloco de código não foi executado para todos os pares. Ora, eu não sei. Alguém sabe a resposta a isso?
Este bloco deveria fechar todas as ordens abertas e evitar mais negociações. Talvez eu pudesse resolver este problema com o parâmetro de escrita falso para um arquivo ou algo assim? O problema nesta situação é também com os pares que não têm ordens abertas.
Obrigado...
Dejan
Aqui está o meu código que escrevi há muito tempo, ele fechará todas as posições em execução.
#incluir
#incluir
int start()
{
duplo sA;
int cnt, totalOrders;
totalOrdens = EncomendasTotal();
se (totalOrdens>0)
{
para (cnt=0;cnt<totalOrdens;cnt++)
{
OrderSelect(0, SELECT_BY_POS);
if (OrderType() == OP_BUY) sA = MarketInfo(OrderSymbol(),MODE_BID);
else sA = MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),sA,3,CLR_NONE);
}
}
retorno(0);
}
Seu código é muito parecido com o meu. Os resultados são os mesmos. Anexei uma foto, para tornar algumas coisas mais claras.
A EA fecha todas as negociações para o par GBPUSD (foto). Como você pode ver, depois desta outra negociação é aberta. (1 significa que o allow trade é verdadeiro, 0 allow trade é falso).