MT5 e la velocità in azione - pagina 24

 
Artyom Trishkin:

Molto probabilmente dopo la prossima versione di rilascio (ora in beta)

Grazie
 
Artyom Trishkin:

Molto probabilmente dopo la prossima versione di rilascio (ora in beta)

Non ci sarà una serie di offerte?

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

MT5 e la velocità in azione

fxsaber, 2020.08.13 04:36

  1. Vai al conto demo MetaQuotes-Demo con una storia di trading relativamente lunga.
    1. Se il tuo conto demo ha poca storia di trading, allora permetti l'auto-trading e in parallelo esegui lo script OrderSend-Test2.ex5 (nell'allegato, il codice sorgente).

Questo antico script mostra molti freni se lo si esegue su un grafico MQ-Demo e si aggiungono altri simboli di trading a Market Watch (io ne avevo 100).

Registro del terminale.

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

La cancellazione del trade in sospeso è avvenuta in 401ms. Gli sviluppatori hanno accesso ai log del server di trading e possono vedere quanto tempo è durata l'esecuzione. Per esempio.

Tutti possono riprodurlo sul loro sito.


Per sicurezza, questo è l'aspetto di un ordine di trading con risultati.

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


Lo script ha funzionato per circa 10 minuti.


Non mi importa di questi rallentamenti. Voglio solo sapere dove e cosa posso regolare per migliorare la situazione. È il terminale o il server di trading? In generale, gli sviluppatori hanno tutte le possibilità di riprodurre e, se lo desiderano, di capire.

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

Questo antico script mostrerà molti freni se lo si esegue su un singolo grafico MQ-Demo e si aggiungono più simboli di trading a Market Watch (io ne avevo 100).

Ricordo questo caso

Forum sul trading, sistemi di trading automatico e test di strategia

Nuova versione della piattaforma MetaTrader 5 build 1880: Calcolo della storia completa dello strumento sintetico

A100, 2018.07.25 21:55

Il carico deve essere preso in considerazione in ogni caso:

Ho un computer lento... e ne ho uno molto, molto lento... Quindi... Se aggiungo 63 simboli a Market Watch in un computer super lento e poi premo F10, MetaTrader si blocca completamente (è necessario riavviare)... mentre in tutte le altre modalità funziona bene

Ho provato a usare F10 ma ha continuato a bloccarsi per almeno un anno - anche se era sulla versione 32 bit

 
A100:

Ricordo un caso come questo

Il numero di personaggi nella rassegna del mercato non è cruciale per giocare a freni. È solo il modo in cui l'ho fatto nel mio.

È facile da riprodurre.
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
C'è solo 1ms tra i due tempi locali rossi, che in realtà dovrebbero essere 550ms (OrderSend consecutivo). A quanto pare, i Print-snapshots hanno un effetto anche qui.
 
Renat Fatkhullin:

Per il bene della sua posizione, c'è qualche autoscatto da fare?

// Демонстрация тормозов 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)); // В каком месте самострел?
}


Risultato su 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.

C'è un ritardo in ogni chiamata.

 
Anche sui ritardi

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

A100, 2020.08.31 15:55

Ho un timeframe molto buono, specialmente per EURUSD, il mirino si muove molto lentamente seguendo il cursore, è sufficiente muovere il cursore dolcemente in diagonale per riprodurlo. Va bene in altri tempi. Non c'è stato un tale ritardo prima

E anche tutti i tracciati manuali (trend, Fibonacci, ecc.) sono lenti

Tutte le impostazioni sono di default:

  • Server: MetaQuotes-Demo
  • Storia: disponibile dal 01.01.1971
  • Tempo preciso: nessuno
  • Barre massime nella finestra: 100000
  • Tipo di grafico: candele
  • Riduzione del grafico: Massimo

Simbolo, periodo barre latenza
EURUSD, Mensile 597 vai a
EURUSD, Settimanale
2590 Controlla
EURUSD, Quotidiano

12797

no

Una sorta di dipendenza inversa: meno barre, più lento

Sui grafici mensili e settimanali per esempio EURGBP (dove non c'è una storia così profonda) - nessun ritardo

 
A100:

Una specie di relazione inversa: più basse sono le barre, più lento è il

Piuttosto, è diretto - più alto è il TF, più lungo è il ritardo.

Apparentemente, questo è dovuto al calcolo preciso delle coordinate da parte della TF inferiore. Da qualche parte si è incasinato per ottenere gli indici delle barre inclusi nella barra settimanale/mensile che stiamo cercando.

ps: tutto funziona per me, stesso numero di barre

 
Andrey Khatimlianskii:

Più simile a una linea retta - più alto è il TF, maggiore è il ritardo.

Apparentemente, a causa del calcolo accurato delle coordinate sul TF inferiore. Da qualche parte si sono incasinati con l'inclusione degli indici delle barre nella barra settimanale/mensile richiesta.

ps: tutto funziona per me, stesso numero di barre

Naturalmente non ci sono EAs/indicatori/scripts in esecuzione - solo la creazione manuale. La latenza mostrata è riproducibile su qualsiasi tablet moderno medio a 64 bit. Se avete un computer i7, presumo che non abbiate riscontrato questo ritardo
 
A100:
Naturalmente, nessun esperto/indicatore/script è in esecuzione - solo build manuali. La latenza indicata è riproducibile su qualsiasi tablet moderno medio a 64 bit. Se avete un computer i7, presumo che non abbiate riscontrato questo ritardo

Probabilmente avrei dovuto specificare che si stava usando un tablet.

Ho un i5

Motivazione: