Ordersend/Orderclose slippage parameter not working in build 216

 
I've done some tests and found that the slippage parameter simply doesn't work -- any requote will cause the operation to fail even if the requote is well within the parameter's range.

If this is a known issue, can support provide an estimate of the time a build that fixes this will be out? And until then, is it possible to provide an older build for download which is not affected by this bug, if there is such a build that is still supported by current server builds?

If this is not a known issue, could support please refer to the code below in order to reproduce the problem (or let me know if something is simply wrong with my code...). If possible, please respond in this topic to confirm whether or not you've been able to reproduce the problem, thanks!

Code used:
int start()
  {
//----
      Sleep(10000); //give prices some time to change
         OrderSelect(0,SELECT_BY_POS);
         OrderClose(OrderTicket(),OrderLots(),Bid,10);

       Sleep(10000); //give prices some time to change
      
      int a=0;
      a=OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0);
      if (a==0) Print(GetLastError());
      
//----
   return(0);
  }



This code generally worked when testing on two different brokers' demo accounts, but there were instances in the logs such as this:

18:24:21 '21519': instant order buy 0.10 GBPUSD at 1.9453 sl: 0.0000 tp: 0.0000
18:24:21 '21519': request was accepted by server
18:24:21 '21519': requote 1.9449 / 1.9451 for open buy 0.10 GBPUSD at 1.9453 sl: 0.0000 tp: 0.0000
18:24:57 '21519': instant order buy 0.10 GBPUSD at 1.9453 sl: 0.0000 tp: 0.0000
18:24:57 '21519': request was accepted by server
18:24:58 '21519': request in process
18:25:01 '21519': order was opened : #257264 buy 0.10 GBPUSD at 1.9453 sl: 0.0000 tp: 0.0000

Clearly the requote at 18:24:21 was not accepted even though is was within the 10 pips, as there was no log entry nor trade in the trade log:

18:23:43 sliptest GBPUSD,M1: open #257260 buy 0.10 GBPUSD at 1.9454 ok
18:24:11 sliptest GBPUSD,M1: close #257254 buy 0.10 GBPUSD at 1.9453 at price 1.9451
18:25:01 sliptest GBPUSD,M1: open #257264 buy 0.10 GBPUSD at 1.9453 ok

257252 2008.06.12 19:16 buy 0.10 gbpusd 1.9452 0.0000 0.0000 2008.06.12 19:18 1.9451 0.00 0.00 0.00 -1.00 257253 2008.06.12 19:17 buy 0.10 gbpusd 1.9453 0.0000 0.0000 2008.06.12 19:23 1.9452 0.00 0.00 0.00 -1.00 257254 2008.06.12 19:19 buy 0.10 gbpusd 1.9453 0.0000 0.0000 2008.06.12 19:24 1.9451 0.00 0.00 0.00 -2.00 257260 2008.06.12 19:23 buy 0.10 gbpusd 1.9454 0.0000 0.0000 2008.06.12 19:27 1.9451 0.00 0.00 0.00 -3.00 257266 2008.06.12 19:27 buy 0.10 gbpusd 1.9453 0.0000 0.0000 2008.06.12 19:29 1.9448 0.00 0.00 0.00 -5.00 257264 2008.06.12 19:25 buy 0.10 gbpusd 1.9453 0.0000 0.0000 2008.06.12 19:30 1.9448 0.00 0.00 0.00 -5.00

Note the out-of-order trade log is due to multiple trades being open at times when the a trade closing had failed. This was probably not always due to slippage, and also I've noticed my if (a==0) error check for trades opening was incorrect.

For Orderclose the logs either had pileups like this (though I can't be sure that these weren't due to other errors--but still in that case why was the code simply not resumed as usual?):
17:14:01 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:01 '991808': request was accepted by server
17:14:01 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:01 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:01 '991808': request was accepted by server
17:14:02 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:02 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:02 '991808': request was accepted by server
17:14:02 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:02 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:03 '991808': request was accepted by server
17:14:03 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:03 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:03 '991808': request was accepted by server
17:14:03 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:03 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:04 '991808': request was accepted by server
17:14:04 '991808': requote 1.9456 / 1.9459 for order #25422830 buy 0.10 GBPUSD closing at 1.9457
17:14:04 '991808': close order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 at price 1.9457
17:14:04 '991808': request was accepted by server
17:14:05 '991808': request in process
17:14:05 '991808': order #25422830 buy 0.10 GBPUSD at 1.9461 sl: 0.0000 tp: 0.0000 closed at price 1.9457

...or what appears to have been a sucessful requote, but why the double operation and log entries seconds apart? Is the slippage parameter not actually handled on the server side but requires the order operation to be retried?

16:58:46 '991808': close order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 at price 0.7919
16:58:46 '991808': request was accepted by server
16:58:47 '991808': requote 0.7917 / 0.7919 for order #25422224 buy 0.10 EURGBP closing at 0.7919
16:58:48 '991808': close order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 at price 0.7917
16:58:48 '991808': request was accepted by server
16:58:48 '991808': request in process
16:58:49 '991808': order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 closed at price 0.7917

16:58:46 '991808': close order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 at price 0.7919
16:58:46 '991808': request was accepted by server
16:58:47 '991808': requote 0.7917 / 0.7919 for order #25422224 buy 0.10 EURGBP closing at 0.7919
16:58:48 '991808': close order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 at price 0.7917
16:58:48 '991808': request was accepted by server
16:58:48 '991808': request in process
16:58:49 '991808': order #25422224 buy 0.10 EURGBP at 0.7921 sl: 0.0000 tp: 0.0000 closed at price 0.7917

I'd be glad to do further tests and logging if needed. Please do respond in this thread to the questions further above, thanks!

Reason: