| Overall Statistics |
|
Total Trades 576 Average Win 2.63% Average Loss -1.27% Compounding Annual Return 16.573% Drawdown 20.200% Expectancy 0.379 Net Profit 254.162% Sharpe Ratio 0.941 Loss Rate 55% Win Rate 45% Profit-Loss Ratio 2.07 Alpha 0.118 Beta 2.573 Annual Standard Deviation 0.18 Annual Variance 0.033 Information Ratio 0.83 Tracking Error 0.18 Treynor Ratio 0.066 Total Fees $969.31 |
import numpy as np
from datetime import timedelta, datetime
### <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(2010, 1, 1) #Set Start Date
self.SetEndDate(2018,4,1) #Set End Date
self.SetCash(100000) #Set Strategy Cash
# Find more symbols here: http://quantconnect.com/data
self.symbol = 'GOOGL'
self.AddEquity(self.symbol, Resolution.Daily)
self.ha = self.HeikinAshi(self.symbol, Resolution.Daily)
self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.AfterMarketOpen(self.symbol, -1), Action(self.BeforeMarketOpen))
def BeforeMarketOpen(self):
if not self.ha.IsReady: return
position = self.Portfolio[self.symbol].Quantity
if self.ha.CurrentBar.Close > self.ha.CurrentBar.Open:
self.SetHoldings(self.symbol, 1)
if position >= 0 and self.ha.CurrentBar.Close < self.ha.CurrentBar.Open:
self.Liquidate(self.symbol)
def OnData(self, data):
pass