Overall Statistics |
Total Trades 3 Average Win 0.00% Average Loss 0.00% Compounding Annual Return 0% Drawdown 0.000% Expectancy 0.000 Net Profit 0% Sharpe Ratio 2.366 Probabilistic Sharpe Ratio 87.592% Loss Rate 50% Win Rate 50% Profit-Loss Ratio 1.00 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 1.449 Tracking Error 0.585 Treynor Ratio 44.997 Total Fees $2.00 |
from QuantConnect.Algorithm import * from QuantConnect.Securities.Option import OptionPriceModels class BasicTemplateOptionsFilterUniverseAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 1, 17) self.SetEndDate(2020, 3, 20) self.SetCash(100000) self.option = self.AddOption("DAL") self.AddEquity("DAL", Resolution.Minute) self.option.SetFilter(-3, +3, 0, 31) self.contract = None self.done = False def OnData(self, data): if self.done: return if self.contract is not None and self.Portfolio[self.contract.Symbol].Invested: self.MarketOrder(self.contract.Symbol, -2) self.done = True return for symbol, chain in data.OptionChains.items(): contracts = [c for c in chain if c.Right == OptionRight.Call] if len(contracts) == 0: self.Log("No call contracts expiring today") return contracts = [c for c in contracts if c.Strike > c.UnderlyingLastPrice] sorted_contracts = sorted(contracts, key = lambda x: (x.Strike, x.Expiry), reverse=True) self.contract = sorted_contracts[0] self.MarketOrder(self.contract.Symbol, 1)