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

 

Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação

Bugs, bugs, perguntas

Renat Fatkhullin, 2017.03.31 09:10

Use o ArraySize para objetos dinâmicos e aplique o sizeof apenas a objetos estáticos. O tamanho das contagens em tempo de compilação e é sempre uma constante.

 

Fórum sobre negociação, sistemas de negociação automatizados e testes estratégicos

SérieInfoInteger(_Símbolo,_Periodo,SÉRIE_SYNCHRONIZED)) e SymbolIsSynchronized(_Símbolo)

Slawa, 2017.04.04 08:05

Em especialistas e scripts ao chamar as funções de cópia são feitas várias tentativas - a primeira data no servidor é verificada, a primeira data no terminal do cliente é verificada, em comparação com a data solicitada, a sincronização de símbolos é verificada, a solicitação de reinício é enviada, pequena espera e arredondada com verificação de sincronização. Se o símbolo ainda não estiver sincronizado, é-lhe dado o que é e satisfaz as condições do pedido. As séries de tempos solicitadas não são verificadas para sincronização, uma vez que são completadas no momento em que os dados são paginados.

Nos indicadores apenas um pedido é feito - sem loop! Então tudo o que foi conseguido é dado imediatamente.

 

No testador MT5 em modo "ticks reais" a base do histórico não são ticks reais, mas sim barras M1. Isto significa que se as carraças reais não correspondem a barras, elas são ignoradas e, em vez disso, são geradas carraças artificiais, que devem corresponder a barras.

Ao mesmo tempo, se o CopyTicks for solicitado por mais de 128K, então no testador, eles serão retirados não do cache (ticks reais + gerados), mas de uma base de dados - ticks reais. E obter o descasamento no testador da história do tick e o que o testador estava gerando.

 
fxsaber:

No testador MT5 em modo "ticks reais" a base do histórico não são ticks reais, mas sim barras M1. Isto significa que se as carraças reais não correspondem a barras, elas são ignoradas e, em vez disso, são geradas carraças artificiais, que devem corresponder a barras.

Ao mesmo tempo, se o CopyTicks for solicitado por mais de 128K, então no testador, eles serão retirados não do cache (ticks reais + gerados), mas de uma base de dados - ticks reais. E conseguir um desajuste no testador entre a história dos carrapatos e o que o testador estava colocando.

Que horrível! É mesmo assim? - Você escreveu em SD?

Em que acreditar agora, como viver... (quase sem ironia triste)

 
Andrey Dik:

Que horrível! É mesmo verdade? - Escreveste-o em SD?

Esta é uma paráfrase altamente abreviada das respostas dos desenvolvedores e não da minha aplicação para o SD.
 
fxsaber:

Ao mesmo tempo, se o CopyTicks for solicitado para mais de 128K peças de borda,

Qual o limite? 128K últimos ?

Ou o primeiro ?

 
George Merts:

Qual é a vantagem? 128K do último ?

Ou o primeiro ?


A mais recente.
 
Andrey Dik:

Que horrível! É mesmo verdade? - Eles escreveram no SD?

Em que acreditar agora, como viver... (quase sem ironia triste)

https://www.mql5.com/ru/docs/runtime/testing#real_ticks
 

Nos testes, os dados minúsculos são considerados mais confiáveis.

As barras minúsculas são mais confiáveis? Os dados do tick não são o último recurso? Por que precisamos de dados reais, se não são levados em conta?

Eu era ingênuo quando estava testando em minutos, depois testei em carrapatos, depois em carrapatos reais como uma verificação final de precisão. Agora entendo que não há sentido no terceiro cheque.

 
Andrey Dik:

Ao testar, dados minúsculos são considerados mais confiáveis.

As barras minúsculas são mais confiáveis? Os dados do tick não são o último recurso? Por que precisamos de dados reais se não são levados em conta?

Na verdade, eu costumava fazer isto: eu estava testando em minutos, depois estava testando em carrapatos, depois estava testando nos carrapatos reais como a verificação final de precisão. Agora entendo que o terceiro cheque não faz muito sentido.


Não há necessidade de retirar a frase do contexto. A frase soa assim:

Para garantir a maior precisão nos testes, também são usadas barras minúsculas no modo real de carrapato. Os dados do tick são verificados e corrigidos por eles. Também ajuda a evitar divergências de gráficos no Testador de Estratégia e no terminal do cliente.

O testador verifica a conformidade dos dados do tick com os parâmetros da barra de minutos: um tick não deve ir além dos preços Alto/Baixo, os tick abertos e fechados devem coincidir com os preços Abrir/Fechar da barra. O volume também é comparado. Se for detectado um descasamento, todas as carraças correspondentes a essa barra de minutos serão descartadas. Os ticks gerados serão utilizados em vez disso (como no modo "All ticks").

Se houver uma barra de minutos no histórico de símbolos, mas não houver dados de ticks para esse minuto, o testador irá gerar ticks no modo "Todos os ticks". Isto permite que o testador construa o gráfico correto no caso de dados incompletos de tick no corretor.

Se não houver uma barra de minutos no histórico de símbolos, mas houver dados de tick para esse minuto, eles podem ser usados no testador. Por exemplo, as barras de símbolos de ações são formadas usando Últimos preços. Se apenas os preços Bid/Ask chegarem do servidor sem Últimos preços, a barra não será formada. O testador usará estes dados de tick, pois não contradiz os dados minuciosos.

Os dados das marcas podem não coincidir com as barras de minutos, por várias razões. Por exemplo, devido a interrupções de conexão ou outras falhas durante a transmissão de dados da fonte para o terminal do cliente. Durante os testes, os dados minúsculos são considerados mais confiáveis.

Como você pode ver, se você não tentar manipular, vai descobrir que você interpretou mal a referência.