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

 

Primeiro uma citação do guia de idiomas da MQL5. Sob o título Organização do acesso aos dados.

"...Acessibilidade dos dados

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

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

Por favor, não dê imediatamente conselhos sobre como contornar o problema descrito. Isto é escrito principalmente para desenvolvedores da MQL5.

No ZUP para MT4 é implementado o algoritmo de filtragem fractal. OZUP é um ziguezague universal com padrões Pesavento. A interface gráfica está um pouco escrita sobre isso. Mas aqui vou descrever o algoritmo mais uma vez.

Ao exibir ferramentas gráficas em um gráfico com ligação de ferramentas gráficas selecionadas (por exemplo, Andrew's Pitchfork, ou qualquer outro) para ziguezaguear extremos ou padrões de ondas usando a interface gráfica, o algoritmo de filtragem fractal é ativado.

A filtragem fractal remove a ferramenta gráfica criada naqueles períodos de tempo em que a saída desta ferramenta gráfica perde seu significado.

Por exemplo, não há citações para o extremo selecionado em alguns períodos de tempo (isto é relevante para períodos mais baixos) ou dois ou mais extremos aparecem no corpo de uma barra em períodos mais altos com várias variações de localização dentro da barra.

Não faz sentido exibir uma ferramenta gráfica previamente criada em tais períodos de tempo. Ela perde sua funcionalidade. Nesses casos, a filtragem fractal impede automaticamente a exibição de ferramentas gráficas "em apuros". Acrescentarei para as redes neurais à medida que for avançando... há algumas idéias muito interessantes sobre a implementação em redes neurais... ...mas esse é um tópico diferente.

O problema com a MQL5 é que mesmo tendo gerado séries temporais em todos os períodos de tempo para todos os extremos conectados a uma ferramenta de gráficos, há momentos em que o acesso a alguns períodos de tempo para o extremo selecionado é interrompido devido às peculiaridades do acesso aos dados (ver acima). Como resultado, são gerados dados incorretos sobre os prazos para o algoritmo de filtragem fractal. Isto é, por exemplo, ao acessar todos os períodos de tempo, o cf superior nos dados para filtragem fractal dá o valor do cf superior do período mensal. Mas no momento em quea acessibilidade não é garantida, o tf superior para este extremo é limitado ao prazo atual.

Um usuário clica no símbolo ao qual está anexada uma ferramenta gráfica. O símbolo do gráfico será exibido. O usuário muda para o período de tempo mais antigo. O algoritmo do filtro fractal apaga a ferramenta gráfica. O usuário está confuso. Os extremos são todos visíveis, mas a ferramenta gráfica desaparece.

E aqui é impossível organizar a espera para a encadernação do símbolo do gráfico após um clique do usuário sobre um símbolo selecionado até o momento de acesso a séries de tempo diferentes do atual.

Não existem tais problemas no MT4.

Esta situação é o problema que me tem impedido, neste caso, de desenvolver programas para o MT5. Este problema era claro mesmo quando o MT5 foi introduzido no mercado.

Traduzi o código ZUP para o MT5. E a colocaram em meu mercado. Mas o problema descrito acima está presente ali. Eu não construí muletas para contornar o problema. Se você conhece este problema, você pode simplesmente apagar a ferramenta gráfica criada. E exibi-la de novo. Mas isto é, como eu deveria dizer tão gentilmente....

Acredito que a questão descrita acima ainda é uma imperfeição da linguagem MQL5 ou do terminal MT5. DEVERÁ!! ser um acesso garantido às séries de tempo já geradas, a qualquer momento!

Em um sidenote. Ao criar uma partição de onda na ZUP, a filtragem fractal é ativada. Aqui temos o seguinte. Quando tenho acesso a todas as séries cronológicas de todos os períodos de tempo, os padrões das ondas estão corretos. Mas com o súbito término do acesso às séries temporais, os padrões de onda podem ser emitidos de forma imprevisível. Assim, quando a partição das ondas estava sendo criada, tudo estava arrumado. E em algum momento posterior, quando a partição das ondas foi criada na transição para outros períodos de tempo, ela foi exibida de forma imprevisível. E não é fácil criar muletas para eliminar operações terminais errôneas.

 
Esqueça os objetos gráficos. É muito inconveniente e limitado. Com o kanvas, tudo funcionará mais fácil, mais rápido e com possibilidades gráficas ilimitadas.
 

Ah, a propósito, ainda ontem eu estava escrevendo um indicador no qual eu tinha que copiar periodicamente dados em pedaços com a duração de um ano da W1. Muitas vezes, tentativas fracassadas de cópia aconteceram. No final não funcionou, tive que fazer tudo por um princípio diferente.

 
Eugeni Neumoin:

...

Também não acostumado e inconveniente com o acesso aos dados após 4.

O acesso aos dados em 5 é limitado à TF.

Se você traçar uma linha de tendência bastante longa na TF D1 ou na W1, então indo para M1 ou M5 você não a verá devido à limitação de acesso a pontos de tendência distantes.

Você pode verificá-lo facilmente.

Temos que lidar com a lona. Mas é possível que uma tal emboscada também lá esteja esperando.

 
Você pode demonstrar de forma reprodutível a indisponibilidade dos dados?

Você afirma sem provas reprodutíveis.
 
Ótimo! Eu queria preparar o indicador, remover o supérfluo para mostrar o principal. Eu fiz. Mas, de repente, funcionou como um relógio suíço.
 
Uladzimir Izerski:

É também inabitual e inconveniente com o acesso aos dados após 4.

O acesso aos dados em 5 é limitado à TF.

Se você traçar uma linha de tendência bastante longa na TF D1 ou na W1, então indo para M1 ou M5 você não a verá devido à limitação de acesso ao ponto de tendência distante.

Você pode verificá-lo facilmente.

Temos que lidar com a lona. Mas talvez haja uma emboscada esperando lá também.

É uma história completamente diferente. O ponto distante deve ter o histórico de preços pequenos para mostrar a tendência.

Vamos desenhar com garfo W1 com referência a ele. O tempo mínimo é de m20. Isto é demonstrado pelo algoritmo de filtragem fractal. Neste caso, ela é mostrada na ponta da ferramenta. Não faz sentido construir algo com referência ao primeiro ponto da forquilha em tf inferior.

O ponto mostrado pela seta para cima na próxima foto no m20 é marcado com uma linha vertical. Tudo é exibido bem. Mas em estruturas mais rasas, essas forquilhas não serão mostradas por filtragem fractal. A história vai além doTERMINAL_MAXBARS em quadros mais rasos. É por isso que não será mostrado na TF menos de m20.

Tudo é perfeitamente exposto. Sem turnos. E funciona bem no MT5. Entretanto, para poder exibi-lo dessa forma, deve-se definir a hora exata do extremo no menor intervalo de tempo, no nosso caso no m20, ao exibir os garfos.

A propósito, você pode ver que a linha SLM318 (linha pontilhada) funcionou bem em 11/09-2018. É como a técnica de franco-atirador, que a academia forex de Minsk está promovendo. Mas aqui o mercado "serrou" a linha SLM318 e simplesmente trabalhou magistralmente...

 
Renat Fatkhullin:
Você pode demonstrar de forma reprodutível a inacessibilidade dos dados?

Você afirma sem provas reprodutíveis.

Eu não salvei a foto. Mas postarei as fotos quando a situação surgir. Não serei capaz de reproduzi-la com algum código de teste. É muito código para criar.

Descreverei apenas como foi. Eu desenhei a forquilha na H3. Também o ligo aos extremos disponíveis em quadros superiores. Eu me mudei para a H4. As forquilhas desapareceram. Comecei a entender por que isso aconteceu. Verifiquei a ponta da ferramenta na qual está localizado o limite TF da filtração fractal. Parecia queo limite superior estava na H3. Eu apaguei a forquilha da tabela. Re-ligou a forquilha para os mesmos extremos. Eu verifiquei o limite superior. Acontece que o prazo foi de um mês. E tais situações se repetiram. Mas não com freqüência.

O programa acessa todos os cofres para os primeiros 10 extremos ao exibir um ziguezague. Cada vez que o ziguezague é redesenhado. O ziguezague é redesenhado somente quando o preço deixa a barra zero. Não em cada tic-tac.

Estou fechando o terminal. Descarrego-o da memória do computador. Acessei a pasta com o histórico onde os arquivos *.hc estão localizados. Arquivos de séries cronológicas para todos os períodos de tempo têm a data e a hora a partir do momento em que o terminal foi descarregado da memória do computador. Ou seja, todas as séries temporais são formadas.

 
Não interessado na foto, ela é derivada de seu código.

É a recusa em fornecer dados com registros claros que é de interesse.
 
Renat Fatkhullin:
Não é a imagem em que estou interessado, é derivada do seu código.

É a recusa em fornecer dados com registros claros que é de interesse.

Isto tem que ser modelado. Para criar logs. Vou pensar em como fazer isso.

 
Renat Fatkhullin:
Você pode demonstrar de forma reprodutível a inacessibilidade dos dados?

Você afirma sem provas reprodutíveis.

Se essa é uma pergunta para mim?

Depois, aqui está reproduzindo um exemplo simples.

D1.

v1

Ir para H4

H4


Ir para H1

H1


Haverá um gráfico claro em um pequeno TF.

Os objetos estão nas listas, mas não estão na tabela.

m1