Acceptation des ordres SL/TP - page 5

 
Renat Fatkhullin:

Vous avez " oublié " un tout petit détail : vous avez vérifié 58 000 commandes et n'avez trouvé qu'une seule éjection à 300 ms. Et cela (1 sur 58 000) aurait clairement dû faire l'objet de ces contrôles.

Oui, je n'ai pas recueilli le statut de manière plus objective.

Quoi qu'il en soit, nous continuerons à l'analyser, même si des valeurs aberrantes isolées peuvent toujours se produire dans tout système.

J'ai examiné RannForex en détail car il s'agit d'une bataille. Là, absolument chaque ordre a 2-3 ms, indépendamment du symbole.

Et l'état des tics a été collecté dans un autre endroit où le terminal était situé sur la même machine que le serveur.

 
2021.02.05 17:00:47.044 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.044 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.044 CheckOrders (EURUSD,D1) Start CheckOrders, inFrom = 2021.01.01 00:00:00, inTicket = 0
2021.02.05 17:00:47.044 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) Last Tick 2021.02.05 15:34:01.326 1.08224 1.08233
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) LatTick Length = 5 ms.
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) Accepted Tick 2021.02.05 15:34:01.326 1.08224 1.08233
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) Accepted Length = 5 ms.
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) Order 123333339 ORDER_TYPE_BUY EURCHF 2021.02.05 15:34:01.331 1.08233 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.05 15:34:01.373, Position 123263232 created 2021.02.05 13:10:32.521, StopLevel = 0
2021.02.05 17:00:47.045 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) Last Tick 2021.02.04 21:44:22.384 1.08132 1.08136
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) LatTick Length = 6 ms.
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) Accepted Tick 2021.02.04 21:44:22.384 1.08132 1.08136
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) Accepted Length = 6 ms.
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) Order 123050627 ORDER_TYPE_SELL EURCHF 2021.02.04 21:44:22.390 1.08132 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.04 21:44:22.431, Position 123024385 created 2021.02.04 20:52:15.142, StopLevel = 0
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) Last Tick 2021.02.04 17:22:02.377 1.08189 1.08189
2021.02.05 17:00:47.046 CheckOrders (EURUSD,D1) LatTick Length = 7 ms.
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Accepted Tick 2021.02.04 17:22:02.377 1.08189 1.08189
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Accepted Length = 7 ms.
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122938233 ORDER_TYPE_SELL EURCHF 2021.02.04 17:22:02.384 1.08189 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.04 17:22:02.442, Position 122928144 created 2021.02.04 17:16:43.333, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Last Tick 2021.02.04 17:16:42.786 1.08168 1.08168
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) LatTick Length = 51 ms.
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Accepted Tick 2021.02.04 17:16:42.786 1.08168 1.08168
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Accepted Length = 51 ms.
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122933325 ORDER_TYPE_BUY EURCHF 2021.02.04 17:16:42.837 1.08171 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.04 17:16:43.335, Position 122905671 created 2021.02.04 17:09:03.783, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 11:38:04.424, 2021.02.03 12:38:04.424) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122248978 ORDER_TYPE_SELL NZDCAD 2021.02.03 12:38:04.424 0.92108 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 12:38:04.469, Position 122078077 created 2021.02.03 08:49:03.466, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 11:37:56.905, 2021.02.03 12:37:56.905) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122248934 ORDER_TYPE_SELL NZDCAD 2021.02.03 12:37:56.905 0.92104 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 12:37:56.953, Position 122077808 created 2021.02.03 08:47:33.346, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:47:33.344, 2021.02.03 09:24:40.310) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122149815 ORDER_TYPE_SELL NZDCAD 2021.02.03 09:24:40.310 0.92254 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 09:24:40.355, Position 122077761 created 2021.02.03 08:47:33.344, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:46:05.065, 2021.02.03 09:24:38.641) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122149805 ORDER_TYPE_SELL NZDCAD 2021.02.03 09:24:38.641 0.92252 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 09:24:38.680, Position 122077760 created 2021.02.03 08:46:05.065, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:49:03.438, 2021.02.03 08:49:03.438) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122139945 ORDER_TYPE_BUY NZDCAD 2021.02.03 08:49:03.438 0.92213 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 08:49:03.482, Position 122071277 created 2021.02.03 02:39:05.643, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:47:33.323, 2021.02.03 08:47:33.323) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122139669 ORDER_TYPE_BUY NZDCAD 2021.02.03 08:47:33.323 0.92218 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 08:47:33.376, Position 122071588 created 2021.02.03 02:38:27.630, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:47:33.323, 2021.02.03 08:47:33.323) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122139668 ORDER_TYPE_BUY NZDCAD 2021.02.03 08:47:33.323 0.92219 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 08:47:33.367, Position 122070905 created 2021.02.03 02:38:45.648, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 07:46:05.018, 2021.02.03 08:46:05.018) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122139354 ORDER_TYPE_BUY NZDCAD 2021.02.03 08:46:05.018 0.92227 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 08:46:05.068, Position 122070794 created 2021.02.03 02:38:27.343, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:58:12.164, 2021.02.03 02:39:05.594) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122078065 ORDER_TYPE_SELL NZDCAD 2021.02.03 02:39:05.594 0.92066 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 02:39:05.631, Position 122005391 created 2021.02.03 01:58:12.164, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:55:04.419, 2021.02.03 02:38:45.600) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122077803 ORDER_TYPE_SELL NZDCAD 2021.02.03 02:38:45.600 0.92056 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 02:38:45.631, Position 122016550 created 2021.02.03 01:55:04.419, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:59:34.647, 2021.02.03 02:38:27.594) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122077754 ORDER_TYPE_SELL NZDCAD 2021.02.03 02:38:27.594 0.92048 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 02:38:27.648, Position 122016553 created 2021.02.03 01:59:34.647, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:54:36.785, 2021.02.03 02:38:27.292) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122077748 ORDER_TYPE_SELL NZDCAD 2021.02.03 02:38:27.292 0.92042 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 02:38:27.344, Position 122004723 created 2021.02.03 01:54:36.785, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:59:34.603, 2021.02.03 01:59:34.603) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122071584 ORDER_TYPE_BUY NZDCAD 2021.02.03 01:59:34.603 0.91993 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 01:59:34.623, Position 121900746 created 2021.02.02 21:33:29.598, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:58:12.125, 2021.02.03 01:58:12.125) = 0, _LastError = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) Order 122071259 ORDER_TYPE_BUY NZDCAD 2021.02.03 01:58:12.125 0.92016 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 01:58:12.165, Position 121910314 created 2021.02.02 20:42:24.207, StopLevel = 0
2021.02.05 17:00:47.047 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:55:04.388, 2021.02.03 01:55:04.388) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122070902 ORDER_TYPE_BUY NZDCAD 2021.02.03 01:55:04.388 0.92053 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 01:55:04.411, Position 121945533 created 2021.02.02 21:33:29.593, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.03 00:54:36.744, 2021.02.03 01:54:36.744) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122070780 ORDER_TYPE_BUY NZDCAD 2021.02.03 01:54:36.744 0.92064 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.03 01:54:36.791, Position 121900844 created 2021.02.02 20:39:22.457, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.02 20:33:29.555, 2021.02.02 21:33:29.555) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122016544 ORDER_TYPE_SELL NZDCAD 2021.02.02 21:33:29.555 0.91619 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.02 21:33:29.591, Position 121849527 created 2021.02.02 18:01:22.267, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.02 20:33:29.555, 2021.02.02 21:33:29.555) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122016543 ORDER_TYPE_SELL NZDCAD 2021.02.02 21:33:29.555 0.91619 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.02 21:33:29.585, Position 121804705 created 2021.02.02 16:52:35.900, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.02 19:42:24.179, 2021.02.02 20:42:24.179) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122005386 ORDER_TYPE_SELL NZDCAD 2021.02.02 20:42:24.179 0.91665 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.02 20:42:24.232, Position 121804706 created 2021.02.02 17:01:15.335, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Alert: bool GetAcceptedTick(const ulong,MqlTick&,const bool): CopyTicksRange(NZDCAD, 2021.02.02 19:39:22.423, 2021.02.02 20:39:22.423) = 0, _LastError = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) Order 122004709 ORDER_TYPE_SELL NZDCAD 2021.02.02 20:39:22.423 0.91662 ORDER_REASON_TP ORDER_STATE_FILLED 2021.02.02 20:39:22.476, Position 121829876 created 2021.02.02 16:52:39.474, StopLevel = 0
2021.02.05 17:00:47.048 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) Last Tick 2021.01.07 16:31:09.714 1.06933 1.06938
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) LatTick Length = 133 ms.
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) Accepted Tick 2021.01.07 16:31:09.581 1.06936 1.06941
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) Accepted Length = 266 ms.
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) Order 115585098 ORDER_TYPE_SELL AUDNZD 2021.01.07 16:31:09.847 1.06936 ORDER_REASON_TP ORDER_STATE_FILLED 2021.01.07 16:31:09.907, Position 115540426 created 2021.01.07 16:24:36.081, StopLevel = 0
2021.02.05 17:01:08.998 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:10.935 CheckOrders (EURUSD,D1) Total Orders (from 2021.01.01 00:00:00) = 1343, calculated = 583
2021.02.05 17:01:10.935 CheckOrders (EURUSD,D1) Calculation time = 00:00:23.890, Performance = 24.0 orders/sec.
2021.02.05 17:01:10.935 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:10.935 CheckOrders (EURUSD,D1) ServerName: ICMarkets-MT5
2021.02.05 17:01:10.935 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Last Tick 2021.01.07 16:31:09.714 1.06933 1.06938
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) LatTick Length = 133 ms.
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Accepted Tick 2021.01.07 16:31:09.581 1.06936 1.06941
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Accepted Length = 266 ms.
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Order 115585098 ORDER_TYPE_SELL AUDNZD 2021.01.07 16:31:09.847 1.06936 ORDER_REASON_TP ORDER_STATE_FILLED 2021.01.07 16:31:09.907, Position 115540426 created 2021.01.07 16:24:36.081, StopLevel = 0
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Orders (2) before 115585098 with PositionID = 115540426:
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) ------------------------
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Checked Orders = 0
 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Acceptation des ordres SL/TP

