| Overall Statistics |
|
Total Trades 2 Average Win 4.95% Average Loss 0% Compounding Annual Return 84.892% Drawdown 1.700% Expectancy 0 Net Profit 4.945% Sharpe Ratio 10.377 Probabilistic Sharpe Ratio 94.487% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.061 Beta 0.962 Annual Standard Deviation 0.086 Annual Variance 0.007 Information Ratio 5.222 Tracking Error 0.005 Treynor Ratio 0.93 Total Fees $2.00 |
class Volatility(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2018, 1, 2) # Set Start Date
self.SetCash(10000) # Set Strategy Cash
# self.AddEquity("SPY", Resolution.Minute)
self.ziv = self.AddEquity("ZIV", Resolution.Daily)
self.ziv.SetDataNormalizationMode(DataNormalizationMode.Raw)
self.roc = self.ROC("ZIV", 5, Resolution.Daily)
self.SetWarmUp(5)
def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
Arguments:
data: Slice object keyed by symbol containing the stock data
'''
if self.IsWarmingUp:
return
if self.roc.Current.Value > 0:
self.SetHoldings("ZIV",1)
else:
self.Liquidate("ZIV")class NadionHorizontalCircuit(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2018, 1, 2) # Set Start Date
self.SetEndDate(2018, 1, 30)
self.SetCash(10000) # Set Strategy Cash
# self.AddEquity("SPY", Resolution.Minute)
self.spy = self.AddEquity("SPY", Resolution.Minute)
self.spy.SetDataNormalizationMode(DataNormalizationMode.Raw)
self.roc = RateOfChange(5)
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.BeforeMarketClose("SPY", 5), self.Rebalance)
def Rebalance(self):
if not self.roc.IsReady:
history = self.History("SPY", 5, Resolution.Daily)
for bar in history:
self.roc.Update(bar.EndTime, bar.Close)
self.roc.Update(self.Time, self.Securities["SPY"].Close)
if self.roc.Current.Value > 0:
self.SetHoldings("SPY",1)
else:
self.Liquidate("SPY")