import numpy as np #From strategy library class BetaAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2016, 1, 1) # Set Start Date self.SetEndDate(2017, 1, 1) # Set End Date self.SetCash(10000) # Set Strategy Cash # Dow 30 companies. self.symbols = [self.AddEquity(ticker).Symbol for ticker in ['AAPL', 'AXP', 'BA', 'CAT', 'CSCO', 'CVX', 'DD', 'DIS', 'GE', 'GS', 'HD', 'IBM', 'INTC', 'JPM', 'KO', 'MCD', 'MMM', 'MRK', 'MSFT', 'NKE', 'PFE', 'PG', 'TRV', 'UNH', 'UTX', 'V', 'VZ', 'WMT', 'XOM'] ] # Benchmark self.benchmark = Symbol.Create('SPY', SecurityType.Equity, Market.USA) # Set number days to trace back self.lookback = 21 # Schedule Event: trigger the event at the begining of each month. self.Schedule.On(self.DateRules.MonthStart(self.symbols[0]), self.TimeRules.AfterMarketOpen(self.symbols[0]), self.Rebalance) def Rebalance(self): # Fetch the historical data to perform the linear regression history = self.History( self.symbols + [self.benchmark], self.lookback, Resolution.Daily).close.unstack(level=0) symbols = self.SelectSymbols(history) # Liquidate positions that are not held by selected symbols for holdings in self.Portfolio.Values: symbol = holdings.Symbol if symbol not in symbols and holdings.Invested: self.Liquidate(symbol) # Invest 100% in the selected symbols for symbol in symbols: self.SetHoldings(symbol, 1) def SelectSymbols(self, history): '''Select symbols with the highest intercept/alpha to the benchmark ''' alphas = dict() # Get the benchmark returns benchmark = history[self.benchmark].pct_change().dropna() # Conducts linear regression for each symbol and save the intercept/alpha for symbol in self.symbols: # Get the security returns returns = history[symbol].pct_change().dropna() returns = np.vstack([returns, np.ones(len(returns))]).T # Simple linear regression function in Numpy result = np.linalg.lstsq(returns, benchmark) alphas[symbol] = result[0][1] # Select symbols with the highest intercept/alpha to the benchmark selected = sorted(alphas.items(), key=lambda x: x[1], reverse=True)[:2] return [x[0] for x in selected]

Hello everyone, I am new to QuantConnect and I am having difficulty implementing stop losses for this algorithm I cloned from the strategy library. How can I put a normal stop loss and/or a trailing stop loss into the algorithm to limit losses? Thanks for the help in advance.

Author