Buying/selling Options from Custom Data - there's a good chance the price isn't available in self.Securities and/or there's no contracts from GetOptionContractList at specified strike+expiry. until later?
I've been debugging my output to try and find out why this strategy isn't working. It looks as though there's either no price available for a given option (so I can't figure out a qty to market buy/sell) and/or there's no contracts available for my strike+expiry, but there is later in the day (on minutely).
Tried it before setting brokerage, and after. Sameish results.
Anyone know why?
Derek Melchin
Hi Jarett,
When we request data with AddEquity, the algorithm doesn't receive a price for the security until the next time step is complete. That is, if we call AddEquity at 11:51AM, we will receive the first data point at 11:52PM. This is why the algorithm runs into issues with not having a price. Another issue related to the "zero quantity" error surfaces because of the way the algorithm determines position sizing. After doing so, we need to ensure the resulting quantity is also non-zero. We can accomplish this by adjusting the code snippet that determines position sizing inside `TradeOptions` to the following:
amt2 = self.Securities[self.put].Price * -1 if amt2 == 0: return amt = int((self.Portfolio.MarginRemaining / 10000) / amt2) if amt == 0: return
This change has been implemented in the attached algorithm.
It is correct that the algorithm also runs into issues of the strike prices in the CSV file not existing in the backtest. See the log for the attached backtest for reference. Going forward, it may be easier to develop the entire strategy with our API instead of reading a CSV file with pre-determined trades. There are many great example algorithms that trade options in our Applied Options tutorials.
Best,
Derek Melchin
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.
Jarett Dunn
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!