Errors, bugs, questions - page 2077

 
Aleksey Vyazmikin:

But for a limit it would be OK, but when buying by the book, it seems strange to me that the information about the deal comes in portions.

How can I know what the volume was if one EA opens a position and another one processes it?

You are filling someone else's limits with your market order. And you don't necessarily fill the limit of one counterparty (if your order lot > 1).

How to find out. In the Expert Advisor which processes the history, request this very history if there is an open position. And check if the order which initiated the trade of the current position was processed.

 
Alexey Kozitsyn:

You fill other people's limits with your market order. And you don't necessarily fill the same counterparty's limit (if your order lot > 1).

How to find out. In the Expert Advisor which processes the history, request this very history if there is an open position. And check if the order that initiated the trade of the current position was processed.


It is clear that I take the limits, but doesn't the filling take place immediately? I don't see the order triggering at every counter or price level, but in different parts.

What do you mean, was the order processed or not? I have started a market order and it has an intermediary status "in the process of execution"? How do I initialise it?

 
Aleksey Vyazmikin:

It's understandable that I'm pouring limits, but doesn't it happen all at once? It's not every counter agent or price level that triggers, but in parts - I don't see a pattern.

What do you mean, was the order processed or not? I have started a market order and it has an intermediary status "in the process of execution"? How do I initialise it?

Your market order initiates trades. There may be more than one trade if the one closest limit order does not cover the entire volume of your market order.

If it is not clear, read the article on exchange pricing.

What do you mean? You want a second EA to process the order once, right? If so, then you should probably remember the number of the last order processed.

 
Alexey Kozitsyn:

Your market order initiates trades. There can be more than one trade in case the one nearest limit order does not cover the entire volume of your market order.

If it's not clear, read the article on exchange pricing.


Exchange pricing is clear, that is not the question - it is clear that there can be many deals on one order, it is not clear, the other is why information about all the deals does not come at once - because in fact the event occurs at one time. Or am I wrong and there is a special delay between each deal provided by the exchange? If so, please give me a link to read about it.

Alexey Kozitsyn:

What do you mean? You want to process the order once by the second EA, right? If so, then you probably need to remember the number of the last order processed.

I want to check the position for some criteria - SL/TP and volume. In this case part of the position can be formed by another order. Ok, I remember the order number in the history, what should I do next?
 
Aleksey Vyazmikin:

Or am I wrong and there is a special delay provided by the exchange between each transaction?

Well, check it, who's stopping you? I have not heard about any special delay.

I want to check the position for compliance with certain criteria - SL/TP and volume. At the same time part of the position may be formed by another order. Ok, I have memorized the number of the order in the history.

Well, then examine the position. You have found the position - request its parameters. You can request parameters on every tick. Or after the OnTrade() event has occurred.

If you need the position to be processed only after the order is completely filled, perhaps you need OnTradeTransaction().

 
Alexey Kozitsyn:

So check it, who's stopping you? I've never heard of any special delays.


Well, maybe I'm doing something wrong, that's why the result is so... so if there's an exact answer, it's clear which direction to go in. But, I'll start checking, it's just that in testers and other simulators everything was working fine, and yesterday in real life it bit me off because of this bug-speciality.

Alexey Kozitsyn:

So consider the position. Found a position - request its parameters. You can request parameters on every tick. Or after the OnTrade() event has occurred.

I check it that way in OnTrade() - and I get a strange situation... Well, I will write logs in details to understand what's going on. I just don't know how to recognize that the market order is still being traded.


AlexeyKozitsyn:

If you want the position to be processed only after the order is completely filled, perhaps, you need OnTradeTransaction() function.

OnTradeTransaction(), as I understand it only works on the same terminal where the trade is done, and in my case they are different computers.
 
Aleksey Vyazmikin:

You cannot check all the features of the FORTS real in the tester. Pouring an order is one of them.

 
Alexey Kozitsyn:

You cannot check all the features of the FORTS real in the tester. Pouring an order is one of them.


The slippage is wild - 10 points each - the glass is empty, it seems that arbitrageurs are the only ones there...

 

So, I look closing 30 lots by SL and see thatOnTrade() entered when there were 30, then 25, 25,25, 16,5,1,0 as many as 39 times!

At the same time I see the position has closed with trades:5,2,2,1,3,1,4,1,2,1,1,2,3,1,1 - i.e. 15 times! I ask the developers for clarification on this issue.

 
Comments not relevant to this topic have been moved to "Indicator by indicator".
Reason: