MT5 e velocidade em ação - página 24

 
Artyom Trishkin:

Muito provavelmente após a próxima versão de lançamento (agora em beta)

Obrigado
 
Artyom Trishkin:

Muito provavelmente após a próxima versão de lançamento (agora em beta)

Não haverá uma série de acordos?

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

MT5 e Velocidade em Ação

fxsaber, 2020.08.13 04:36

  1. Vá para a conta demo da MetaQuotes-Demo com um histórico comercial relativamente longo.
    1. Se sua conta demo tem pouco histórico comercial, então permita a auto-negociação e, em paralelo, execute o script OrderSend-Test2.ex5 (no anexo, o código fonte).

Este antigo script mostra muitos freios se você executá-lo em um gráfico MQ-Demo e adicionar mais símbolos comerciais ao Market Watch (eu tinha 100).

Terminal Log.

2020.09.04 17:51:33.112 Trades  '34510052': cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.512 Trades  '34510052': accepted cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.514 Trades  '34510052': cancel #702851395 buy stop 0.01 EURCAD at market done in 401.845 ms

A eliminação do comércio pendente ocorreu em 401ms. Os desenvolvedores têm acesso aos logs do servidor comercial e podem ver quanto tempo a execução durou lá. Por exemplo.

Todos podem reproduzi-la em seu site.


Por via das dúvidas, é assim que uma ordem comercial com resultados.

2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Alert: EURCAD 702851395 Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.action = TRADE_ACTION_REMOVE (8)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.magic = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.symbol = EURCAD
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.stoplimit = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.sl = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.tp = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.deviation = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type = ORDER_TYPE_BUY (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_filling = ORDER_FILLING_FOK (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_time = ORDER_TIME_GTC (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.expiration = 1970.01.01 00:00:00
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.comment = 
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position_by = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode = 10009
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.deal = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.bid = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.ask = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.comment = Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.request_id = 6133
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode_external = 0


Ping.

2020.09.04 17:51:57.567 AccountInfoString(ACCOUNT_SERVER) = MetaQuotes-Demo
2020.09.04 17:51:57.567 TerminalInfoInteger(TERMINAL_PING_LAST) = 74808


O roteiro funcionou por cerca de 10 minutos.


Eu não me importo com estas lentidões. Eu só quero saber onde e o que posso ajustar para melhorar a situação. É o Terminal ou o servidor comercial? Em geral, os desenvolvedores têm todas as possibilidades de reproduzir e, se desejarem, de compreender.

Особенности исполнения торговых приказов MT5
Особенности исполнения торговых приказов MT5
  • 2020.02.06
  • www.mql5.com
Анализировал с владельцем MT5-сервера тормоза торговых приказов. Запускался OrderSend-Test2.mq5 в том же месте, где MT5-сервер стоит. Т.е. нулевой пинг. Демо, все внутри. Изучались логи MT5-сервера (2170) и MT5-клиента (2280). Логи сервера не буду приводить, просто словами опишу. Думаю, результаты буду интерсны всем, т.к. это поможет раскрыть...
 
fxsaber:

Este antigo script mostrará muitos freios se você executá-lo em um único gráfico MQ-Demo e adicionar mais símbolos comerciais ao Market Watch (eu tinha 100).

Eu me lembro deste caso

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Nova versão da plataforma MetaTrader 5 construída em 1880: Cálculo da história completa dos instrumentos sintéticos

A100, 2018.07.25 21:55

A carga precisa ser levada em consideração em qualquer caso:

Eu tenho um computador lento... e eu tenho um muito lento... Então... Se eu adicionar 63 símbolos no Market Watch e pressionar F10 depois disso, o MetaTrader fica pendurado com força (tem que reiniciar)... enquanto em todos os outros modos funciona bem

Eu tentei usar o F10, mas ele permaneceu pendurado por pelo menos um ano - embora estivesse na versão 32 bit

 
A100:

Eu me lembro de um caso como este

O número de personagens na Market Review não é crucial para o jogo de freios. É exatamente como o fiz no meu.

É fácil de reproduzir.
2020.09.04 18:25:06.131 Trades  '34510052': buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': accepted buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': order #702911224 buy limit 0.01 / 0.01 USDPLN at 3.77653 done in 70.966 ms
2020.09.04 18:25:06.202 Trades  '34510052': cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': accepted cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': cancel #702911224 buy limit 0.01 USDPLN at market done in 71.859 ms
2020.09.04 18:25:06.274 Trades  '34510052': buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:06.481 Trades  '34510052': instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:06.982 Trades  '34510052': accepted buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.030 Trades  '34510052': order #702911229 buy stop 0.01 / 0.01 USDPLN at 3.79653 done in 755.302 ms
2020.09.04 18:25:07.030 Trades  '34510052': accepted instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:07.030 Trades  '34510052': deal #681898561 sell 0.1 NZDSGD at 0.91421 done (based on order #702911234)
2020.09.04 18:25:07.031 Trades  '34510052': cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.031 Trades  '34510052': order #702911234 sell 0.1 / 0.1 NZDSGD at 0.91421 done in 550.273 ms
2020.09.04 18:25:07.103 Trades  '34510052': accepted cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.103 Trades  '34510052': cancel #702911229 buy stop 0.01 USDPLN at market done in 72.558 ms
2020.09.04 18:25:07.103 Trades  '34510052': instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.130 Trades  '34510052': instant sell 0.01 GBPCAD at 1.73255, close #702904086 buy 0.01 GBPCAD 1.73271
2020.09.04 18:25:07.174 Trades  '34510052': accepted instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.174 Trades  '34510052': deal #681898572 buy 0.01 USDHUF at 297.871 done (based on order #702911246)
2020.09.04 18:25:07.175 Trades  '34510052': order #702911246 buy 0.01 / 0.01 USDHUF at 297.871 done in 72.051 ms
Há apenas 1ms entre os dois horários locais vermelhos, que na verdade deveriam ser 550ms (OrderSend consecutivo). Aparentemente, as fotos impressas também têm um efeito aqui.
 
Renat Fatkhullin:

Para o bem de sua posição, alguma autodeterminação está em ordem?

// Демонстрация тормозов HistorySelect.
#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh

input int inAlertTime = 1; // Нижний порог в миллисекундах

#define _B2(A) _B(A, inAlertTime)

const bool Init = EventSetTimer(1);

void OnTimer()
{
  static MqlTradeRequest Request = {0};
  static MqlTradeResult Result = {0};

  if (Request.tp) // Если позиция выставлена - меняем тейк.
  {
    static bool Flag = false;

    Request.action = TRADE_ACTION_SLTP;
    Request.tp += (1 - ((Flag = !Flag) << 1)) * _Point;
        
    if (Result.order)
      Request.position = Result.order;
  }
  else // Иначе выставляем позицию.
  {
    Request.action = TRADE_ACTION_DEAL;
    Request.symbol = _Symbol;
    Request.volume = 0.1;
    Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
    Request.tp = Request.price + 1000 * _Point;         
  }

  if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?
}


Resultado no b2592 MQ-Demo.

2020.09.04 23:30:32.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:33.681 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:34.655 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:35.674 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:36.657 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:37.668 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:38.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:39.666 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.

Há um atraso em cada chamada.

 
Também sobre atrasos

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Bichos, insetos, perguntas

A100, 2020.08.31 15:55

Tenho um cronograma muito bom, especialmente para EURUSD, a mira se move muito lentamente seguindo o cursor, basta mover o cursor suavemente em diagonal para reproduzi-lo. Está tudo bem em outros períodos de tempo. Não havia tal atraso antes

E toda a conspiração manual (tendência, Fibonacci, etc.) também é lenta.

Todas as configurações são por padrão:

  • Servidor: MetaQuotes-Demo
  • História: disponível desde 01.01.1971
  • Prazo preciso: nenhum
  • Max barras na janela: 100000
  • Tipo de gráfico: candelabros
  • Escala para baixo da tabela: Máximo

Símbolo, período bares latência
EURUSD, Montanhês 597 ir para
EURUSD, Semanalmente
2590 Confira
EURUSD, diariamente

12797

não

Algum tipo de dependência inversa: quanto menos barras, mais lento

Em gráficos mensais e semanais, por exemplo EURGBP (onde não há um histórico tão profundo) - sem atrasos

 
A100:

Algum tipo de relação inversa: quanto mais baixas as barras, mais lento

Ao contrário, é direto - quanto maior o TF, maior o atraso.

Aparentemente, isto se deve ao cálculo preciso das coordenadas pelo TF inferior. Em algum lugar, a inclusão dos índices dos bares no bar semanal/mensal que procuramos foi uma confusão.

ps: tudo funciona para mim, o mesmo número de barras

 
Andrey Khatimlianskii:

Mais como uma linha reta - quanto maior a TF, maior o atraso.

Aparentemente, devido ao cálculo preciso das coordenadas no TF inferior. Em algum lugar eles estragaram a obtenção de índices de barras incluídos no bar semanal/mensal necessário.

ps: tudo funciona para mim, o mesmo número de barras

É claro que não há EAs/indicadores/scripts em execução - apenas criação manual. A latência mostrada é reprodutível em qualquer comprimido moderno médio de 64 bits. Se você tem um computador i7, presumo que não tenha encontrado este atraso
 
A100:
Naturalmente, nenhum especialista/indicador/escrito está em execução - apenas construções manuais. A latência indicada é reprodutível em qualquer comprimido moderno médio de 64 bits. Se você tem um computador i7, presumo que não tenha encontrado este atraso

Eu provavelmente deveria ter especificado que estava sendo usado um comprimido.

Eu tenho um i5