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
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
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)