Overall Statistics Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return -0.510% Drawdown 0.000% Expectancy 0 Net Profit -0.007% Sharpe Ratio -11.562 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.004 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -25.249 Tracking Error 0.001 Treynor Ratio -100.368 Total Fees \$1.00
```import numpy as np
import pandas as pd
from datetime import datetime, timedelta
from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *

class BasicTemplateAlgorithm(QCAlgorithm):
'''High beta strategy'''

def Initialize(self):

'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialize.'''

#Initial investment and backtest period
self.SetStartDate(2019,2,25)    #Set Start Date
self.SetEndDate(2019,2,27)       #Set End Date
self.SetCash(10000)          #Set Strategy Cash

#Capture initial investment for risk off purposes
self.ClosingPortValue = self.Portfolio.TotalPortfolioValue
self.CurrentPortValue = self.Portfolio.TotalPortfolioValue
self.CurrentHoldValue = self.Portfolio.TotalHoldingsValue

#Universe

'''Schedule Function Here'''
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.Every(TimeSpan.FromMinutes(6)), self.UpdatePortValues)
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.Every(TimeSpan.FromMinutes(7)), self.CheckDailyLosses)

'''Set Warmup Here'''

self.SetWarmup(TimeSpan.FromDays(30))

#OnData
def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.'''
'''Arguments:
data: Slice object keyed by symbol containing the stock data'''

#Verify all indicators have warmed up before anything happens
if self.IsWarmingUp: return

self.SetHoldings("SPY", 0.10)

#Update Portfolio Values
def UpdatePortValues(self):

self.marginRemaining = self.Portfolio.MarginRemaining
self.CurrentPortValue = self.Portfolio.TotalPortfolioValue
self.CurrentHoldValue = self.Portfolio.TotalHoldingsValue

self.Log("Portfolio Values Have Been Updated")

#CheckLosses
#Check intraday losses and run defensive function if a 5.6% drop is recognized
def CheckDailyLosses(self):

self.CurrentPerformance = round( ((float(self.CurrentPortValue)/float(self.ClosingPortValue))-1)*100,2)

if (self.CurrentPortValue <= self.ClosingPortValue*0.944):
if(self.IsMarketOpen("SPY")):
self.HighLosses()

else: self.Log("Current Performance: {0}%".format(self.CurrentPerformance))

return                        ```