Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return -71.622% Drawdown 1.100% Expectancy 0 Net Profit -0.916% Sharpe Ratio -6.667 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.601 Beta -5.402 Annual Standard Deviation 0.103 Annual Variance 0.011 Information Ratio -7.579 Tracking Error 0.122 Treynor Ratio 0.127 Total Fees $1.00 Estimated Strategy Capacity $11000000.00 Lowest Capacity Asset GOOCV WQE8C4JAK93A|GOOCV VP83T1ZUHROL |
from QuantConnect.Securities.Option import OptionPriceModels from datetime import timedelta class OptionsAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2017, 7, 1) self.SetEndDate(2017, 7, 3) self.SetCash(100000) option = self.AddOption("GOOG") option.SetFilter(-10, +10, timedelta(0), timedelta(180)) option.PriceModel = OptionPriceModels.CrankNicolsonFD() self.SetWarmUp(TimeSpan.FromDays(7)) def GetGreek(self, symbol): for kvp in self.CurrentSlice.OptionChains: chain = kvp.Value contracts = [i for i in chain if i.Symbol==symbol] if contracts[0]: return contracts[0].Greeks return None def OnData(self,slice): if not self.Portfolio.Invested: for chain in slice.OptionChains.Values: contracts = sorted(sorted(chain, \ key = lambda x: abs(chain.Underlying.Price - x.Strike)), \ key = lambda x: x.Expiry, reverse=True) self.MarketOrder(contracts[0].Symbol, 1) self.symbol = contracts[0].Symbol else: greeks = self.GetGreek(self.symbol) if not greeks:return self.Log(f"Delta: {greeks.Delta}") self.Log(f"Vega: {greeks.Vega}") self.Log(f"Gamma: {greeks.Gamma}")