Overall Statistics |
Total Trades 4 Average Win 0% Average Loss -0.74% Compounding Annual Return 8.147% Drawdown 2.100% Expectancy -1 Net Profit 4.000% Sharpe Ratio 1.639 Probabilistic Sharpe Ratio 65.857% Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.039 Beta 0.361 Annual Standard Deviation 0.049 Annual Variance 0.002 Information Ratio -2.992 Tracking Error 0.084 Treynor Ratio 0.221 Total Fees $2.00 Estimated Strategy Capacity $150000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
from QuantConnect.Securities.Option import OptionPriceModels class CasualYellowCobra(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 12, 16) self.SetCash(100000) self.SetSecurityInitializer(lambda x: x.SetDataNormalizationMode(DataNormalizationMode.Raw)) self.AddEquity("SPY", Resolution.Minute) self.SetWarmUp(TimeSpan.FromDays(7)) self.tickers = [] def OnData(self, slice): if self.Portfolio.Invested: return otm_puts = []; otm_calls = [] for chain in slice.OptionChains.Values: otm_puts = [x for x in chain if chain.Underlying.Price - x.Strike < 0 and x.Right == 1 and x.Greeks.Delta <= -0.05] otm_calls = [x for x in chain if chain.Underlying.Price - x.Strike > 0 and x.Right == 0 and x.Greeks.Delta >= 0.05] for ticker in otm_puts + otm_calls: self.MarketOrder(ticker.Symbol, 1) def OnSecuritiesChanged(self, changes): for change in changes.AddedSecurities: option = self.AddOption(change.Symbol.Value.split(' ')[0]) option.PriceModel = OptionPriceModels.CrankNicolsonFD()