Erro 4756 intermitente - página 2

 
marcelodelta:

 Perfeito. 

 Como tenho dois robôs para o mesmo ativo PositionClose não funcionaria pois ele cancelaria todas a ordens em aberto, certo?

 Se tivesse a opção de ticket e symbol ao mesmo tempo. 

 Ele não encontra o symbolo remoto. Que seria WINM20
Cada robô precisa gerenciar os Tickets de forma independente, por isso é preciso fazer um positionget usando symbol e magic_number assim vc só encerra a posição daquele EA.
Mas é que nem o trader patinhas disse, vc não disse ao certo o erro ou problema, sua conta seria hedge? Netting? Há diferenças na maneira de manusear as ordens 
 

 Conta hedge 

 Estou recebendo essa mensagem ao executar o comando  PositionClose(ticket)


2020.05.26 17:00:11.764 Ticks   old tick WINM20.GRAFICOv2 (tick: 2020.05.26 16:59:00.097, last: 2020.05.26 17:00:00.008) 85600/85605
 
marcelodelta:

 Conta hedge 

 Estou recebendo essa mensagem ao executar o comando  PositionClose(ticket)


Da pra fazer assim. Porem se tiver uma única posição por direção.

#define TICKET (PositionGetInteger(POSITION_IDENTIFIER))
#define CLOSE_ORDER (m_trade.PositionClose(TICKET))

Vc pode definir essas diretiva (#define), ai no decorrer do codigo é só chamar o TICKET para saber o ticket da ordem aberta e se for encerrar ela um CLOSE_ORDER.

Enfim, eu fiz assim pq eu achei mais cômodo, mas cada desenvolvedor terá uma solução diferente pra isso. Agora se vc for ter muitas ordens na compra e ou na venda, tipo um grid, sugiro vc criar um objeto(classe) e gerenciar isso.


Aqui a documentação do pré-processador, que ao meu ver é uma mão na roda. ( viva o C) rsrsrsrs...lol

https://www.mql5.com/pt/docs/basis/preprosessor/constant

Documentação sobre MQL5: Elementos Básicos da Linguagem / Preprocessador / Substituição de Macro (#define)
Documentação sobre MQL5: Elementos Básicos da Linguagem / Preprocessador / Substituição de Macro (#define)
  • www.mql5.com
As diretivas do pré-processador são usadas ​​pelo do compilador para pré-processamento do código fonte antes de sua compilação. A diretiva sempre começa com o Cada diretiva é descrita por um registro separado e opera antes da mudança de linha. Não se podem utilizar várias diretivas num só registro. Se o registro da diretiva for muito grande...
Razão: