| Overall Statistics |
|
Total Trades 1008 Average Win 1.78% Average Loss -1.94% Compounding Annual Return -47.207% Drawdown 76.400% Expectancy -0.113 Net Profit -72.162% Sharpe Ratio -1.352 Loss Rate 54% Win Rate 46% Profit-Loss Ratio 0.92 Alpha -0.462 Beta -4.563 Annual Standard Deviation 0.409 Annual Variance 0.168 Information Ratio -1.401 Tracking Error 0.409 Treynor Ratio 0.121 Total Fees $2078.91 |
import numpy as np
class Algo(QCAlgorithm):
def Initialize(self):
self.rise = .3
self.fall = .2
self.curr_price = 0
self.SetStartDate(2007, 1, 1) #Set Start Date
self.SetEndDate(2009, 1, 1) #Set End Date
self.SetCash(10000) #Set Strategy Cash
self.AddEquity("AAPL", Resolution.Tick)
self.Schedule.On(self.DateRules.EveryDay("AAPL"),
self.TimeRules.AfterMarketOpen("AAPL", 0),
Action(self.buy_all_morning))
self.Schedule.On(self.DateRules.EveryDay(),
self.TimeRules.BeforeMarketClose("AAPL", 5),
Action(self.sell_all_close))
def OnTick(self, data):
if(self.Securities["AAPL"].Price == (self.curr_price + self.rise)):
if not self.Portfolio.Invested:
self.curr_price = self.Securities["AAPL"].Price
self.SetHoldings("AAPL", 0)
elif(self.Securities["AAPL"].Price == (self.curr_price - self.fall)):
if not self.Portfolio.Invested:
self.curr_price = self.Securities["AAPL"].Price
self.SetHoldings('AAPL',1)
def buy_all_morning(self):
self.curr_price = self.Securities["AAPL"].Price
self.SetHoldings("AAPL", 1)
def sell_all_close(self):
self.SetHoldings("AAPL",0)