Для торговли важным параметром является актуальность текущей цены. На него влияет множество факторов, самый популярный из которых - сетевой пинг между терминалом и торговым сервером. Но часто из виду упускается другой параметр: так называемый "внутренний пинг терминала" - дополнительный лаг котировок внутри самого терминала (платформы) . Даже...
Misunderstood. We need to understand if MT is jamming or not. We were parsing the server logs, when the pauses were modifying for dozens of seconds. Everything is perfect on the server.
So the problem is somewhere else.
I have seen that I very often hit past prices. I.e. serious lag in Terminal. There is a question how to identify it.
Here I have bought VPS. How do I know that it fits perfectly? I mean, there has to be some kind of a numerical indicator. As it turns out, retransmits can't be trusted. At midnight - tens of percent.
Maybe I can deploy a virtual machine on the same physical machine as the trading server. And I would be able to run the Terminal from there. I guess that would reduce the number of deadlocks.
It seems to me that tracing, pinging from the console or special software won't solve the problem. It is necessary to register MT involvement somehow. It seems to me that we should take a stand and ask the developers to make their own counter forTERMINAL_RETRANSMISSION
Misunderstood. We need to understand if MT is jamming or not. We were parsing the server logs, when the pauses were modifying for dozens of seconds. Everything is perfect on the server. So the problem is somewhere else. I have seen that I very often hit past prices. I.e. serious lag in Terminal. The question arose as to how to identify it.
Somehow it's not very clear what exactly "everything is perfect on the server" means: 1) No modification requests came to the server, or all requests within 10 seconds had an outdated price? 2) And how many seconds is the difference between the "current" and "obsolete" price? 3) Who determines that the price is out of date: the MT server or a third party, maybe some exchange?
If the problem is frequent, you could analyse order modification traffic using Wireshark paired with Process Monitor (Network Activity) from Sysinternals.
Somehow it is not very clear what exactly "everything is perfect on the server" means: 1) No modification requests came to the server, or all requests within 10 seconds had an out-of-date price? 2) And how many seconds is the difference between the "current" and "obsolete" price? 3) Who determines that the price is out of date: the MT server or a third party, maybe some exchange?
On the server, all requests were processed in units of milliseconds. About the outdated prices, you need to check with the admin.
If the problem is recurring, you could analyze the order modification traffic using Wireshark paired with Process Monitor (Network Activity) from Sysinternals.
It was possible to reproduce HistorySelect-functions brakes.
Go to a MetaQuotes-Demo account with a relatively long trading history.
If your demo account has little trading history, enable auto-trading and run the OrderSend-Test2.ex5 script in parallel (see the source code in the attachment).
Open two EURUSD charts and run the Expert Advisor below on each(yellow in the source code shows additional changes).
If you look closely, you can see that EAs independent of each other are slowing down in the same way (lag time and duration). That is, when several Expert Advisors make HistorySelect call, then MT5 stops execution of all Expert Advisors for some time, and then returns its results to the Expert Advisors.
What is the reason for such a strange (in comparison with the impending) API for working with history? Where are the pitfalls in this approach?
This is an insanely expensive feature. And unfortunately no amount of caching can make its speed acceptable now.
Please consider introducing such history features.
HistoryDealsSelect( constint Index, constint Count = WHOLE_ARRAY ); // Из внутренней таблицы сделок взять сделки, начиная с заданного индекса в таблице.
HistoryOrdersSelect( constint Index, constint Count = WHOLE_ARRAY ); // Из внутренней таблицы ордеров взять ордера, начиная с заданного индекса в таблице.
They would completely close the HistorySelect brakes. Because it would solve the problem of getting the latest deals very cheaply. Right now it's one torment in combat execution.
It's not always possible to control the last deals via OnTradeTransaction. That's why a quick HistorySelect is relevant.
It's probably not normal for MT4 performance to outperform MT5 when dealing with trading history.
Please remove the brakes from the trading terminal!
Misunderstood. We need to understand if MT is jamming or not. We were parsing the server logs, when the pauses were modifying for dozens of seconds. Everything is perfect on the server.
So the problem is somewhere else.
I have seen that I very often hit past prices. I.e. serious lag in Terminal. There is a question how to identify it.
Here I have bought VPS. How do I know that it fits perfectly? I mean, there has to be some kind of a numerical indicator. As it turns out, retransmits can't be trusted. At midnight - tens of percent.
Maybe I can deploy a virtual machine on the same physical machine as the trading server. And I would be able to run the Terminal from there. I guess that would reduce the number of deadlocks.
It seems to me that tracing, pinging from the console or special software won't solve the problem.
It is necessary to register MT involvement somehow. It seems to me that we should take a stand and ask the developers to make their own counter forTERMINAL_RETRANSMISSION
Misunderstood. We need to understand if MT is jamming or not. We were parsing the server logs, when the pauses were modifying for dozens of seconds. Everything is perfect on the server.
So the problem is somewhere else.
I have seen that I very often hit past prices. I.e. serious lag in Terminal. The question arose as to how to identify it.
Somehow it's not very clear what exactly "everything is perfect on the server" means:
1) No modification requests came to the server, or all requests within 10 seconds had an outdated price?
2) And how many seconds is the difference between the "current" and "obsolete" price?
3) Who determines that the price is out of date: the MT server or a third party, maybe some exchange?
If the problem is frequent, you could analyse order modification traffic using Wireshark paired with Process Monitor (Network Activity) from Sysinternals.
Somehow it is not very clear what exactly "everything is perfect on the server" means:
1) No modification requests came to the server, or all requests within 10 seconds had an out-of-date price?
2) And how many seconds is the difference between the "current" and "obsolete" price?
3) Who determines that the price is out of date: the MT server or a third party, maybe some exchange?
On the server, all requests were processed in units of milliseconds. About the outdated prices, you need to check with the admin.
If the problem is recurring, you could analyze the order modification traffic using Wireshark paired with Process Monitor (Network Activity) from Sysinternals.
I am a complete novice at this.
It was possible to reproduce HistorySelect-functions brakes.
Forum on trading, automated trading systems and testing trading strategies
MT5 and Speed in Action
fxsaber, 2020.06.04 14:38
I drew such an EA.
Please write about your results, who will try it. What about the lags?
ZS Long tried to figure out why there are brakes on live accounts. I think I have found the problem area.
ZS Long tried to work out why the battle accounts were slow. Seems to have found the problem area.
This is how depressing the combat situation looks.
If you look closely, you can see that EAs independent of each other are slowing down in the same way (lag time and duration). That is, when several Expert Advisors make HistorySelect call, then MT5 stops execution of all Expert Advisors for some time, and then returns its results to the Expert Advisors.
What is the reason for such a strange (in comparison with the impending) API for working with history? Where are the pitfalls in this approach?
Forum on trading, automated trading systems and strategy testing
MT5 and Speed in Action
fxsaber, 2020.05.28 15:27
HistorySelect.
This is an insanely expensive feature. And unfortunately no amount of caching can make its speed acceptable now.
Please consider introducing such history features.
They would completely close the HistorySelect brakes. Because it would solve the problem of getting the latest deals very cheaply. Right now it's one torment in combat execution.
It's not always possible to control the last deals via OnTradeTransaction. That's why a quick HistorySelect is relevant.
It's probably not normal for MT4 performance to outperform MT5 when dealing with trading history.
Please remove the brakes from the trading terminal!
Is 1000 trades in history enough?
Tested with these readings.
Orders 20990
Deals 10277
Log in 20 minutes
Orders 20990
Deals 10277
Log in 20 mins.
Super, Thank you! Finally, a complete confirmation of the sad lags of MT5. And that's without any trading functions. Problems almost everywhere.
That's depressing. It would be interesting to see the result under Linux. Under Win there is no real time to talk about.