RefreshRates() not working properly or broker price feed frozen, yet order is executed, causing slippage repeatedly

 

Please see an excerpt of my log below in which I recorded order execution details. I have bolded the requested open price and the slippage incurred in pips.

2009-12-04 08:19:59.133,Sending order
open #12383682 sell 0.10 EURUSDb at 1.50753 ok
2009-12-04 08:19:59.414,sell,0.28s,1.50770,1.50770,1.50753,1.7pips

2009-12-04 08:19:59.461,Sending order
open #12383685 sell 0.10 EURUSDb at 1.50753 ok
2009-12-04 08:19:59.586,sell,0.13s,1.50770,1.50770,1.50753,1.7pips

2009-12-04 08:19:59.679,Sending order
open #12383686 sell 0.10 EURUSDb at 1.50753 ok
2009-12-04 08:19:59.757,sell,0.08s,1.50770,1.50770,1.50753,1.7pips

2009-12-04 08:19:59.914,Sending order
open #12383691 sell 0.10 EURUSDb at 1.50748 ok
2009-12-04 08:20:00.179,sell,0.27s,1.50770,1.50770,1.50748,2.2pips

2009-12-04 08:20:00.351,Sending order
open #12383694 sell 0.10 EURUSDb at 1.50748 ok
2009-12-04 08:20:00.476,sell,0.13s,1.50770,1.50770,1.50748,2.2pips

These orders were executed within milliseconds of each other, as you can see by the time stamp.

My Expert Advisor always calls RefreshRates() before every call to OrderSend() or OrderClose(). However, you can see that the requested open price remains the same, and I end up incurring slippage because the actual execution price is different from the price that is obtained by RefreshRates().


So is there someithng wrong with RefreshRates()?

Or is it the broker's fault, in that they had a problem with their price feed, causing it to be temporarily frozen (yet they still accepted and executed orders at their real market price, not the stale quoted price)?


How can we fix or at least work around this problem?

Reason: