Overall Statistics
import numpy as np
import pandas as pd

class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):

        self.SetStartDate(2018,6, 5)  
        self.SetCash(10000)           
        self.symbols = ["SMG", "CRON", "CGC", "STZ"]
        self.back_period = 2

        for i in range(len(self.symbols)):
            symbol = self.AddEquity(self.symbols[i], Resolution.Daily).Symbol
            self.symbols[i] = symbol
        
#average price increase      
    def get_history(self):
        history = self.History(self.back_period, Resolution.Daily)
        for i in self.symbols:
            bars = map(lambda x: x[i], history)
            i.prices = pd.Series([float(x.Close) for x in bars])
            i.ema3 = self.EMA(i, 3, Resolution.Daily)
            i.ema1 = self.EMA(i, 1, Resolution.Daily)

# select the best one with the highest score.
    def select(self):
        self.get_history()
        for i in self.symbols:    
            single = (i.prices / i.ema1)
            three = (i.prices / i.ema3)
            i.score = single / three
            
        select = sorted(self.symbols, key = lambda x: x.score, reverse = True)
        return select[0]
        
    def rebalance(self):
        target = self.select()
        self.SetHoldings(target,1)