It seems the issue is you are using BID and ASK after the market closed, so they are not relevant after market has closed (need to be captured at the close while they are still valid). -- I use simple process for interest rates adjusted to the term duration from the daily values from ivolatility (s/b about the same as the LIBOR rates). The U derivation is based on techniques from a Chain Boostrap white paper published by Steve Speer back in 2016. This method, IMO, is ideal for index products with continuous dividends. "U" = Ndx-PVDiv where "Ndx" is the implied index value for this chain at the chain timestamp and “PVDiv” is the present value of dividends for this index, on this date, for this DTE. U is derived from the option chain (unique per expiry) by fitting best estimate from Call/Put parity. U derived from Exp(-RT) * X + (C-P) Where care is taken to discard errant BIDs and ASKs and remove strikes with excess error contribution. Note: This method negates the need to individually address dividends as U value includes the impact of dividends allowing the dividend input of your model to be zero.Cheers! I've attached the data I obtained from yfinance eod on the 11th when the market was closed. I used the bid/ask mid for calls and puts (the numbers read last Price, bid, ask). I can see how you arrived at your forward here from the pictures you've attached using the bid/ask mid for the calls and puts. Is that the bid/ask from the 11th eod?
How do you determine the risk-free rate? I've utilised a term structure model to fit the zero coupon bonds data from the Treasury to the time left to expiry.
What is value U in your picture and how is it calculated?
Your implied dividend + borrow cost seems to have come out to ~3.06% here, in order for you to arrive at the forward using S*exp^(rfr-borrow-dividend).
The "Forward" in my post is simply "F = Exp(RT) *U"
------------
Hopefully this gives a better idea of one approach.
Last edited: