You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
https://www.mql5.com/ru/forum/341117 is still a current problem
The last time I checked, this problem was solved on the mentioned broker.
Dear developers, please answer the following question on architecture. The information is needed for a combat application. No claims.
There are two limiters with the same price and different lots. What does their ordering in the activation trigger sequence depend on?
I have several answers to this question.
If I understand correctly, then after modifying the opening price the limiter is appropriately built into the list-table of all Limiters of the server, sorted by opening price. Then the answer to the question comes down to, is it embedded at the beginning of the list of orders with the same price or at the end?
The same question is not about limiters but about tokens. What does the order of triggering identical tokens depend on? Is it an ID position or something else?
Let me explain how this might help in combat. For example, I have two limiters (or position tees) at the same level, but with different lots. If the execution of the limit (tee) depends on the last modification, then I can raise the FillRate simply by modifying the limiters by increasing the lot.
Probably, only someone who wrote the implementation of the corresponding MT5 server part knows the answer to this question.
work together with a broker to find the bottleneck
There are two limiters with the same price and different lots. What does their order in the activation trigger sequence depend on?
I have several answers to this question.
I think variant 4 was used in the fourth one. That is, any modification moved the order to the end of the queue of the corresponding price level.
It's like, bees versus honey?)
at this particular moment in this particular situation, it is mutually beneficial and has been done. a rare coincidence.
TP orders in MT5 are remarkable in that we can investigate the FillRate (which part of the order is filled).
The analysis of tens of thousands of such orders has shown that the FillRate depends very much on the symbol. If a pack of TP orders is triggered simultaneously, then the FillRate decreases as the number of the order in the pack increases.
Other specific nuances were also revealed. But this is already discussed with the broker.
The recipe for increasing the FillRate: combining all the same ticks and limiters into one common MT5 limit.
However, this data is only a bonus to this topic. The broker-independent problem is that MT5 is lagging with ticks and consequently with the acceptance of pending orders (including SL/TP levels).
And after a redirect, MT5 waits every time for the next tick to check if the price satisfies the TP level (or limit) or not. This can take up to seconds. And the check should always be done immediately after the regect (or partial fill).
OnTick is triggered a few milliseconds later than the tick is written to the trade server.
Result.
100 ticks were processed. The arrival lag between the server and the tick terminal varies from one to eight milliseconds. The average is a little over four milliseconds. This is just equal to the lag of TP order triggering, which is where this branch started.
The lag itself is inside the MT5 server. The Server->Terminal channel has nothing to do with it.
Big request to developers to eliminate this lag. Now with zero pings we have a constant delay of ticks incoming not only to the terminal, but to the Server as well. In particular, order accepts.
ZS For those who strip kitchen brokers through arbitrage, this built-in lag is like mana from heaven. I.e. brokers incur substantial additional risk.
Renat Fatkhullin:
На каком сервере проверяли?
Checked on many servers. Including MQ-Demo.
Forum on trading, automated trading systems and trading strategy testing
Acceptance of SL/TP orders
fxsaber, 2020.11.25 00:47
Result of running it on MQ-Demo.
The script claims to have found a TP order and a tick which was the trigger for its creation (highlighted in colour in the text). It would seem that if the price has reached the TP level of an open position on the trade server (especially on the demo), the corresponding TP order should be created (not necessarily executed) immediately. However, in this situation it happened not immediately, but after 357 milliseconds!
On which instrument and which gateway/dataphide formed the initial data?
I checked forex tools, RannForex-Server, AMTS-gateway. Other configurations need to be clarified.
I believe that MT5 server was forming on a machine with zero ping. But requires clarification for a 100% guarantee. However, the above showed that even on your server the problem.
When investigating TP order execution, I noticed that some TP orders were created with a significant lag from the ticks that accepted them.
The debriefing showed that this situation is repeated not only on different brokers, but also in the situation when trading is done on the Terminal, which is on the same machine as the Trading Server. I.e. with a very low ping and a single trading account for the Trading Server.
I encourage you to share the results from your accounts. Help improve the MT5!You "forgot" a very small detail - you checked 58,000 orders and found only one case of overshoot at 300 ms. And you should have clearly focused on this (1 out of 58 000) during these checks.
Just like in the previous ones with million-dollar checks where you also looked for a single outlier and pretended that it was normal behavior.
We checked the server's logs and we could see that our virtualization with MetaQuotes-Demo server was physically sick in those seconds (at 2020.09.30 19:07 for 4 seconds), because there were about 15 mln accounts and about 2 mln open positions, and in the meantime something was happening on the neighboring virtual servers and hypervisor.
In any case, we'll look into it further, although there are always single spikes in any system.