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 6

 
Por que não criar seu próprio terminal em primeiro lugar?
 
Artyom Trishkin:
Você tem que contar todas as séries cronológicas uma vez, e depois apenas complementá-las. Isto pode ser feito na janela.
Sim, em suas matrizes. Você pode usar a SB. A classe Timeseries é sua própria.

Isso é um absurdo!

Para que servem então o terminal e o MQL? A fim de escrever tudo você mesmo? E enviar os pedidos por meio de correção diretamente para o corretor?

 
Eugeni Neumoin:

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

Para que servem então os amortecedores?

Então você propõe 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.

Fiz muitos indicadores desta forma - nas aulas de timeseries. Tudo está lá, e não é diferente de trabalhar com indicadores comuns. Mas, além disso - um monte de conveniências.
 
Andrey Khatimlianskii:

Um erro de lógica, então, talvez. Pode não haver um bar.

Há um bar. Nem sempre é uma função que dá -1. Acho que é apenas isto da descrição da linguagem MT5:

"...Disponibilidade de dados.

A disponibilidade de dados no formato HCC ou mesmo no formato HC pronto para uso nem sempre significa a disponibilidade incondicional desses dados para exibição em um gráfico ou para uso em programas de mql5.

Ao acessar dados de preços ou valores indicadores de programas de mql5 , deve-se ter em mente que não é garantido que estejam disponíveis em um determinado momento, ou a partir de um determinado momento...".

 
Andrey Khatimlianskii:

Isso é um absurdo!

Para que servem então os terminais e MQLs? Então você mesmo pode escrever tudo? E enviar os pedidos por meio de correção diretamente para o corretor?

Que disparate é esse? Que você tem dados prontos no buffer? Já foi feito mais de uma vez em 4 para acelerar as coisas.
 
Artyom Trishkin:
Tudo aí funciona. Mas às vezes o acesso é negado. Talvez por causa das atualizações das séries cronológicas - não sei. Quando se recusa, é preciso repetir o pedido, pois o primeiro pedido ativa a troca de dados.

Se tudo funcionasse, não haveria um milhão de tópicos dedicados a este problema.

A lógica acabou se revelando mais complicada do que os usuários do terminal estão prontos para lidar.
E deve haver erros, mas os desenvolvedores não têm o lazer de procurá-los, e ninguém quer reproduzi-los e comprová-los entre os usuários.

 
Artyom Trishkin:
O que é a ilusão? Que você tem dados prontos no buffer? Isto foi feito mais de uma vez em 4 para acelerar as coisas.

O absurdo está em organizar sua própria cópia dos dados, que já está disponível no terminal.

 
Eugeni Neumoin:

O bar está lá. A função nem sempre produz um -1. Acredito que isto é apenas o que está na descrição da linguagem MT5:

"...Disponibilidade de dados

A disponibilidade de dados no formato HCC ou mesmo no formato HC pronto para uso nem sempre significa a disponibilidade incondicional desses dados para exibição em um gráfico ou para uso em programas de mql5.

Ao acessar dados de preços ou valores indicadores de programas de mql5 , deve-se ter em mente que não é garantido que estejam disponíveis em um determinado momento, ou a partir de um determinado momento...".

iBarShift() funciona da mesma forma em ambos os terminais. E eles devolvem os mesmos códigos de retorno sob as mesmas condições.
 
Artyom Trishkin:
Fiz muitos indicadores dessa forma - nas aulas de timeseries. Tudo está lá, e não difere do trabalho comum com indicadores. Mas, além disso - muitas conveniências.

Ainda assim, é melhor que o idioma funcione corretamente sem esses artifícios. Ou a linguagem foi feita da maneira que você sugere. Em outras palavras, para que os programadores não inventem algo à sua maneira com discussões no fórum, a linguagem deve ser implementada, talvez através de algumas funções adicionais, sem falhar o acesso às séries de tempo.

 
Artyom Trishkin:
iBarShift() funciona da mesma forma em ambos os terminais. E os mesmos códigos de retorno são devolvidos sob as mesmas condições.

Por que, então, a descrição do idioma contém a citação que eu dei? Se tudo funciona bem, por que escrever no guia de idiomas que o acesso pode ser negado a qualquer momento?

E quando há uma negação de acesso e os desenvolvedores são honestos sobre isso, então há muitos tópicos no fórum. E TODO! programador se depara com este problema. E todos tentam resolver este problema à sua própria maneira. Alguns podem fazer isso e outros não.

Desenvolvedores literários criam bibliotecas, por exemplo, de fluxo tensor, para que as pessoas não sintam agonia. E aqui... Bem, no início da linha, todos leram as respostas de Renat.