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

 

O campo MqlRates.spread contém o valor mínimo de spread por barra. Isto é um completo disparate para um backtest. Todos podem corrigi-lo através de símbolos personalizados, como se segue

spread = LowAsk - LowBid; // условный код - не показывает обработку некоторых нюансов

Com um tal spread, os Expert Advisors sobre o mesmo Limit orders são maravilhosamente testados (em termos de qualidade e velocidade) no modo "open prices".

 

Executar um agente de teste com a opção de utilizar a pasta FILE_COMMON e OpenCL:

metatester64.exe /local /password:tester /address:0.0.0.0:2000
 
Comentários não relacionados a este tópico foram movidos para "Discussão do artigo "Visualizando a otimização da estratégia comercial no MetaTrader 5".
 

A principal vantagem do MT4 é a sua intuitividade e simplicidade no código de programação
Não há necessidade de pré-definir o que você quer fazer, há matrizes embutidas como


iTime("USDCHF",PERÍODO_H1,0),","," iOpen("USDCHF",PERÍODO_H1,0),",
iHigh("USDCHF",PERÍODO_H1,0),", ", iLow("USDCHF",PERÍODO_H1,0),", ",
iClose("USDCHF",PERÍODO_H1,0),", ", iVolume("USDCHF",PERÍODO_H1,0);


Há muitas aulas e bibliotecas para o MT5

É impossível fazer tais classes e bibliotecas, que permitem programar em MT5 como é feito em MT4
 
Stefan Stoyanov:

A principal vantagem do MT4 é a sua intuitividade e simplicidade no código do programa
Não há necessidade de pré-definir o que você quer fazer, há matrizes embutidas como


iTime("USDCHF",PERÍODO_H1,0),","," iOpen("USDCHF",PERÍODO_H1,0),",
iHigh("USDCHF",PERÍODO_H1,0),", ", iLow("USDCHF",PERÍODO_H1,0),", ",
iClose("USDCHF",PERÍODO_H1,0),", ", iVolume("USDCHF",PERÍODO_H1,0)));


Há muitas aulas e bibliotecas para o MT5

Não é possível fazer tais classes e bibliotecas que permitem programar em MT5 como é feito em MT4

Há tantas bibliotecas que lhe permitem escrever código em mt5 exatamente como você o escreveu em mt4.

 
Stefan Stoyanov:

É impossível fazer algumas aulas e bibliotecas que permitam programar em MT5 como é feito em MT4?

Quando o fxsaber sair, peça-lhe para escrever numa biblioteca para poder escrever como em mql3 e depois não terá de escrever de todo. Não achas que está na hora de cresceres?

 

Como descubro a hora do terminal, preciso descobrir o turno em horas entre o terminal e o local?

Há o TimeGMTOffset(), mas é realmente inútil.

Neste momento o terminal mostra 23:58, o local mostra 16:54. Mas precisamos de descobrir em que turno GMT o terminal está a funcionar. De segunda a sexta-feira pode ser descoberto com um tamborim.

Estou ansioso por ouvir de si, obrigado!

 
Vitaly Muzichenko:

Como descubro a hora do terminal, preciso descobrir o turno em horas entre o terminal e o local?

Há o TimeGMTOffset(), mas é realmente inútil.

Neste momento o terminal mostra 23:58, o local mostra 16:54. Mas precisamos de descobrir em que turno GMT o terminal está a funcionar. De segunda a sexta-feira pode ser descoberto com um tamborim.

Estou ansioso por obter respostas, obrigado!

O terminal na visão geral do mercado mostra a hora de chegada do último tick do servidor do corretor, de acordo com a hora do corretor.

Você pode comparar o preço de fechamento de um instrumento em um corretor desconhecido com o tempo de fechamento das mesmas velas em um corretor conhecido.

Calcule a diferença horária.

 
Kirill Belousov:

O terminal na visão geral do mercado mostra a hora de chegada do último tick do servidor do corretor, de acordo com a hora do corretor.

Você pode comparar o preço de fechamento de um instrumento em um corretor desconhecido com o tempo de fechamento das mesmas velas em um corretor conhecido.

Calcule a diferença horária.

Mas desta forma, os castiçais mostrarão também o tempo do servidor.

Suponha que eu agora inicie o terminal a partir de qualquer concessionário, não há cotações, mas há a última registada navisão geral do mercado às 23:58, mas com que compensação GMT funciona - não é conhecido.

Ou eu já sou estúpido e isso pode ser descoberto muito facilmente?

P.S. Suponha que eu me perdi no tempo e parei de distinguir entre dia/noite, dias da semana, hora.

Como descobrir que não há citações porque é um fim-de-semana, ou por exemplo, na quinta-feira não há citações, porque o servidor fica pendurado na sala de negociação?

Eu vejo tal solução, mas não vejo como implementá-la se eu não tiver tempo no servidor de negociação:

if( TimeCurrent()<TimeServer()+60 ) return( "нет котировок уже 1 минуту" );
 
Vitaly Muzichenko:

Mas desta forma, os castiçais também mostrarão o tempo do servidor.

Suponha, agora que eu inicio o terminal a partir de qualquer concessionário, não há cotações, mas há o último registro navisão geral do mercado 23:58, mas com que turno GMT ele funciona - não é conhecido.

Ou eu já sou estúpido e pode ser descoberto muito facilmente?

P.S. Suponha que eu me perdi no tempo e parei de distinguir entre dia/noite, dias da semana, hora.

Como descobrir que não há cotações porque é um fim-de-semana, ou por exemplo, na quinta-feira não há cotações, porque o servidor desliga na negociação?

Usando o preço de fechamento, encontre a vela no histórico de uma corretora independente, na qual você conhece o GMTOffset. A diferença entre o tempo dos castiçais lhe dará a diferença entre as corretoras. Adicione à diferença o GMT do conhecido e obtenha a diferença do GMT do desconhecido.

Nunca se sabe a hora do servidor de troca. Você só sabe a hora da última citação para o símbolo.

Basta usar os castiçais de hora em hora.

Razão: