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)