Slippage
Question: Slippage is the difference in price between the execution price of an order and the price it was meant to execute at, which is normally the order arrival price (the price at the time the order is received). An example of this would be a broker sending out a client order to buy a security at the current market price, and it being filled at a higher price due to the price movement in that time. This can occur when there is high volatility or rapid movement in the market, or when large orders acquire all the liquidity available at the best price and penetrate through different price levels. We will be looking at the first case. Let's say for our given system, whenever an order is received it is sent out immediately to the market as a Market Order, and this process + order execution takes 1 second. In other words, the order executes 1 second after being received. The order received time is represented by the 'time' column. Using the order table, quote table, and lag below, create two new columns in the order table: 'slippage_bps' and 'slippage_abs'. The 'slippage_bps' column is slippage in terms of basis points difference of the expected price with the following formula: 10000 * (actual execution price - expected execution price) % expected execution price. The 'slippage_abs' column is slippage in terms of dollar amount with the following formula: (actual execution price - expected execution price) * quantity. The slippage should be positive if slippage is favorable (buy at a lower ask, sell at a higher bid), otherwise negative (buy at a higher ask, sell at a lower bid). Assume there is enough market volume at the bid/ask to accomodate these orders (that's why bid/ask size are excluded).
More Information:
https://www.investopedia.com/terms/s/slippage.aspExample
lag:00:00:01
order:([]time:10:00 10:00:00.001n;sym:`AAPL;side:`buy`sell;quantity:300 600)
quote:([]time:10:00 10:00:00.1n;sym:2#`AAPL;bid_price:351.73 351.65;ask_price:352.43 352.01)
/ construct your table
q)data
time sym side quantity slippage_bps slippage_abs
-----------------------------------------------------------------
0D10:00:00.000000000 AAPL buy 300 11.91726 126
0D10:00:00.001000000 AAPL sell 600 -2.274472 -48