Why some Limit/Stop orders don't hit although the price hit on my market watch (MW)?
Posted by Mohammad Rahhal, Last modified by Ismail Moamer on 24 July 2019 01:08 PM
That's because there are two types for the spread calculation, if you go from the backoffice to System Options, Symbols Settings then double click on any symbol, you will see that there is an option on the General tab for the Spread Calculation, where there are two choices here for calculating the spread:
1- If it's set to be calculated "from the Bid" then the formula will be simply, let us say the spread will be 6 and the calculation will be like this:
MW BID = feed BID
So the BID (in client and backoffice platforms) will be as it is from the data feed bid, and the prices on the Market watch will be as the chart since the chart is reading from the FEED bid price directly without re-spreading.
2- If it's set to be calculated using "the average" then the formula will be as:
MW BID = (feed BID + feed ASK) / 2 - spread/2
So the BID in client platform will not be from as the backoffice platform bid and the data feed bid. And the Bid prices on the Market watch will not be as the chart.
When you set a spread value in the parameters to 6 for symbol X for example, and suppose that the current bid and ask on your data feed is 120 and 122 respectively.
More simple way to calculate the spread is to divide the original spread value over 2
(6/2 = 3) then take the average for current bid and ask on your data feed
((bid + ask) / 2), then the Bid value = average – 3 and the Ask value = average +3).
The spread calculation will subtract the feed spread at the first place (6), then calculate the average of data feed prices ((bid + ask)/2= 121) and take the average of the spread which is 6/2 = 3, then the bid value on market watch will be 121 – 3 = 118 and the ask value on market watch will be 121+3= 124.