Overall Statistics |
Total Trades 480 Average Win 1.37% Average Loss -1.00% Compounding Annual Return 7.986% Drawdown 9.300% Expectancy 0.395 Net Profit 149.256% Sharpe Ratio 0.821 Loss Rate 41% Win Rate 59% Profit-Loss Ratio 1.37 Alpha 0.07 Beta -0.053 Annual Standard Deviation 0.081 Annual Variance 0.007 Information Ratio -0.047 Tracking Error 0.202 Treynor Ratio -1.264 Total Fees $3207.30 |
import numpy as np import decimal as d from decimal import Decimal ### <summary> ### Basic template algorithm simply initializes the date range and cash. This is a skeleton ### framework you can use for designing an algorithm. ### </summary> class BasicTemplateAlgorithm(QCAlgorithm): '''Basic template algorithm simply initializes the date range and cash''' def Initialize(self): '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.''' self.SetStartDate(2007,10, 7) #Set Start Date self.SetEndDate(2019,8,25) #Set End Date self.SetCash(100000) #Set Strategy Cash # Find more symbols here: http://quantconnect.com/data self.AddEquity("SPY", Resolution.Minute) self.AddEquity("TLT", Resolution.Minute) #self.Debug("numpy test >>> print numpy.pi: " + str(np.pi)) #Buy Monday afternoon self.Schedule.On(self.DateRules.Every(DayOfWeek.Monday), self.TimeRules.At(14, 56), self.MondayBuy) #Sell on Tuesday afternoon self.Schedule.On(self.DateRules.Every(DayOfWeek.Wednesday), self.TimeRules.At(10, 32), self.TuesdaySell) self.SPY7 = self.EMA("SPY", 7, Resolution.Daily); bars = self.History(["SPY"], 220, Resolution.Daily) if not bars.empty: for index, row in bars.loc["SPY"].iterrows(): close = row["close"] self.SPY7.Update(index, close) def MondayBuy(self): #if not self.Portfolio.Invested: #if not self.Securities["SPY"].Price < self.SPY7.Current.Value * d.Decimal(0.996): #self.SetHoldings("SPY", 1) if self.Securities["SPY"].Price < self.SPY7.Current.Value: #* d.Decimal(0.996): self.SetHoldings("SPY", 1) def TuesdaySell(self): #if self.Securities["SPY"].Price > self.SPY7.Current.Value: self.Liquidate("SPY") #if self.Portfolio.Invested: #self.Liquidate("SPY") #self.SetHoldings("TLT", 1) #self.SetHoldings("SPY", -0.2) #end