Overall Statistics
Total Trades
25
Average Win
17.43%
Average Loss
-4.41%
Compounding Annual Return
2.264%
Drawdown
45.300%
Expectancy
0.237
Net Profit
13.477%
Sharpe Ratio
0.179
Probabilistic Sharpe Ratio
0.925%
Loss Rate
75%
Win Rate
25%
Profit-Loss Ratio
3.95
Alpha
0.028
Beta
0.104
Annual Standard Deviation
0.171
Annual Variance
0.029
Information Ratio
0.005
Tracking Error
0.25
Treynor Ratio
0.293
Total Fees
$247.20
Estimated Strategy Capacity
$100000000.00
Lowest Capacity Asset
SPY R735QTJ8XC9X
# region imports
from AlgorithmImports import *
# endregion
# region imports
from AlgorithmImports import *
from QuantConnect.DataSource import *
# endregion
class VIXAlgorithm(QCAlgorithm):
  def Initialize(self):
      self.SetStartDate(2006, 5, 10)
      self.SetEndDate(2012, 1, 1)
      self.SetCash(100000)
      self.spy = self.AddEquity("SPY", Resolution.Daily)
      self.VIX_symbol = self.AddData(CBOE, "VIX", Resolution.Daily)
      #self.recession = False
      self.two_weeks_later_time = self.Time.day
 
  def OnData(self, data: Slice):

        if not self.Portfolio.Invested:
            self.SetHoldings("SPY",1)
 
        if self.VIX_symbol.High >= 40 and self.Portfolio["SPY"].IsLong:
            self.current_day = self.Time.day
            self.two_weeks_later_time = self.Time + timedelta(days=10)
            self.SetHoldings("SPY",-1)

            #and self.two_weeks_later_time <= self.Time.day
        elif self.VIX_symbol.High < 40 and self.Portfolio["SPY"].IsShort and self.two_weeks_later_time.day <= self.Time.day:
           #self.recession = False
            self.Liquidate("SPY")
            self.SetHoldings("SPY",1)
 
        else:
           pass