Dzmitry Manannikov, 2021.02.05 15:10

2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Last Tick 2021.01.07 16:31:09.714 1.06933 1.06938
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) LatTick Length = 133 ms.
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Accepted Tick 2021.01.07 16:31:09.581 1.06936 1.06941
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Accepted Length = 266 ms.
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Order 115585098 ORDER_TYPE_SELL AUDNZD 2021.01.07 16:31:09.847 1.06936 ORDER_REASON_TP ORDER_STATE_FILLED 2021.01.07 16:31:09.907, Position 115540426 created 2021.01.07 16:24:36.081, StopLevel = 0
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) 
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Orders (2) before 115585098 with PositionID = 115540426:
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) ------------------------
2021.02.05 17:01:10.950 CheckOrders (EURUSD,D1) Checked Orders = 0

Merci, je vais expliquer le surlignage. Un ordre TP a été accepté 266 ms après que le prix ait commencé à le satisfaire. En même temps, le dernier tick avant l'acceptation était dans 133ms.

Ceci est incompréhensible, donc sur un exemple plus simple.


Un tick arrive qui devrait accepter le TP d'une position ouverte. MT5 crée un ordre TP, un ou plusieurs en séquence (si les précédents sont annulés).

Mais nous pouvons dire exactement ce qu'il en est du dernier ordre de cette séquence. Il ne s'est pas formé dès l'arrivée du dernier tick, satisfaisant le niveau TP, mais seulement après 133 ms.


