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

 
fxsaber:

Surge a necessidade de transferir por referência sem modificações - seja para a velocidade, seja para o objeto.

Se não houver necessidade de passar para modificação, então você pode simplesmente ignorar tudo que eu escrevi).

Você tem um exemplo real na MQL5 quando este problema ocorre?

Falta um verdadeiro exemplo de conveniência.

Descrevi tudo em detalhe, tanto em palavras como em código. Se por alguma razão lhe parece incompreensível, então obviamente não enfrenta os problemas descritos, e felicito-o por isso. Boa noite, caro amigo.)

O meu post foi provavelmente destinado mais para os templates hardcore, e amantes do controle de tipo.

 
Alexey Navoykov:

Existe frequentemente a necessidade de passar uma variável como argumento de modelo por referência para a modificar. No entanto, a especificação de modelo C++ existente infelizmente não permite especificar explicitamente a não constância do argumento, como acontece em funções normais:

Primeiro, o C+++ tem simplesmente capacidades de template muito mais ricas, e segundo, o C+++ tem SFINAE, o que lhe permite estragar tanto as coisas que faz o seu cabelo ficar de pé.

É o que pode parecer:

template<class T>
    static void const_check(T & t){
        BOOST_STATIC_ASSERT(! boost::is_const<T>::value);
    }
É o mesmo que com um ponteiro. Você não pode especificar diretamente que o tipo que você quer não deve ser um ponteiro, mas você pode fazer isso através de especialização não compilada.
 
TheXpert:

isto pode parecer-se com isto

Tanto quanto sei, causa um erro de compilação no corpo da função (que pode ser chamado de qualquer maneira), mas o processo de seleção do modelo não é afetado. Você tem que manipular com o tipo de valor de retorno da função. Mas não importa. Mas tudo isto é implementado não só através de templates, mas também através do especificador de declinação, que está ausente no MQL e ainda é necessário.

 
Alexey Navoykov:

O meu posto era provavelmente mais direccionado para templates hardcore e amantes do controlo de tipo nerdy.

Eu pensei que depois de escrever TypeToBytes eu me tornei mais competente em templates.

 
fxsaber:

Eu pensei que depois de escrever TypeToBytes eu me tornei mais competente em templates.

Percebi agora que a frase "hardcore pattern maker" em relação ao MQL soa irônico. É como um "programador certificado MQL". ))

O problema é que não há muito a ser feito nos templates, não só devido à falta de funcionalidade adicional do idioma, mas também por causa do funcionamento incorreto do existente. Constantemente a esbarrar em insectos.

 

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

Bugs, bugs, perguntas

Slava, 2018.09.19 06:37

Para colocar um objeto acima de todos os outros, independentemente da ordem, você deve primeiro torná-lo invisível em todos os períodos de tempo e depois torná-lo visível novamente.
 

Boa tarde!

A documentação declara explicitamente que enquanto o manipulador do OnTickestiver rodando https://www.mql5.com/ru/docs/runtime/event_fire#newtick

O manipulador está inactivo e não são tratados novos tiquetaques. O mesmo se aplica aOnBookEvent, OnTimer, OnChartEventmanipuladores ou não.

A questão é causada pelo fato de que em todos os manipuladores acima eu uso o meu próprio manuseio de carrapatos.

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Andrey Kotrin:

Boa tarde!

A documentação declara explicitamente que enquanto o manipulador do OnTickestiver rodando https://www.mql5.com/ru/docs/runtime/event_fire#newtick

O mesmose aplica a OnBookEvent, OnTimer, OnChartEvent manipuladores ou não.

A questão é causada pelo fato de todos os manipuladores acima usarem o seu próprio manuseio de carrapatos.

Não está correcto.

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

Bibliotecas: HistoryTicks

fxsaber, 2018.04.10 17:53

Combater EA em um símbolo de alta freqüência (200-350 ticks por minuto) com ordens de negociação freqüentes (várias vezes por minuto) e um ping de 100 ms no modo padrão perde ~5% dos ticks.

No modo HistoryTicks não há perdas.


Sinta-se à vontade para usar o OnTick com várias moedas no MT5.

 
fxsaber:

Definitivamente não está correcto.


ZZY Você pode usar com segurança o OnTick com várias moedas no MT5Z

Obrigado pelo link! Na verdade, o problema não está na perda de ticks, mas na possível atualização parcial de informações ao processar o atual. Eu resolvi um problema similar ao comunicar entre robôs ao mesmo tempo

Como meu robô é orientado em um servidor real enãousa dllsexternas , e portanto mutex,eu usei a emulação GlobalVariableSetOnCondition.

 
Andrey Kotrin:

Obrigado pelo link! Na verdade, o problema não está na perda de ticks, mas na possível atualização parcial de informações ao processar o atual. Tive um problema semelhante ao de organizar a comunicação entre robôs simultaneamente.

Como meu robô é orientado a um serviço de hospedagem usandodlls deterceiros e portanto o mutexé impossível, eu usei a emulação GlobalVariableSetOnCondition.

Talvez você possa usar Recursos para transferir dados.

Razão: