Overall Statistics |
Total Trades
452
Average Win
0.88%
Average Loss
-0.76%
Compounding Annual Return
2.026%
Drawdown
11.900%
Expectancy
0.238
Net Profit
48.096%
Sharpe Ratio
0.518
Loss Rate
42%
Win Rate
58%
Profit-Loss Ratio
1.15
Alpha
0.015
Beta
0.299
Annual Standard Deviation
0.04
Annual Variance
0.002
Information Ratio
0.022
Tracking Error
0.04
Treynor Ratio
0.07
Total Fees
$2396.74
|
from datetime import date, timedelta, datetime import pandas as pd class PayDay_Anomaly(QCAlgorithm): def Initialize(self): self.SetStartDate(2000, 1, 1) self.SetEndDate(datetime.now()) self.SetCash(100000) self.symbol = "SPY" data = self.AddEquity(self.symbol, Resolution.Minute) dates = pd.read_csv('https://docs.google.com/spreadsheets/d/1JNyYi7LiwK-Mcmq2BOM547Y8kEIDox4fIq01C4uZyGw/export?format=csv',header=None) dates = [datetime.strptime(x[0], "%d.%m.%Y") for x in dates.values] self.Schedule.On(self.DateRules.On(dates), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.DayBefore16th) self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.Rebalance) def DayBefore16th(self): if not self.Portfolio[self.symbol].IsLong: self.SetHoldings(self.symbol, 1) def Rebalance(self): if self.Portfolio[self.symbol].IsLong: self.Liquidate(self.symbol)