I am trying to pull deep out of the money puts and calls for options histories on SPY and QQQ, It looks like we can only pull something around 75% of atm strikes. Any idea what the issue with otm strikes is?
QUANTCONNECT COMMUNITY
I am trying to pull deep out of the money puts and calls for options histories on SPY and QQQ, It looks like we can only pull something around 75% of atm strikes. Any idea what the issue with otm strikes is?
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Shile Wen
Hi Justin,
Please provide the contracts for which days are missing and how you are selecting the contracts. Furthermore, if you could attach code that demonstrates missing contracts, that would be greatly appreciated.
Best,
Shile Wen
Justin Gerard
Hello Shile,
I've attached the backtest with code.
Shile Wen
Hi Justin,
I was unable to reproduce the issue, and I was able to pull deep OTM options. If you could elaborate what the issue you were facing was, that would be greatly appreciated.
Best,
Shile Wen
Laurent Crouzet
Maybe the misunderstanding is about what "75% of ATM strikes" means.
Let's take an example : SPY options, with the underlying (SPY) around 320.
Trading OTM puts that "75% or more" away from the underlying would mean trying to trade puts with a strike of a maximum of 80 (320 * (1-0.75) = 80)
That is extremely deep OTM strikes, and only a few maturites (like December 2020) have strikes that are as deeply OTM.
Moreover, it is rather rare to try trading such options contracts.
Justin Gerard, maybe you wanted to trade strikes that are ATM or slightly OTM, using the current DELTA of options. In that case, that would mean selecting options with a DELTA of 0.75 (or minus 0.75, depending if it is a call or a put) and NOT selecting options with their STRIKES values, which would mean selecting options that are not that far away from the current underlying price.
That would be much more usual, at least...
Justin Gerard
Laurent Crouzet and Shile Wen Thank you for the responses. I am grateful for this community.
My confusion is coming from the fact that I am printing the strikes to the logs and for the backtest attached below, the logs will show something like:
020-06-01 09:32:00 : Underlying Price: 232.89 2020-06-01 09:32:00 : 50 Delta Call: 210.0 2020-06-01 09:32:00 : 50 Delta Put: 210.0 2020-06-01 09:32:00 : 25 Delta Put: 210.0
This tells me that there is a lower bound on the stikes available.
Shile: Were you able to check the logs and confirm the strikes available?
Laurent Crouzet
Justin Gerard, a few remarks:
1. As you work with options, you should ask for the raw "Data Normalization mode"
self.equity.SetDataNormalizationMode(DataNormalizationMode.Raw)
Agreed, QC does recognize that this mode is needed and automatically change it to Raw mode, but it is a better practice to choose this mode clearly.
2. You still ask for otm strikes that are incredibly out of the market, while you strategy seems to try to trade the ATM strikes (those around + 50% Delta / -50% Delta)
You current lines (42 & 43) are NOT trying to find "At the Money strikes", but strikes that are equal to half of the underlying price, which means strikes which are very low, very far from being ATM:
# determine at-the-money strike
strike = min(strikes, key=lambda x: abs(x-Decimal(0.50)*underlying_price))
Your selection of options contracts that you want to trade should use a filter on the DELTA of options, not on the STRIKES of options.
Justin Gerard
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!