06. Actions: Confirmation settings
There are several confirmation types that can be performed with an incoming request:
- Current priceOrder will be opened by a current market price
- Requested priceOrder will be confirmed by the price the trader requested. Can be useful to completely negate natural slippage.
- Worst priceQuotes coming during the Delay time will be recorded and the worst price among these quotes will be chosen as the confirmation price for the client’s order. For example, if the request is to BUY, the highest price will be chosen.
- Market worstSame as Worst Price, but excluding the requested price from the calculation. Can be useful to avoid broker’s unexpected losses on Take Profit activations upon opening a new trading session with a chart gap occurring.
- RejectIncoming requests will be rejected.
- IgnoreDealing Desk doesn’t confirm or reject the requests it intercepts. Instead, shortly after the interception, it passes requests back to MT server, where other dealers or plugins may process them in their turn.
ℹ️
NOTE: In the MT4 plugin version, there’s a global parameter UseAsyncProcessing which allows Dealing Desk, if true, to intercept (or ‘lock’) requests and process them according to the rules in parallel threads, which is a good way to increase Dealing Desk’s performance. However, technically, this may lead to a situation, in which other dealers see that the request is locked by Dealing Desk before it has made a decision to Ignore and pass the request to them. Some plugins by design (e.g. Brokeree Bridge is one of them), once they see that a request is locked by another plugin, never come back to check its status again and try to process it.
Calculating the final confirmation price
Price calculation launches after the delay (if any) and depends on the confirmation action chosen. After the calculation is done, the order can be confirmed.
Requested price calculation example
Trader’s BUY order requested market price is 1.2. The actual tick price is 1.4. The final confirmation price is 1.2.
ℹ️
NOTE: Open price of orders confirmed by the Requested price can be changed via Slippage management. Edit the Zero action field to change it.
Current price calculation example:
Trader’s BUY order requested market price is 1.2. After the specified delay the actual tick price is 1.3. The final confirmation price is 1.3.
Worst price calculation example:
Trader’s BUY order requested market price is 1.2. Quotes that have been received during the specified delay: 1.1, 1.2, 1.4, 1.3. The final confirmation price is 1.4.
Confirming Instant order requests
For instant orders specifically, there is an option to specify a Custom Deviation which can differ from the trader’s deviation. Together they define a maximum deviation from the requested price for orders placed by Instant execution. This feature can be interpreted as a broker’s custom acceptable deviation.
ℹ️
NOTE: Custom Deviation works only for symbols with Instant Execution type enabled in MetaTrader. Action type: Requested price has to be specified.
ℹ️
NOTE: Slippage management values will not be taken into account on the Instant Execution requests with a Custom Deviation value specified.
Delay
Brokers can specify a random delay range in milliseconds for request execution. A random value will be picked between the two values specified. The most common use case for it is to create an artificial network lag during which the worst price can be found among the incoming ticks and then picked for execution.
Before applying a delay, the confirmation type and request type are checked first to apply the delay normalization.
ℹ️
NOTE: Delay normalization: Delay doesn’t trigger for Non-trading request types (placing a pending order, modifying, deleting, closingBy, closingAll) and Action types: Reject and Ignore. These requests will be processed as soon as possible.