| 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 -0.538 Tracking Error 0.205 Treynor Ratio 0 Total Fees $0.00 |
import pandas as pd
from datetime import datetime
class AssetClassMomentumAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2007, 5, 1)
self.SetEndDate(datetime.now())
self.SetCash(100000)
self.months =-1
# create a dictionary to store momentum indicators for all symbols
self.data = {}
period = 210
self.symbols = ["SPY", "ACWX", "BND", "VNQ", "DBC"]
added_symbols = []
self.SetWarmUp(period)
for symbol in self.symbols:
self.AddEquity(symbol, Resolution.Hour)
self.data[symbol] = self.SMA(symbol, 210, Resolution.Daily)
# schedule the function to fire at the month start
self.Schedule.On(self.DateRules.MonthStart("SPY"), self.TimeRules.AfterMarketOpen("SPY", 1), self.Rebalance)
def OnData(self, data):
pass
def Rebalance(self):
if self.IsWarmingUp: return
added_symbols = []
for symbol, sma in self.data.items():
if self.Securities[symbol].Close > sma.Current.Value:
added_symbols.append(symbol)
else:
self.Liquidate(symbol)
self.Debug(added_symbols)