Limits/stakes at current price in the Terminal (not in the Tester)

 

The sub-heading has been discussed on the forum more than once. Told me what happens to these orders in the Terminal and in the Tester. But I decided to create a separate thread on the subject. And only on the Terminal in order to deal with a painful issue - the real accounts.


For the sake of brevity we will refer to limit orders and open positions at the current price as LT.


In Terminal, in all cases except Exchange+Netting, LTs are not checked for price satisfaction of their conditions until the next tick after being placed.


For example, you place a modify limit at the current price. It will be modified but not accepted. You can wait for minutes (on a low-liquid market, for example) for the next tick. And if the price gets worse, the limit will remain unexecuted. And this despite the fact that the price was satisfying it for some minutes before.


The same is with the Take Points. For example, you need to close the current position at the current price. Of course, you can do it by market, but then there is a high probability of negative slippage. Again, on a low-liquid or fast market, for example. So you put a take on the current price. And it doesn't execute like the limit order above.


Tell them that the limit order in MT5 is not a limit order but a market order. And you would be right. Yes, in MT5 closing positions via limit orders can be very dangerous. Only if the third-party software is not set up in such a way that it makes the limit positions unnoticeable inside itself. But let's go back to the task of closing the current position again. This can be done through the opposite Limit and then by collapsing through CloseBy. But this cannot be done either. Because, as stated above, the limit is not accepted until the next tick.


So, in MT5 it is impossible to close current position without risk of negative slippage. To be exact, on exchange+netting it is possible. But in all other situations - you can't.


This misfortune concerns MT4 as well. But it is not interesting.


Dear developers, will you change something in this area? MT5 can't do the basic things. Competitive platforms don't even think about it when they do it with logical levity. And MT5 can't close a position!


Well now another example that happens hundreds of times a day.


There is a FOK limit, the price reaches it, it is accepted. The aggregator sends it to LP1 which re-jacks and MT5 removes the limit.

The robot reissues the limit, of course, at the current price that LP2 gives. And bummer, nothing happens: the limiter is not accepted so the aggregator can send it to LP2.


If a market order is created, no problem. Limiter - no way. That is, MT5 makes it clear that you either risk a negative slippage or hope that someday a future tick will meet your limit. It turns out that trading through MT5 is less profitable than through some self-written weak terminal.


To call things by their proper names, it's a shame. We are racking our brains with aggregator technicians on how to circumvent this. And even the ideas of various crutches carry risks. No one understands why such elementary things are not done in MT5.

 
For those who need to re-limit the MT5 FOK/IOC limiter removed by themselves, calling OnTick in the OnTrade functions may help a little.
 
That is, as I understand it, MT5 does not have the Instant Execution type for dealing, which MT4 does.
 
Alexey Navoykov:
That is, as I understand it, MT5 does not have the Instant Execution type of execution for dealing, which is available in MT4.

Kind of off-topic.

 
fxsaber:

There is a FOK limit, the price reaches it, it is accepted. Aggregator sends it to LP1, LP1 redirects and MT5 removes the limit.

Does the liquidity provider also receive it as a limit, or a market limit?

 
This is a global problem, not just with MT5. And if the wrapper, in the form of MT5, I think can be fixed (purely technically), then if we dig deeper, we will find ourselves at the flippers. And they can't be fixed... purely politically.
So, there will be a pitfall anyway.
 
Igor Zakharov:

and the liquidity provider gets it in the form of a cap as well, or a market cap?

In the form of a limit. Otherwise it wouldn't be redirecting, it would be executing with negative slippage.

But without acceptance from MT5 there can be no sending. That's the problem. MT5 does not accept. The limit can glow yellow in the Terminal for minutes. And all that time there will be no acceptance.


There is a solution on the part of aggregator developers so that all MT5 market orders turn inside into limit orders, because MT5 accepts markets at once. This is a kind of circumvention of the MT5 problem.


But it has a significant disadvantage. Suppose we need to modify an existing limit order by setting it at the current price. Then we have two options:

  1. Remove the limiter and then put in a market, which the aggregator will make the limiter. But when you remove the limiter, the price may go away and you may not make it in time.
  2. Place a market and then remove the limiter. But in this case, when a market is placed, the limiter may also be executed. So, the position volume will double.
The aggregator developers are trying to get around this crazy MT5 limitation, but they have crutches with their own disadvantages. If MQ would accept limiters/teaks on the current tick, everything would be fine.
 
fxsaber:


This misfortune also applies to MT4. But it's not interesting.


The whole retail forex industry is plagued by this scam, with a scammy method of execution.
And these methods are set for you by DTs as they want.
I'm amazed at people who know this perfectly well, and continue to use it.
And yes just in case, FOK all or nothing.

 
Heroix:
This is a global problem, not just with MT5. And if the wrapper as MT5, I think, can be fixed (purely technically), then if you dig deeper, you will reach the Lastlukes. And they can't be fixed... purely politically.
So, there will still be this pitfall.

You must have written on some other topic. In this case the problem is technical - there is no acceptance.

If MQ did not make such an acceptance in the Exchange+Netting mode, then the MOEX community in the form of the haters would have a real reason to sling mud at MT5. MQ did the acceptance (including the Tester) and everything is fine there.

The topic substantially hurts the Tester, but I'm specifically leaving it out because I need a solution for real accounts first and foremost.

 
In MT4 with Instant Execution there is no such problem. And Market Execution in dealing is, a priori, carte blanche for the dealer to cheat
 
Roman:

This trouble affects the entire retail forex industry, with a looney method of execution.

Please, no offtops. MT5 is a market platform. The discussion here is about a serious TECHNICAL limitation/failure.

There are other problems, but I won't focus on them here.

Reason: