Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 10.037% Drawdown 10.100% Expectancy 0 Net Profit 19.475% Sharpe Ratio 0.842 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.118 Beta -0.774 Annual Standard Deviation 0.122 Annual Variance 0.015 Information Ratio 0.679 Tracking Error 0.122 Treynor Ratio -0.133 Total Fees $2.26 |
import numpy as np from datetime import datetime, timedelta ### <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(2017, 2, 1) #Set Start Date self.SetEndDate(2018,12,11) #Set End Date self.SetCash(100000) #Set Strategy Cash # Find more symbols here: http://quantconnect.com/data # KG Begin- Line below is the problem # self.AddEquity("SPY", Resolution.Minute) self.AddEquity("SPY", Resolution.Daily) # KG end # # define a 10-period RSI indicator with indicator constructor # self.rsi = RelativeStrengthIndex(10, MovingAverageType.Simple) # # register the daily data of "SPY" to automatically update the indicator # self.RegisterIndicator("SPY", self.rsi, Resolution.Daily) ## KG code begin # define our 30 minute trade bar consolidator. we can # access the 30 minute bar from the DataConsolidated events thirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=30)) # attach our event handler. The event handler is a function that will # be called each time we produce a new consolidated piece of data. thirtyMinuteConsolidator.DataConsolidated += self.ThirtyMinuteBarHandler # this call adds our 30-minute consolidator to # the manager to receive updates from the engine self.SubscriptionManager.AddConsolidator("SPY", thirtyMinuteConsolidator) self.adx = self.ADX("SPY", 14) self.RegisterIndicator("SPY", self.adx, Resolution.Daily) ## KG code end def ThirtyMinuteBarHandler(self, sender, bar): if self.adx.IsReady: self.Debug(str(self.Time) + ":" + str(bar) + ",ADX:" + str(self.adx.Current.Value)) 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 ''' self.Plot('ADX', 'SPY', self.adx.Current.Value) if not self.Portfolio.Invested: self.SetHoldings("SPY", 1)