| 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 -7.158 Tracking Error 0.141 Treynor Ratio 0 Total Fees $0.00 |
import numpy as np
import mlfinlab as ml
import pandas as pd
class CalibratedResistanceAtmosphericScrubbers(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2019, 1, 1)
self.SetEndDate(2019, 3, 1)
self.SetCash(100000)
self.spy = self.AddEquity("SPY", Resolution.Hour)
self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Cash)
# init close prices
self.open = np.array([])
self.high = np.array([])
self.low = np.array([])
self.close = pd.Series()
self.volume = np.array([])
self.lookback = 50
self.SetWarmUp(self.lookback * 2)
def OnData(self, data):
if "SPY" not in data.Bars:
return
open_ = data["SPY"].Open
high_ = data["SPY"].High
low_ = data["SPY"].Low
close_ = data["SPY"].Close
volume_ = data["SPY"].Volume
self.open = np.append(self.open, close_)[-self.lookback*2:]
self.high = np.append(self.high, close_)[-self.lookback*2:]
self.low = np.append(self.low, close_)[-self.lookback*2:]
self.close = self.close.append(pd.Series([close_], index=[self.Time]))[-self.lookback*2:]
self.volume = np.append(self.volume, close_)[-self.lookback*2:]
self.time = self.Time
if self.IsWarmingUp:
return
df = pd.DataFrame({'open': self.open, 'high': self.high, 'low': self.low, 'close': self.close, 'volume': self.volume})
daily_vol = ml.util.get_daily_vol(self.close, lookback=100)