Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
from clr import AddReference AddReference("System") AddReference("QuantConnect.Algorithm") AddReference("QuantConnect.Common") from System import * from QuantConnect import * from QuantConnect.Algorithm import * from datetime import timedelta from decimal import Decimal import QuantConnect.Securities.Option import QuantConnect.Securities.Equity class OptionIssues(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 12, 24) self.SetEndDate(2016, 1, 31) self.SetCash(10000) self.option = self.AddOption("GOOG") self.equity = self.AddEquity("GOOG", Resolution.Minute) # set our strike/expiry filter for this option chain self.min_days_to_expire = 7 self.option.SetFilter(-10000000, +0, timedelta(self.min_days_to_expire), timedelta(40)) # use the underlying equity as the benchmark self.SetBenchmark("GOOG") self.Schedule.On( self.DateRules.EveryDay(self.option.Symbol.Value), self.TimeRules.BeforeMarketClose( self.option.Symbol.Value, 30), Action(self.action) ) def action(self): contracts = list(filter( lambda x: isinstance(x, QuantConnect.Securities.Option.Option), self.Securities.Values) ) puts = list(filter( lambda opt: opt.Right == OptionRight.Put, contracts )) expiry = sorted( puts, key=lambda opt: opt.Expiry, ) self.Debug( 'Current date: %s. First close contract: %s.' 'Days to expiry: %d. Min days constrain: %d' % ( self.Time, expiry[0].Expiry, (expiry[0].Expiry - self.Time).days, self.min_days_to_expire, ) ) return