Imaginez, une tique arrive. Et le serveur MT5 ne démarre qu'après 133 ms ! Renat dira que c'est la valeur maximale et il aura raison. C'est pourquoi j'ai donné un script dans la branche, qui donne la valeur moyenne du décalage.

Il s'agit également de quelques millisecondes.


SZY L'acceptation d'une commande est simplement le fait de sa création. Il ne l'envoie pas quelque part, mais le crée simplement sur le serveur MT5. Cela devrait se produire instantanément dès que le prix atteint le niveau approprié.

 

Dans une situation de combat, j'ai constaté que parfois MT4 accepte les limiteurs plus rapidement que MT5. Par conséquent, dans ces situations, MT4 a le temps de saisir les liquidités, ce qui n'est pas le cas de MT5.

Veuillez surmonter les décalages du serveur MT5.

 
La situation ne s'est pas améliorée.
 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Acceptation des ordres SL/TP

fxsaber, 2020.11.27 21:20

Il semble avoir trouvé la raison. Exécution du script sur la machine serveur.

// Преобразование времени в миллисекундах в строку.
string TimeToString( const long time, const int FlagTime = TIME_DATE | TIME_SECONDS)
{
  return(TimeToString((datetime)time / 1000, FlagTime) + "." + IntegerToString(time % 1000, 3, '0'));
}

