| Overall Statistics |
|
Total Trades 102 Average Win 7.55% Average Loss -1.83% Compounding Annual Return 3.575% Drawdown 34.700% Expectancy 0.741 Net Profit 57.971% Sharpe Ratio 0.311 Loss Rate 66% Win Rate 34% Profit-Loss Ratio 4.12 Alpha 0.106 Beta -2.986 Annual Standard Deviation 0.149 Annual Variance 0.022 Information Ratio 0.177 Tracking Error 0.149 Treynor Ratio -0.016 Total Fees $669.23 |
import numpy as np
import talib as ta
### <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(2006,1, 1) #Set Start Date
#self.SetEndDate(2013,10,11) #Set End Date
self.SetCash(100000) #Set Strategy Cash
# Find more symbols here: http://quantconnect.com/data
self.AddEquity("SPY", Resolution.Minute)
self.AddEquity('GLD', Resolution.Minute)
self.Schedule.On(self.DateRules.EveryDay('GLD'), self.TimeRules.BeforeMarketClose('GLD', 2), Action(self.trade))
def trade(self):
h = self.History(['GLD'], 250, Resolution.Daily).unstack(level=0).close
avg = ta.EMA(h['GLD'].values, 200)[-1]
close = h['GLD'].iloc[-1]
if close > avg * (1 + 0.001):
self.SetHoldings('GLD', 1)
elif close < avg * (1 - 0.001):
self.Liquidate()