O problema da transferência do MT4 para o MT5. Ou, mais precisamente, a incapacidade de executar alguns algoritmos no MT5 sem errar. - página 5

 
Andrey Khatimlianskii:

A sugestão era fazer isso com um temporizador a cada minuto e meio. Não antes de cada tic-tac, e certamente não em um evento gráfico.

O acesso às séries de tempos no MT5 não é de fato o ideal. Mas se você precisar resolver um problema e não encontrar uma desculpa, então é possível.

Ninguém está à procura de uma desculpa. Você não sabe o nível de dificuldade da tarefa. É por isso que você fala tão facilmente de uma desculpa.

Foi sugerido atualizar um cronômetro a cada 2 minutos. Foi o que eu fiz.

Mas... Isto não é suficiente. Mesmo após esta atualização do timer, ao criar um evento em um gráfico através da GUI, muitas vezes acontecia que chamar iBarShift dava -1 . Isto consequentemente causa uma saída fora dos limites da matriz ou algum outro erro. Então, tentei fazer uma verificação de acessibilidade nas séries de horários antes de entrar no OnChartEvent. Para uma melhor compreensão, direi, precisamos verificar o acesso a todas as 21 séries de tempo. Se pelo menos uma série temporal não for acessível, é quase 100% provável que as parcelas gráficas sejam feitas com algum tipo de erro.

O programa é complexo, com aproximadamente 50.000 linhas. Em tal volume, há muitos acessos de série temporal diferentes.

Os atrasos ocorrem o tempo todo (na variante MT5). Funciona como um relógio em MT4.

O MT5 não é interessante para mim. Eu não o uso no comércio. Eu uso apenas o MT4. Comecei a traduzir o programa somente a pedido dos usuários. Quando me deparei com tal dor no pescoço, decidi que é melhor fazer o que é interessante.

Durante os 14 anos de desenvolvimento do programa, algumas idéias interessantes surgiram. Agora estou implementando estas idéias.

 
Eugeni Neumoin:

Foi sugerido que ele deveria ser atualizado com um timer a cada 2 minutos. Foi o que eu fiz.

Mas. Isto não é suficiente. Mesmo após esta atualização do timer, ao criar um evento em um gráfico através da GUI, muitas vezes se verificou que a chamada iBarShift deu -1 .

O iBarShift é exatamente verdade?

Também tive dificuldades com a sincronização, mesmo após atualizações cronometradas. Mas não consegui reproduzi-lo ironicamente, o problema está flutuando.


Eugeni Neumoin:

O MT5 não é interessante para mim. Eu não o uso no comércio. Apenas MT4. Comecei a traduzir o programa somente a pedido dos usuários. Quando me deparei com tal dor no pescoço, decidi que é melhor trabalhar com as coisas que são interessantes para mim.

Durante os 14 anos de desenvolvimento do programa, algumas idéias interessantes surgiram. Agora estou implementando estas idéias.

Eu não estou defendendo o MT5. Acabei de perceber imediatamente que você não tem um grande desejo de compreendê-lo).

É claro, é melhor fazer o que é interessante!

 
Eugeni Neumoin:

Ninguém está à procura de uma desculpa. Você não sabe o nível de dificuldade da tarefa. É por isso que você fala de desculpas tão facilmente.

A sugestão era de atualizar um temporizador a cada 2 minutos. Foi o que eu fiz.

Mas... Isto não é suficiente. Mesmo após esta atualização do timer, ao criar um evento em um gráfico através da GUI, muitas vezes acontecia que chamar iBarShift dava -1 . Isto consequentemente causa uma saída fora dos limites da matriz ou algum outro erro. Então, tentei fazer uma verificação de acessibilidade nas séries de horários antes de entrar no OnChartEvent. Para uma melhor compreensão, direi, precisamos verificar o acesso a todas as 21 séries de tempo. Se pelo menos uma série temporal não for acessível, é quase 100% provável que as parcelas gráficas sejam feitas com algum tipo de erro.

O programa é complexo, com cerca de 50.000 linhas. Em tal volume, há muitos acessos de série temporal diferentes.

Os atrasos ocorrem o tempo todo (na variante MT5). Funciona como um relógio em MT4.

O MT5 não é interessante para mim. Eu não o uso no comércio. Eu uso apenas o MT4. Comecei a traduzir o programa somente a pedido dos usuários. Quando me deparei com tal dor no pescoço, decidi que é melhor fazer o que é interessante.

Durante os 14 anos de desenvolvimento do programa, algumas idéias interessantes surgiram. Agora estou implementando estas idéias.

Cache as séries cronológicas.
 
Artyom Trishkin:
Cache suas séries cronológicas.

O que você quer dizer? Fazer manualmente suas próprias caches?

 
Andrey Khatimlianskii:

O que você quer dizer? Fazer manualmente suas próprias caches?

Uma vez contadas todas as séries cronológicas, e depois apenas acrescente mais. Isto pode ser feito em uma janela.
Sim, em suas próprias matrizes. Você pode fazer isso com SB. A classe Timeseries é a sua própria.
 
Andrey Khatimlianskii:

O valor exato do iBarShift é verdadeiro?

verdade. Preciso saber o número exato da barra.

 
Artyom Trishkin:
Conte todas as séries cronológicas uma vez, e depois acrescente apenas mais. Você pode fazer isso na janela.

Então você sugere não usar buffers, mas trabalhar com suas matrizes?

Para que servem então os amortecedores?

Então você se propõe a fazer sua própria muleta, ao invés de tampões :(

E em vez do iTime, iLow, etc., faça suas próprias funções... Reescrever tudo à sua maneira, contornando funções que não funcionam a partir do MT5...

Isto é drástico. Mas deixe os entusiastas fazerem isso. Vou ficar de lado. Eu nem vou assistir ao processo.

 
Eugeni Neumoin:

Então você sugere não usar amortecedores, mas trabalhar com suas próprias matrizes?

Dê uma olhada na SB. Há ali um trabalho com indicadores. Se você não quiser fazer o seu próprio. Em geral, é preciso criar uma aula uma vez e depois usá-la para qualquer mensagem de texto. E os dados estarão sempre disponíveis. Somente você terá que acrescentar novos indiscriminadamente.
 
Eugeni Neumoin:

Então você sugere não usar buffers, mas trabalhar com suas matrizes?

Para que servem então os amortecedores?

Então você se propõe a fazer sua própria muleta, ao invés de tampões :(

E em vez do iTime, iLow, etc., faça suas próprias funções... Reescrever tudo à sua maneira, contornando funções que não funcionam a partir do MT5...

Tudo funciona lá. Mas às vezes o acesso é negado. Talvez por causa das atualizações da série temporal - não sei. Se recusar, é preciso repetir o pedido, pois o primeiro pedido ativa a troca de dados.
 
Eugeni Neumoin:

verdade. Preciso saber o número exato da barra.

Então há um erro de lógica, talvez. Pode não haver um bar.