// Преобразование тика в строку.
string TickToString( const MqlTick &Tick, const int digits )
{
  return(TimeToString(Tick.time_msc) + " " + DoubleToString(Tick.bid, digits) + " " + DoubleToString(Tick.ask, digits));
}

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    Print(TickToString(Tick, _Digits));
}


Résultat.

2020.11.27 22:13:44.156 2020.11.27 22:13:44.149 1.59953 1.59993
2020.11.27 22:13:44.862 2020.11.27 22:13:44.855 0.98789 0.98837
2020.11.27 22:13:45.263 2020.11.27 22:13:45.258 0.98789 0.98839
2020.11.27 22:13:46.878 2020.11.27 22:13:46.873 10.15554 10.16084
2020.11.27 22:13:48.993 2020.11.27 22:13:48.991 10.15554 10.16106
2020.11.27 22:13:51.722 2020.11.27 22:13:51.716 0.98789 0.98840
2020.11.27 22:13:53.035 2020.11.27 22:13:53.027 1.59950 1.59995
2020.11.27 22:13:53.134 2020.11.27 22:13:53.128 1.59954 1.59995
2020.11.27 22:13:53.737 2020.11.27 22:13:53.734 0.98789 0.98839
2020.11.27 22:13:54.745 2020.11.27 22:13:54.743 0.98789 0.98840
2020.11.27 22:13:56.768 2020.11.27 22:13:56.761 0.98789 0.98839
2020.11.27 22:13:57.977 2020.11.27 22:13:57.973 1.59954 1.59994
2020.11.27 22:14:00.293 2020.11.27 22:14:00.292 10.15554 10.16093
2020.11.27 22:14:04.131 2020.11.27 22:14:04.125 1.59954 1.59995
2020.11.27 22:14:08.868 2020.11.27 22:14:08.866 0.98789 0.98841
2020.11.27 22:14:09.780 2020.11.27 22:14:09.773 0.98789 0.98840
2020.11.27 22:14:09.981 2020.11.27 22:14:09.975 1.59955 1.59994
2020.11.27 22:14:10.085 2020.11.27 22:14:10.076 1.59957 1.59994
2020.11.27 22:14:10.180 2020.11.27 22:14:10.177 1.59957 1.59995

Sur la gauche se trouve le temps d'impression. À droite, l'heure du tic-tac entrant. Le décalage est clairement visible. Il semble que OnTick soit déclenché quelques millisecondes après que le tick ait été écrit sur le serveur de transactions.


Il semble que la partie du serveur qui est responsable de l'activation de l'ordre ait reçu des ticks avec du retard comme cela se produit avec leur arrivée au terminal.


Terminal/Serveur = 2920. Malheureusement, la situation n'a pas encore changé.

