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 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 |
import numpy as np from datetime import datetime import pandas as pd import math import numpy as np class VolTrading(QCAlgorithm): def __init__(self): self.previous = None self.position = None def Initialize(self): self.SetStartDate(2018,1,1) #Set Start Date self.SetEndDate(2018,1,10) #Set End Date self.SetCash(10000) #Set Strategy Cash self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol self.vixy = self.AddEquity("VIXY", Resolution.Minute).Symbol self.SetWarmUp(440) def OnData(self, data): history_s = self.History([self.spy], 2, Resolution.Minute) history_v = self.History([self.vixy], 2, Resolution.Minute) if not history_v.empty and not history_s.empty: last_minute_close_s = history_s.loc[str(self.spy)]["close"][-1] last_minute_close_v = history_v.loc[str(self.vixy)]["close"][-1] else: return SPercent = np.log((float(self.Securities[self.spy].Price))/last_minute_close_s) VPercent = np.log((float(self.Securities[self.vixy].Price))/last_minute_close_v) if self.IsWarmingUp: return if SPercent <= -.01: if self.position == None: self.SetHoldings("VIXY", 1) elif self.position == "SPY": self.Liquidate("SPY") self.SetHoldings("VIXY", 1) self.position = "VIXY" elif VPercent <= -.01: if self.position == None: self.SetHoldings("SPY", 1) elif self.position == "VIXY": self.Liquidate("VIXY") self.SetHoldings("SPY", 1) self.position = "SPY"