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

 
template <typename T>
void func(const T &IntOrArray) {} 

void OnStart()
{
  int a=0;
  char b[3]={};
  func(a);
  func(b);	//'b' - parameter conversion not allowed
}

É um bug ou um chip que atira este erro?

C++ come isto bastante bem. E as matrizes na MQL têm as suas próprias matrizes. Assim, algumas std::array poderiam também ser tratadas por esta construção.

 
traveller00:

É um bug ou um bug que atira este erro?

Não é um insecto. Uma sobrecarga de modelos só vai ajudar.

 

Existe alguma forma de descobrir rapidamente que não existe um histórico para um instrumento (quer localmente ou no servidor)?

Qualquer pedido CopyXXX espera 30 segundos para recuperar os dados, e demora demasiado tempo a passar por um grande número de instrumentos.

Para algumas ferramentas, ajuda a verificar se existe uma Proposta (está vazia), mas não para todas as ferramentas.

Pode verificá-lo no ICMarkets-MT5, ferramentaWheat_U0

 
Andrey Khatimlianskii:

Existe alguma forma de descobrir rapidamente que não existe um histórico para um instrumento (quer localmente ou no servidor)?

Qualquer pedido CopyXXX espera 30 segundos para recuperar os dados, e demora demasiado tempo a passar por um grande número de instrumentos.

Para algumas ferramentas, ajuda a verificar se existe uma Proposta (está vazia), mas não para todas as ferramentas.

Pode verificá-lo no ICMarkets-MT5, instrumentoWheat_U0.

Já foi escrito muitas vezes sobre o assunto e aqui está a primeira coisa que encontrei https://www.mql5.com/ru/forum/285631/page35#comment_9431199

Alternativamente, estes símbolos têm Ask e Bid == 0

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
  • 2018.11.20
  • www.mql5.com
26 октября 2018 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Existe alguma forma de descobrir rapidamente que não existe um histórico para um instrumento (quer localmente ou no servidor)?

Qualquer pedido CopyXXX espera 30 segundos para recuperar os dados, e demora demasiado tempo a passar por um grande número de instrumentos.

Para algumas ferramentas, ajuda a verificar se existe uma Proposta (está vazia), mas não para todas as ferramentas.

Pode verificá-lo no ICMarkets-MT5, instrumentoWheat_U0

no indicador não vai esperar pelo resultado de CopyXXX

como opção no temporizador no indicador para processar CopyXXX e chamar este indicador da EA

 
Vladimir Pastushak:

Isto já foi escrito sobre mais de uma vez, e esta é a primeira vez que encontro https://www.mql5.com/ru/forum/285631/page35#comment_9431199

Como uma variante destes símbolos Ask e Bid == 0

Cerca de zero Lance escrito de uma só vez, por vezes não é zero.


Igor Makanu:

no indicador não vai esperar pelo resultado de CopyXXX

uma variante do temporizador no indicador para processar CopyXXX e chamar este indicador da EA

Isso é que é uma ideia! Obrigado, vou experimentá-lo.

 
fxsaber:

A razão pela qual isto acontece. Após a primeira OrderSend, aparece uma ordem de mercado e se um novo tick chegar antes da sua execução, ainda não há posição e a segunda OrderSend é feita.

Devido a isto, um padrão MT5 aparentemente normalnão funcionará correctamente e, como consequência, a maioria dos Consultores Especialistas MT5 em codobase. Ao mesmo tempo, o modelo MT4 quase idêntico continuará a funcionar sem quaisquer problemas.

A ideia aparentemente boa de PositionsTotal é um pouco ofuscada pela necessidade em MT5 de analisar também OrdersTotal para ordens de mercado.

Tenha cuidado!

Obrigado por assinalar este facto. Tinha isso em mente. Mas agora chegou ao ponto de escrever uma EA, e perguntei-me se faria sentido verificar os pedidos enviados para o servidor. Hipoteticamente, descreveu-o correctamente, mas na realidade o servidor responde rapidamente aos pedidos, e tal condição não ocorrerá na maioria dos casos (99%, penso eu). Mas a velocidade do algoritmo sofrerá cada vez mais. O que acha que é mais importante?
 
Vasiliy_Saharov:
Obrigado por assinalar este facto. Eu tinha-o em mente. Mas agora vim escrever um Consultor Especialista e perguntei-me se faz sentido verificar os pedidos enviados para um servidor. Hipoteticamente, descreveu-o correctamente, mas na realidade o servidor responde rapidamente aos pedidos, e tal condição não ocorrerá na maioria dos casos (99%, penso eu). Mas a velocidade do algoritmo sofrerá cada vez mais. O que acha que é mais importante?

Entrar no mercado uma vez com 2 lotes em vez de 0,1, e a resposta é imediatamente óbvia )

 
Andrey Khatimlianskii:

Entrar no mercado uma vez com 2 lotes em vez de 0,1, e a resposta é imediatamente óbvia )

Se tiver um algoritmo para fazer 0,1 lotes, então há uma probabilidade de fazer 0,1 duas vezes, e como penso que esta probabilidade tende a zero, e três vezes, penso que é impossível. Muito menos 20 vezes. Afinal de contas, estamos a falar de coisas de aplicação. Como regra geral, o servidor responde provavelmente no limite de 10minsec (será isso correcto? Não tenho a certeza). Quão elevada é, na sua opinião, a probabilidade de agarrar uma segunda transacção? É você mesmo que faz este controlo? Acontece que o servidor pode demorar muito tempo a responder?
 
Vasiliy_Saharov:
Se tiver um algoritmo para concluir 0,1 lote, então há uma probabilidade de 0,1 duas vezes, e como penso que esta probabilidade tende a zero, e três vezes, penso que é impossível. Muito menos 20 vezes. Afinal de contas, estamos a falar de coisas de aplicação. Como regra geral, o servidor responde provavelmente no limite de 10minsec (será isso correcto? Não tenho a certeza). Quão elevada é, na sua opinião, a probabilidade de agarrar uma segunda transacção? É você mesmo que faz este controlo? Acontece que o servidor pode demorar muito tempo a responder?

A partir de estatísticas: cerca de 200-300 transacções por dia. Mesmo com verificações normais, mas sem quaisquer verificações realmente complicadas, em média 2-3 vezes por semana, apanhei uma abertura de lote duplo. Calcular a probabilidade e avaliar se precisa ou está pronto a aceitar tal probabilidade. Pessoalmente, fiz os meus cheques ao máximo.