Overall Statistics |
Total Trades 2 Average Win 0% Average Loss 0% Compounding Annual Return -52.016% Drawdown 8.000% Expectancy 0 Net Profit -5.985% Sharpe Ratio -2.511 Probabilistic Sharpe Ratio 6.319% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.397 Beta 0.098 Annual Standard Deviation 0.158 Annual Variance 0.025 Information Ratio -2.188 Tracking Error 0.182 Treynor Ratio -4.043 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset VIX XFF9X9TJXENI|VIX 31 |
from AlgorithmImports import * class TiingoNewsDataAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 1, 1) self.SetEndDate(2020, 2, 1) self.SetCash(200000) index = self.AddIndex("VIX") option = self.AddOption(index.Symbol) option.SetFilter(-2, +2, 0, 180) self.optionSymbol = option.Symbol def OnData(self, data): if not self.Portfolio.Invested and self.IsMarketOpen(self.optionSymbol): chain = data.OptionChains.get(self.optionSymbol) if not chain: return callContracts = [c for c in chain if c.Right == OptionRight.Call] if callContracts: expiry = max([c.Expiry for c in callContracts]) callContracts = sorted([c for c in callContracts if c.Expiry == expiry], key=lambda c: c.Strike) if len(callContracts) < 2: return longCall, shortCall = callContracts[0:2] # Use all the buying power quantity = min([ abs(self.CalculateOrderQuantity(shortCall.Symbol, -1)), abs(self.CalculateOrderQuantity(longCall.Symbol, 1))]) self.MarketOrder(shortCall.Symbol, -quantity) self.MarketOrder(longCall.Symbol, quantity) expectedMarginUsage = max((longCall.Strike - shortCall.Strike) * self.Securities[longCall.Symbol].SymbolProperties.ContractMultiplier * quantity, 0) if expectedMarginUsage != self.Portfolio.TotalMarginUsed: raise Exception("Unexpect margin used!") def OnSecuritiesChanged(self, changes): for security in changes.AddedSecurities: if security.Type == SecurityType.IndexOption: # Historical data history = self.History(security.Symbol, 10, Resolution.Minute) self.Debug(f"We got {len(history)} from our history request for {security.Symbol}")