| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 239.027% Drawdown 1.100% Expectancy 0 Net Profit 1.687% Sharpe Ratio 4.159 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 62.235 Annual Standard Deviation 0.172 Annual Variance 0.03 Information Ratio 4.093 Tracking Error 0.172 Treynor Ratio 0.011 Total Fees $3.29 |
import numpy as np
import pandas as pd
class portfolioLogReturnsExample(QCAlgorithm):
def Initialize(self):
self.cash = 100000
self.SetStartDate(2013,10, 7) #Set Start Date
self.SetEndDate(2013,10,11) #Set End Date
self.SetCash(self.cash) #Set Strategy Cash
self.symbol = "SPY"
self.AddEquity(self.symbol, Resolution.Daily)
# Create empty DataFrame to store portfolio value
self.df = pd.DataFrame()
def OnData(self, data):
if not self.Portfolio.Invested:
self.SetHoldings(self.symbol, 1)
self.df = self.df.append({"PortfolioValue":self.cash},ignore_index=True)
return
# Append dictionary to DataFrame
self.df = self.df.append({"PortfolioValue":self.Portfolio.TotalHoldingsValue},ignore_index=True)
# Calculate log returns
logPct = np.log(self.df["PortfolioValue"]).diff().dropna()
# Print log returns
self.Log(str(logPct))