Características da linguagem mql5, subtilezas e técnicas - página 177

 
Andrey Barinov:

Compreendo que tem de descarregar para o init (ou melhor ontik) após a mudança. Isto é, memorizar números de conta em variáveis globais e descarregar se ocorrer alteração. Também pode tentar analisar _DeInitReason no init() e descarregar.

Esta solução foi mostrada. Só funciona se o mesmo símbolo existir após a mudança de conta.

 
fxsaber:

Mostrar aqui o código fonte de uma EA que se descarrega a si própria quando a conta muda.

Será que preciso dele? Está aqui a falar do problema dos diferentes nomes de símbolos.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Peculiaridades de mql5, dicas e truques

fxsaber, 2020.05.20 23:09

Tenho um Expert Advisor muito bom, que deve ser apagado durante a mudança de conta.

Suponha que o Expert Advisor está a funcionar no EURUSD. Mudará para um servidor onde os símbolos são prefixados. Por exemplo, EURUSD.abc.

Neste caso, a EA ainda está pendurada e não se pode apagar a si própria. Alguém tem uma solução para este problema?


Esta é exactamente a minha resposta. Se os nomes dos instrumentos forem diferentes nas diferentes contas, usar as funções de manipulação de cordas e extrair a parte direita dessa corda.
 
Igor Zakharov:

em que caso o OnInit() não é iniciado?

Nada é desencadeado.

Talvez ao nível de OnDeinit() tentar apagar?

ExpertRemove() não é definitivamente um ajudante. Pode tentar através de modelos. Mas o OnDeinit não é capaz de detectar que houve uma mudança de conta.

 
Alexey Viktorov:

Será que preciso dele? Está aqui a falar do problema dos nomes de personagens diferentes.

Foi exactamente isso que a minha resposta foi. Se os nomes dos instrumentos forem diferentes em diferentes contas, usar as funções de manipulação de cordas e extrair a parte direita dessa corda.

Não se está a falar com um principiante. Não sugerir hipóteses impraticáveis.

 
fxsaber:

Nada está a começar.

ExpertRemove() não é definitivamente uma ajuda. Podemos tentar através de modelos. Mas no OnDeinit não é possível determinar que tenha havido uma mudança de conta.

Onde o ExpertRemove não funciona - há também ChartClose(). Não compreendo qual é o problema. O que acontece depois de a conta ser alterada? Aparece um gráfico adicional com o Expert Advisor? Ou é apenas o símbolo do gráfico actual que muda? Talvez, o ChartID seja alterado e, portanto, a sua solução anterior não funciona? Os bilhetes são processados de qualquer forma, significa que temos de descarregar para o OnTick, se o OnInit não estiver a funcionar.

 
fxsaber:

Não se está a falar com um recém-chegado. Não sugerir hipóteses impraticáveis.

Da mesma forma, não deve publicar códigos de não trabalho. E não discuta problemas encontrados no espinhoso caminho de um programador no tema das características linguísticas.

 
Alexey Viktorov:

Da mesma forma, não deve publicar códigos de não-trabalho. E não discuta no tópico das características linguísticas os problemas encontrados no caminho espinhoso de um programador.

É incompetente para este problema.

 

apenas os serviços não estão ligados ao gráfico. não o testei, mas muito provavelmente será capaz de recomeçar depois de alterar a conta. e já a partir dele alterar os modelos de outros gráficos. mas em geral é estranho que a REASON_ACCOUNT não seja apanhada.

mas em geral, é mais um insecto do que uma característica.

 
fxsaber:

É incompetente para este problema.

Se é tão competente, então diga-me porque não funciona

RAZÃO_COUNTURA

6

Outra conta foi activada ou reconectada ao servidor de negociação devido a uma alteração nas definições da conta

 
Alexey Viktorov:

Se é tão competente, então diga-me porque é que isto não funciona

RAZÃO_COUNTURA

6

Outra conta foi activada ou reconectada ao servidor de negociação devido a uma alteração nas definições da conta

  1. A documentação é falsa. Pode verificá-lo manualmente através de um novo registo.
  2. Não há uma maneira fácil de se descarregar.