MT5 Para aqueles que se preocupam com a velocidade.

 

Tenho uma pergunta: Como funcionamos comandos?

Existe uma classeCAccountInfo para trabalhar com a conta,

Quando acedemos a este comando, o terminal inicia um pedido ao servidor ou esta informação é recebida a toda a hora juntamente com as citações e apenas a retiramos do buffer do terminal ou de um ficheiro no disco?

Em resumo, quanto tempo leva este comando a ser executado? E se ler a partir do disco, como depende do tipo de unidade ou SSD ?

Texto completo...

Na verdade, a informação mais importante que é necessária operativamente é a presença de uma posição aberta ou falta dela e também um nível de preço de uma posição aberta.

Entendo que esta análise deve ser feita no vazio OnTrade() - ou seja, quando a posição estiver aberta, esta sub-rotina será inicializada ?

 
Textos completos, postar neste fórum.
 

Assim, comparar o tempo a solicitar com o tempo para receber o valor ou executar o comando. Compreendo que depende da vossa situação específica (linha de comunicação, por exemplo).

 

CAccountInfo não acede ao servidor comercial, é emitido a partir da memória, não sobe para o disco.

 
zfs:

Portanto, comparar o tempo a consultar com o tempo para obter um valor ou executar um comando. Compreendo que tudo depende da vossa situação específica (linha de comunicação, por exemplo).

E assim testar cada comando desta forma?

Preciso de escrever um EA para uma execução rápida e para isso preciso de compreender o processo e como ele pode resultar. Já vi muitas vezes o terminal pendurar apesar de usar 1 ferramenta, 1 EA e um par de gráficos. Também já vi outras falhas...apesar de ter colocado um SSD rápido no lugar de um disco rígido em hibernação...

 
Renat:

O CAccountInfo não acede ao servidor comercial, é saída da memória, não vai para o disco.

Especifiquei incorrectamente a função. Estou interessado noPositionGet...().

Position tem um conjunto de propriedades disponíveis para serem lidas pela funçãoPositionGet...().

Obrigado.

 
shelandr:

E assim testar cada comando desta forma?

Preciso de escrever um EA para uma execução rápida e para isso preciso de compreender o processo e como ele pode resultar. Já vi muitas vezes o terminal pendurar apesar de usar 1 ferramenta, 1 EA e um par de gráficos. Além disso, há outras falhas...embora tenha colocado um SSD rápido em vez de um disco rígido em hibernação...

Comparar o tempo local antes e depois e obter o desempenho, depende de muitos factores e é individual para todos.

https://www.mql5.com/ru/docs/dateandtime/timelocal
Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - Документация по MQL5
 
zfs:

Comparar a hora local antes e depois e obter o desempenho, depende de muitos factores e é individual para todos.


https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Para organizar contadores e temporizadores de alta resolução, usar a funçãoGetTickCount(), que produz valores em milissegundos.

Está a sugerir que se meça em segundos? Mesmo milissegundos também é lento.

o meu contador de milissegundos está sempre ligado, mas se 1 em 1000 ciclos falhar mesmo num minuto, não posso apanhá-lo sem um programa especial.

Nem consigo apanhar 1 num minuto sem um programa especial.

 
shelandr:

https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Para organizar contadores e temporizadores de alta resolução, usar a funçãoGetTickCount(), que produz valores em milissegundos.

Está a sugerir que se meça em segundos? Mesmo milissegundos também é lento.

o meu contador de milissegundos está sempre ligado, mas se 1 em 1000 ciclos falhar mesmo num minuto, não posso apanhá-lo sem um programa especial.

Além disso, quando o terminal desliga, o balcão não funciona

Funciona até esse ponto, porquê medir o que não é tangível, o facto de o seu terminal pendurar é mais provavelmente um loop infinito no seu algoritmo, a presença de recorrência profunda, do que a velocidade do terminal.

 
zfs:

Funciona até este ponto, porquê medir o que não é tangível, o facto de o seu terminal estar pendurado é mais provável um loop no seu algoritmo, a presença de recorrência profunda, e não a velocidade do terminal.

De modo algum - o terminal só fica pendurado quando há 2 eventos - operação como modificação de encomenda e movimento brusco de preços no instrumento - o servidor de troca fecha todos os pedidos dos clientes e estes são pendurados.

Quando o movimento de preços se estabiliza, começa a servir os pedidos dos clientes.

A razão é que o servidor, nestes momentos, ou não tem tempo para processar pedidos ou fá-lo de propósito para não permitir ao cliente receber um lucro. Para compreender isto, precisamos de um protocolo de troca MT%6 com servidor de empresas de corretagem.

A propósito, neste momento a posição não pode ser pirateada mesmo a partir do terminal - não está disponível...

Quando não há movimentos bruscos, o sistema funciona bastante rápido e consegue enviar uma posição aberta num segundo... Mas gostaria de obter o tempo entre o sinal para abrir uma posição e uma ordem de posição aberta até 100 ms (embora eu conheça sistemas com tempo de 15 ms.

Para isto estou a fazer muito trabalho, começando pela actualização do hardware, sistema operativo e escolha de um fornecedor...

МТ5 | Секреты трейдинга
  • admin
  • shelandr.ru
Маленький экскурс. На сегодня наиболее быстрым терминалом,позволяющим строить и запускать автоматически исполняемые стратегии ( роботы или эксперты ) является терминал метатрейдер 5 или сокращённо МТ5. Почему именно так? Есть ведь терминал МТ4… Да есть..и последний год я активно его применял и писал роботов и индикаторы.. Весьма эффективно...
 
shelandr:

De modo algum - o terminal só fica pendurado quando há 2 eventos - uma operação como a modificação da encomenda e o movimento brusco do preço no instrumento - o servidor de troca fecha todos os pedidos dos clientes e estes são pendurados.

Quando o movimento de preços se estabiliza, começa a servir os pedidos dos clientes.

A razão é que o servidor, nestes momentos, ou não tem tempo para processar pedidos ou fá-lo de propósito para não permitir ao cliente receber um lucro. Para compreender isto, precisamos de um protocolo de troca MT%6 com servidor de empresas de corretagem.

A propósito, neste momento a posição não pode ser pirateada mesmo a partir do terminal - não está disponível...

Está a contar tais histórias de terror) 2 eventos não são processados em conjunto mas sequencialmente, há erros e devem ser analisados e evitados) Não confunda o desempenho do servidor e do terminal.