Erros, bugs, perguntas - página 895

 
Konstantin83: É aberta uma encomenda com um magik. Depois este magik é transferido para o comércio e a posição. Depois, quando a posição é fechada com lucro ou parar, o número mágico não é transferido para a ordem de fecho.

Como posso conhecer o lucro de uma posição através de um comércio mágico? O comércio de fecho não vai lá porque não tem um magik.

POSITION_IDENTIFIER

O ID da posição é um número único dado a cada posição recentemente aberta e não muda ao longo da sua vida. Um capotamento da posição não altera o identificador da posição.

longo

DEAL_POSITION_ID

Identificador da posição, na abertura, modificação ou encerramento da qual este acordo estava envolvido. Cada posição tem um identificador único, que é atribuído a todos os negócios feitos no instrumento durante o tempo de vida da posição.

longo

 
Uma terminação anormal significa que o Expert Advisor é laçado, não verifica o IsStopped e é parado à força pelo terminal.
 
Renat:
A terminação anormal significa que o Expert Advisor é feito em loop, não verifica o IsStopped e é forçado a parar junto ao terminal.

Posso notar que a terminação anormal não se deve apenas ao código MQL, mas também a soluços internos do próprio tempo de execução. Portanto, digamos que a terminação anormal é incontrolável a partir do MQL.

Por exemplo, quando o código MQL envia um comando para eliminar ObjectDelete um objecto de um gráfico que já existe (nem objecto nem gráfico). Mas estava lá no momento em que o comando foi enviado.
E o código MQL não vai esperar pela resposta do comando, uma vez que o desligamento não ocorreu no código MQL, mas sim na profundidade de execução. Isto é, no próprio ObjectDelete. como resultado, teremos uma rescisão anormal
O segundo caso popular é o funcionamento da função ObjectsDeleteAll. Uma vez que é síncrona, também depende da eliminação de objectos que já foram eliminados, mas só depois de ser chamada.
O terceiro caso é o mais prejudicial, quando o tempo de execução não pode completar o comando Expert Advisor da Deinit, porque a EA foi removida do gráfico e o gráfico está fechado. Também vamos obter o congelamento do ambiente e a cessação anormal descontrolada.

Tudo o que descrevi acima, tudo se relaciona especificamente com o término do trabalho do expansor na função OnDeinit. Algures na profundidade do código, existe uma inconsistência entre as acções finais, em primeiro lugar com a presença do gráfico, e em segundo lugar - com o comportamento do ambiente no Deinit de especialista.
Alguém faz algo mais cedo e causa uma rescisão anormal.

É claro que, em alguns casos, consegui resolver este problema, verificando adicionalmente a disponibilidade. Mas raramente, mas um dos problemas de sincronização descritos ocorre. A remoção/instalação de um indicador num gráfico que está a tentar fechar, a remoção de objectos.

 

Gostaria de algumas respostas sobre como pode haver um Sorteio Absoluto MAIS do que um Balanço Inicial.

Embora por definição.

 Absolute Drawdown
Просадка от начального баланса показывает, насколько уменьшался баланс относительно первоначального значения. Максимально может быть равно начальному балансу, если потеряны все деньги.

Detalhado no tópicohttps://www.mql5.com/ru/forum/8996

 
Renat:
Terminação anormal significa que a EA é ligada em loop e não verifica o IsStopped e é parada à força pelo terminal.

Errado.

sergeev:

Posso salientar que a terminação anormal não se deve apenas ao código MQL, mas também a soluços internos no próprio tempo de execução.

Sim, e há muitas dessas surpresas.

Experimentei um enforcamento do terminal e a incapacidade de apagar o Expert Advisor devido a memória insuficiente. Neste caso, mesmo o abate de árvores nem sempre é registado.

 
komposter:

Errado.

Sim, e há muitas surpresas como essa.

Encontrei pendências de terminal e incapacidade de apagar EA se não houver memória suficiente. Neste caso, nem sempre o abate de árvores funciona.

Tal como entendi este tópicohttps://www.mql5.com/ru/forum/8278 trata deste mesmo assunto.
Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс.
 
Yedelkin:

POSITION_IDENTIFIER

O identificador de posição é um número único que é atribuído a cada posição recentemente aberta e não muda ao longo da sua vida útil. A inversão de uma posição não altera o identificador da posição.

longo

DEAL_POSITION_ID

Identificador da posição, na abertura, modificação ou encerramento da qual este acordo estava envolvido. Cada posição tem um identificador único, que é atribuído a todos os negócios feitos no instrumento durante o tempo de vida da posição.

longo

Obrigado, ajudou)
 
iTC:
Tal como o entendo, este tópicohttps://www.mql5.com/ru/forum/8278 trata precisamente desta questão.

Não, tratava-se dos indicadores.

Um Expert Advisor que excede algum limite de memória pendura silenciosamente o terminal. Acontece, por exemplo, quando muitos gráficos de diferentes símbolos/períodos com indicadores são carregados.

 
sergeev:

Posso notar que a terminação anormal não se deve apenas ao código MQL, mas também a soluços internos do próprio tempo de execução. Portanto, digamos que a terminação anormal é incontrolável a partir do MQL.

Por exemplo, quando o código MQL envia um comando para remover um objecto ObjectDelete de um gráfico que já existe (nem um objecto, nem um gráfico). Mas estava lá na altura em que o comando foi enviado.
E o código MQL não vai esperar pela resposta do comando, uma vez que o desligamento não ocorreu no código MQL, mas sim na profundidade de execução. Isto é, no próprio ObjectDelete. como resultado, teremos uma rescisão anormal
O segundo caso popular é a operação da função ObjectsDeleteAll. Uma vez que é síncrona, também depende da eliminação de objectos que já foram eliminados, mas só depois de ser chamada.
O terceiro caso é o mais prejudicial, quando o tempo de execução não pode completar o comando Expert Advisor da Deinit, porque a EA foi removida do gráfico e o gráfico está fechado. Também vamos obter o congelamento do ambiente e a cessação anormal descontrolada.

Tudo o que descrevi acima, tudo se relaciona especificamente com o término do trabalho do expansor na função OnDeinit. Algures na profundidade do código, existe uma inconsistência entre as acções finais, em primeiro lugar com a presença do gráfico, e em segundo lugar - com o comportamento do ambiente no Deinit de especialista.
Alguém faz algo mais cedo e causa uma rescisão anormal.

É claro que, em alguns casos, consegui resolver este problema, verificando adicionalmente a disponibilidade. Mas raramente, mas um dos problemas de sincronização descritos ocorre. A remoção/instalação de um indicador num gráfico que está a tentar fechar, a remoção de objectos.

Obrigado, isso será verificado.
 
komposter:

Não, tratava-se dos indicadores.

Um Expert Advisor que excede algum limite de memória pendura silenciosamente o terminal. Isto acontece, por exemplo, quando muitos gráficos de diferentes símbolos/períodos com indicadores são carregados.

Obrigado, iremos sem dúvida verificar isso.
Razão: