| 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 Probabilistic 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.Indicators")
AddReference("QuantConnect.Common")
from System import *
from QuantConnect import *
from QuantConnect.Data import *
from QuantConnect.Algorithm import *
from QuantConnect.Securities import *
from QuantConnect.Indicators import *
from datetime import timedelta
from enum import Enum
import numpy as np
'''
Issues with VIX options
'''
class OptionsPerformanceIssueAlgo(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2018, 1, 2)
self.SetEndDate(2018, 1, 2)
self.SetCash(15000)
# self.option = self.AddOption('SPY', Resolution.Minute)
self.option = self.AddOption('VIX', Resolution.Minute)
self.option.SetFilter(-100, 100, timedelta(7), timedelta(360))
# self.asset_underlying = self.AddEquity(self.option.Symbol.Underlying, Resolution.Minute)
self.asset_underlying = self.AddEquity('SPY', Resolution.Minute)
self.slice = None
self.trade_hours = [180]
for minutes in self.trade_hours:
self.Schedule.On(
self.DateRules.EveryDay(self.asset_underlying.Symbol),
self.TimeRules.AfterMarketOpen(self.asset_underlying.Symbol, minutes),
Action(self._trade_test)
)
def OnData(self, slice):
self.slice = slice
def _trade_test(self):
if self.slice is None:
return []
underlying_chains = [chain for chain in self.slice.OptionChains]
if len(underlying_chains) == 0:
self.Log('No option contract')
return
underlying_chain = underlying_chains[0].Value
calls = list(filter(
lambda opt: opt.Right == OptionRight.Call,
underlying_chain,
))
puts = list(filter(
lambda opt: opt.Right == OptionRight.Put,
underlying_chain,
))
self.Log('There are %d calls and %d puts' % (len(calls), len(puts)))
return