2021.05.19 12:39:02.082 Test9   2021.05.19 12:39:02.080 1.62642 1.62654
2021.05.19 12:39:02.284 Test9   2021.05.19 12:39:02.282 1.62641 1.62651
2021.05.19 12:39:04.305 Test9   2021.05.19 12:39:04.299 1.62645 1.62655
2021.05.19 12:39:06.823 Test9   2021.05.19 12:39:06.821 1.62647 1.62658
2021.05.19 12:39:13.791 Test9   2021.05.19 12:39:13.785 1.62647 1.62659
2021.05.19 12:39:13.891 Test9   2021.05.19 12:39:13.886 1.62649 1.62659
2021.05.19 12:39:15.103 Test9   2021.05.19 12:39:15.097 1.62651 1.62661
2021.05.19 12:39:18.534 Test9   2021.05.19 12:39:18.527 1.62653 1.62663
2021.05.19 12:39:19.238 Test9   2021.05.19 12:39:19.232 1.62650 1.62660
 

J'ai vérifié les ordres (plusieurs milliers) que le courtier a acceptés sur le serveur commercial b2940.

Une amélioration significative ! Les décalages peuvent atteindre 2 ms, mais il s'agit probablement de pics qui ne gâchent pas la nouvelle image globale.

Il est clair que le trading avec MT5 est plus rentable maintenant, car les ordres sont exécutés quelques millisecondes plus tôt et il n'y a presque pas de décalage.


Je n'ai pas vérifié les autres décalages.

 

OrderGetTicket les ont vus). Lorsque ces commandes ont disparu, elles ne figuraient pas dans l'historique des commandes. Ils n'apparaissent pas du tout dans l'historique des commandes.

Je l'ai vérifié à la main - il est absent. J'ai contacté le courtier. Le courtier a vérifié le serveur et aucun d'entre eux (les rapports de tickets) ne figure dans l'historique ou dans les journaux.

Le courtier signale que si les commandes sont triées par ticket, il y a des trous à ces endroits - les tickets sautent par-dessus ces valeurs.


MT5-Server b2940. Un bug alarmant. Je recommande aux courtiers de vérifier les billets de commande pour les trous - il n'y a pas de numérotation séquentielle claire des billets.


ZZY Ces ordres ne figurent pas dans les journaux du terminal car il s'agissait d'ordres TP - ils sont créés automatiquement lorsque le prix atteint le niveau TP de la position ouverte.

ZZZY Quelles actions entreprendre pour aider à se débarrasser du problème ?

Библиотеки: TradesID
Библиотеки: TradesID
  • 2021.03.29
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: TradesID
 
fxsaber:

OrderGetTicket les ont vus). Lorsque ces commandes ont disparu, elles ne figuraient pas dans l'historique des commandes. Ils n'apparaissent pas du tout dans l'historique des commandes.

Je l'ai vérifié à la main - il est absent. J'ai contacté le courtier. Le courtier a vérifié le serveur et aucun d'entre eux (les rapports de tickets) ne figure dans l'historique ou dans les journaux.

Le courtier signale que si les commandes sont triées par ticket, il y a des trous à ces endroits - les tickets sautent par-dessus ces valeurs.


MT5-Server b2940. Un bug alarmant. Je recommande aux courtiers de vérifier les billets de commande pour les trous - il n'y a pas de numérotation séquentielle claire des billets.


ZZY Ces ordres ne figurent pas dans les journaux du terminal car il s'agissait d'ordres TP - ils sont créés automatiquement lorsque le prix atteint le niveau TP de la position ouverte.

ZZZY Que dois-je faire pour aider à se débarrasser de ce problème ?

Pirs, plugins, add-ons, scripts, filtres de serveur ne sont certainement pas le problème...

Je comprends que tout le monde est surchauffé, mais d'une manière ou d'une autre, c'est enfantin... les rapports de bug ont l'air différents.

 
Maxim Kuznetsov:

Pirs, plugins, add-ons, scripts, filtres de serveur ne sont certainement pas concernés...

Je comprends que tout le monde soit en surchauffe, mais c'est un peu puéril... les rapports de bug ont l'air différents

Vous voyez un ordre dans le terminal, puis il disparaît. Ensuite, il n'apparaît pas sur le serveur - le ticket est abandonné. S'il vous plaît, ne vous impliquez pas.

Raison: