| 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 -1.963 Tracking Error 0.164 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
from clr import AddReference
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Indicators")
AddReference("QuantConnect.Algorithm.Framework")
from QuantConnect.Algorithm import QCAlgorithm
from QuantConnect.Data.UniverseSelection import *
from QuantConnect.Indicators import *
from datetime import timedelta, datetime
class VAlgorithm(QCAlgorithmFramework):
def Initialize(self):
self.SetStartDate(2021, 1, 1)
self.SetEndDate(2021, 3, 1)
self.SetCash(1000000)
self.UniverseSettings.Resolution = Resolution.Hour
self.spy = self.AddEquity("SPY", Resolution.Hour).Symbol
# Set lookback period for STD and SMA
self.lookbackSTD = 10 # volatility (ie, std) over past 10 days
self.lookbackSMA = 5 # 5-day moving average of volatility
# Warmup indicators
self.SetWarmup(20, Resolution.Daily)
# Initialize standard deviation of SPY and moving average of std's at zero
self.std = 0
self.stdAvg = 0
def OnData(self, data):
if self.IsWarmingUp:
return
#setup trades --> if VIX - VRP(hvol10s) > 0 , then buy SVXY(XIV) else buy VXX
def OnEndOfDay(self):
# Construct standard deviation of price using STD Indicator for added securities
self.std = StandardDeviation(self.spy, self.lookbackSTD)
# Construct simple moving average (SMA) of the standard deviation of price
self.stdAvg = IndicatorExtensions.SMA(self.std, self.lookbackSMA)
# Plot indicators
self.Plot("Indicators", "Std", self.std.Current.Value)
self.Plot("Indicators", "Std-Avg", self.stdAvg.Current.Value)