Ferramentas 'Fechar tudo'/'Abrir'. - página 2

 
glader:
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.

 
newdigital:
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...

 
glader:
Eu tentei, mas ERRO : 4109

Ferramentas->Opções->ExpertAdvisors-> V Enable ExpertAdvisors(...e Scripts)

 
ma6:
Ferramentas->Opções->ExpertAdvisors-> V Enable ExpertAdvisors(...e Scripts)

Muito obrigado... está funcionando agora!!!

 

CloseOnTime EA de Kimiv.

Arquivos anexados:
 
ma6:
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

 

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).

Arquivos anexados:
image3.jpg  359 kb