In April 2016 betfair released Exchange Market Streaming service.
During this weekend I found some spare time to implement this service to my betfair bot sdk, and as it is common with betfair I found a quite a lot of problems. It really seems that betfair did not test what is released, as they could simply open any trading app with ladder and try to place bets on ladder checking what results are produced by Exchange Market Streaming service.
In my video you can see my test. I placed back bets on The Draw selection (selection id: 58805) so my back bets are shown on ladder as the best offered to lay prices, in api response message the batl property values.
I subscribed to get EX_BEST_OFFERS with ladderLevels 6, so my SUB_IMAGE message for this request should return for what was best offered lay something like that:
"batl":[[0,4.3,8.1],[1,4.4,95.8],[2, ….]
Amount should be in GBP, so instead of 8.1 Euro or 95.8 Euro there should be different value in GBP, but that is not important as important is what price is returned as best offered to lay so with index 0. Betfair api returns
"batl":[[1,1000,1.6],[0,850,2.29]]
It does not correspond with what you can see in ladder.
Now I placed back bet at 4.2 and api returned:
{"op":"mcm","id":2,"clk":"APQDAOMBAJQD","pt":1464771681266,"mc":[{"id":"1.122272085","rc":[{"batb":[[0,2.62,10.29]],"batl":[[1,1000,3.14],[0,17.5,3.08]],"id":15294},{"batb":[[5,1.01,156.11]],"batl":[[1,1000,2.37],[0,190,3.08]],"id":58805},{"batb":[[0,2.6,10.4]],"batl":[[2,1000,3.14],[1,17,3.08]],"id":29581}]}]}
Placing back bet at 4.1:
{"op":"mcm","id":2,"clk":"AMMHANIDAJgG","pt":1464771698938,"mc":[{"id":"1.122272085","rc":[{"batl":[[2,1000,1.6],[1,850,2.31],[0,4.2,3.08]],"id":58805}]}]}
Placing back bet at 4.0:
{"op":"mcm","id":2,"clk":"AMsJAOkEAJQI","pt":1464771709165,"mc":[{"id":"1.122272085","rc":[{"batl":[[2,1000,2.37],[1,190,3.08],[0,4.1,3.08]],"id":58805}]}]}
Cancelling back bet at 4.2:
{"op":"mcm","id":2,"clk":"AKwNANsGAI4L","pt":1464771726726,"mc":[{"id":"1.122272085","rc":[{"batl":[[2,1000,1.6],[1,850,2.31]],"id":58805}]}]}
And cancelling remaining 2 back bets:
{"op":"mcm","id":2,"clk":"AO4OALQHALQM","pt":1464771733774,"mc":[{"id":"1.122272085","rc":[{"batl":[[2,0,0],[1,1000,1.6],[0,850,2.31]],"id":58805}]}]}