| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 12.634% Drawdown 33.900% Expectancy 0 Net Profit 50.834% Sharpe Ratio 0.646 Probabilistic Sharpe Ratio 21.554% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.147 Beta -0.199 Annual Standard Deviation 0.19 Annual Variance 0.036 Information Ratio -0.002 Tracking Error 0.295 Treynor Ratio -0.616 Total Fees $23.44 |
class SimpleAlgoWithFundFees(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2017,2,1)
self.SetCash(1000000)
self.AddEquity("SPY", Resolution.Daily)
self.accum_fees = 0
self.start_tpv = self.Portfolio.TotalPortfolioValue
self.Schedule.On(self.DateRules.MonthEnd(), self.TimeRules.Midnight, self.addFee)
def OnData(self, data):
self.fee_adj_tpv = self.Portfolio.TotalPortfolioValue - self.accum_fees
self.Plot("Fee Adjusted Equity", self.fee_adj_tpv)
if not self.Portfolio.Invested:
self.SetHoldings("SPY", 1)
def addFee(self, fix_pct = .02, profit_pct = .2):
if not self.Time.month == 12: return
self.accum_fees += self.start_tpv * fix_pct + profit_pct * max(0, self.Portfolio.TotalPortfolioValue - self.start_tpv)
self.start_tpv = self.Portfolio.TotalPortfolioValue