Overall Statistics
Total Trades
24
Average Win
0.12%
Average Loss
-0.13%
Compounding Annual Return
-30.566%
Drawdown
26.800%
Expectancy
0.087
Net Profit
-12.938%
Sharpe Ratio
-0.835
Probabilistic Sharpe Ratio
10.694%
Loss Rate
43%
Win Rate
57%
Profit-Loss Ratio
0.90
Alpha
-0.218
Beta
0.616
Annual Standard Deviation
0.324
Annual Variance
0.105
Information Ratio
-0.868
Tracking Error
0.213
Treynor Ratio
-0.438
Total Fees
$30.58
class MultidimensionalTransdimensionalAntennaArray(QCAlgorithm):
    def Initialize(self):
        self.UniverseSettings.Resolution = Resolution.Minute

        self.SetStartDate(2020, 1, 1)

        self.Settings.RebalancePortfolioOnInsightChanges = False;
        self.Settings.RebalancePortfolioOnSecurityChanges = False;
        
        symbols = [Symbol.Create(ticker, SecurityType.Equity, Market.USA) 
                    for ticker in [ "SPY", # US Large Cap ETF
                                    "VEA", # Developed Foreign Stocks (TradedSince: 2007/8)ETF 
                                    "IEF", # US 10Y Gov.Bonds ETF 
                                    "DBC", # GSCI Commodities ETF (TradedSince: 2006/3)
                                    "VNQ"  # US RealEstate ETF
                                    ]]
        self.AddUniverseSelection(ManualUniverseSelectionModel(symbols))
        self.SetAlpha(ConstantAlphaModel(InsightType.Price, InsightDirection.Up, TimeSpan.FromMinutes(20), 0.025, None));
        self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel(self.RebalanceFunction))
        self.SetExecution(ImmediateExecutionModel())
        self.lastRebalanceMonth = -1

    def RebalanceFunction(self, time):
        # Rebalance at the open of the first trading day of each month
        if self.Time.hour == 9 and self.Time.minute == 31 and self.Time.month != self.lastRebalanceMonth:
            self.lastRebalanceMonth = self.Time.month
            return time