Erros, bugs, perguntas - página 2596

 

Erro de geração de transacções (estrutura MqlTradeTransaction).

Erro de repetição: Enviar a primeira ordem de mercado com o volume de 1 lote para Long, enviar a segunda ordem de mercado com o volume de 2 lotes para Short.

Erro no preenchimento do campo na estrutura MqlTradeTransaction->position. O campo é preenchido com o bilhete da posição anterior. Quando se continua a negociar utilizando as ordens que invertem a posição, o campo dado mostra uma estranha confusão entre a antiga e a nova posição dos bilhetes.

Verifiquei-o na Bolsa de Moscovo com corretores: Otkritie e BKS. No testador, o erro é também reproduzido.

Telas de transacções que ilustram o erro nestas transacções:

Otkrytie:

Abertura

BCS:

BCS

Testador:

Testador

 
Francuz:

Erro de geração de transacções (estrutura MqlTradeTransaction).

Erro de repetição: Enviar a primeira ordem de mercado com o volume de 1 lote para Long, enviar a segunda ordem de mercado com o volume de 2 lotes para Short.

Erro no preenchimento do campo na estrutura MqlTradeTransaction->position. O campo é preenchido com o bilhete da posição anterior. Quando se continua a negociar utilizando as ordens que invertem a posição, o campo dado mostra uma estranha confusão entre a antiga e a nova posição dos bilhetes.

Verifiquei-o na Bolsa de Moscovo com corretores: Otkritie e BKS. O erro também é reproduzido no testador.

Telas de transacções que ilustram o erro nestas transacções:

Otkrytie:

BCS:

Testador:


Há apenas uma posição no modo de comércio "netting". Durante a sua vida o seu identificador (id de posição) não muda. O identificador é igual ao bilhete da primeira ordem com que a posição foi aberta.

 
Estou ciente disso. Mas numa "virada", a posição anterior é fechada e uma nova posição (com um novo bilhete) é aberta na direcção oposta. O que se reflecte nestas transacções com um erro.
 
Francuz:
Estou ciente disso. Mas quando se "vira" uma posição anterior é fechada, e uma nova posição (com um novo ticker) na direcção oposta é aberta. O que nestas transacções se reflecte com um erro.

Não fecha. Pode rolar no Terminal durante meses e o Terminal assumirá que só havia uma posição. E o histórico de negociação mostrará apenas uma entrada durante meses no modo de exibição de posições fechadas.

 
Boa tarde. Quero depurar a minha EA sobre dados históricos. Mas o debugger está a funcionar MovingAverage.ex5, não o meu EA. como posso corrigi-lo? A depuração de dados reais irá executar a minha EA.
 
Azamat Mullayanov:
Bom dia. Quero fazer a depuração da minha EA sobre dados históricos. Mas gosta de gerir MovingAverage.ex5, não a minha EA. Quero depurar os dados reais e ele irá executar a minha EA.

Descrever passo a passo (com capturas de ecrã) exactamente o que se faz e onde se clica.

 
Azamat Mullayanov:
Tarde. Quero fazer a depuração da minha EA sobre dados históricos. Mas o depurador corre MovingAverage.ex5, não a minha EA. Quero depurar dados reais e não é a minha EA.

O conselheiro não pode estar na pasta de Peritos. Na pasta Scripts, por exemplo.

 
Vladimir Karputov:

Descrever passo a passo (com capturas de ecrã) exactamente o que se faz e onde se clica.

Desculpe. Passei meio dia a bisbilhotar, mas assim que o coloquei no fórum, começou logo a funcionar. Guardei-o no directório {MQL5}Experts}Meu directório e o depurador começou a funcionar correctamente. Copiei-o de volta para a MQL5Experts - o debugger funciona.
 
fxsaber:

Não fecha. Pode rolar no Terminal durante meses e o Terminal assumirá que só havia uma posição. E o histórico de negociação mostrará apenas uma entrada durante meses no modo de exibição de posições fechadas.

Está enganado. Quando se vira uma posição, o bilhete da posição activa é mudado para outra. E o terminal apresenta-o correctamente. Mas nas transacções, dá informações erradas.

 
Francuz:

Está enganado. Quando uma posição é invertida, o bilhete da posição activa muda para uma posição diferente. E o terminal exibe isto correctamente. Mas dá informações erradas nas transacções.

POSITION_TICKET muda, POSITION_ID não muda.

Razão: