Well hell, what do we need trading platforms for then... may as well just email them,
Please open an order for me some time today, just take any price you want then close it later at some price when its at a loss and bill my account, thanks,
Yours Sincerly, another mug punter.
You are thinking such things because you don't fully understand the process of placing an order. There is nothing wrong from the broker part.
An ECN broker is only an intermediate, it takes your order and try to execute it directly from the market. Usually such brokers provide low spread. (If a broker is a true ECN or not is an other discussion).
Broker which provides Instant Execution with possibility to use a slippage are dealing desk broker, they don't place your order directly to the market but are the counter part of you trade and this is why they can control the trade and eventually cancel it if slippage is too high.
This is very short explanation, but I hope it can help.
There is nothing to discuss with the broker, it's perfectly normal, as traders you are supposed to know what a Market execution is (so called ECN). There is no slippage with this kind of execution as you ask to open an order at the first market price available. On period of high volatility this can be a very different price from current price (Bid/ask).
If you don't like this behaviour, you have to find a broker which use Instant execution, providing the possibility to reject an order if slippage is greater than a specified value.
If you use SendOrder(..); (!!) you set price and slippage. If the broker is not able to open a position under this conditions the broker should (must) not open a position.
There is (should be) an error code that can (should) be used. Otherwise you can discuss that with your broker!
But, ok, if you manually want to open a trade there is only MarketExecution and no slippage can be entered!
And even Limit- or stop-orders won't help all the time, as they automatically become MarketOrders if the price has passed your price.
But if you get a slippage of 5.2 pip manually (!) it seems to me that you want to enter a very fast market - THAT is the problem!!
The terminal needs some time to open a secure connection to the server, request the opening of your order and is executed probably in the order of arrival - and as time goes by, your price went away :(
Play it again Sam.
That's why - as I heard - arbitrage trader place their computers exactly in the geographical middle between e.g. London and Frankfurt.
Slippage parameters is not taken into account when you have a broker using Market Execution. No error needed. You can discuss with your broker if you wish but I doubt you will get a reply.
Secure connection to the server is always opened (don't remember from which build).
I understand your frustration, but Market execution is just that - a MARKET execution. You are asking to open a trade at a market price and you will get the price that is actual at that moment in time. It works just the same on New York Stock Exchange (and those guys know what they are doing, believe me!). If you use Market execution complaining to your broker about slippage on a trade (whether open/close or pending order) is totally useless. Don't waste your time, since the rules are on their side.
If you are not willing to give away this may pips every time you trade (as I am by the way) then my advice is use Instant execution as angevoyageur has suggested. And even then protect yourself by limiting the price deviation.
Yours Sincerly, another mug punter.
To avoid slippage use stop limit orders. If you are buying at best price you can't complain when the broker executes your order at best. If it is outside market prices (eg. check the quoted prices at the time you placed your order in bloomberg or reuters) then you can take it to the broker, otherwise your order was executed according to your instructions
After reading your discussion, I understand there is no 'slippage' in OrderModify() because the 'takeprofit' or 'stoploss' would close the order based on market execution.
Therefore the slippage should be little if the broker has a fast execution if the lost size is proper. Correct?
I have traded shares for a long time, actual shares, not derivatives and no leverage.
When actually buying shares, you state the price that you will pay and if that price or a better price is not available in the time it takes to process the order, the deal will not be completed.
There is also the option to "Fill or Kill". That is, you state the maximum that you are willing to accept and if that price or a better price is not available in the time it takes to process the order, the deal will be "killed". With reputable brokers, the deal is usually completed AND at a better price than the maximum stipulated. That held true at busy times and in the days of 56K dial-up connections and I think a 366Khz processer.
I am sure that the big players do not accept any price that the broker gives them and really the "Fill or Kill" should be available to all in these times of fast computers and fast internet connections.
I have written EAs for other people that are supposed to close all positions at x amount of total profit and received complaints that it is not doing so. I wrote additional code to write to a file when closing the orders, making a record of the price and profit value for each trade at the time the EA sent the close orders. The discrepancy was due to slippage. The odd thing is that the slippage NEVER seemed to work to the advantage of the trader, always against.