| Overall Statistics |
|
Total Trades 233 Average Win 0.12% Average Loss -0.11% Compounding Annual Return 12.941% Drawdown 1.400% Expectancy 0.176 Net Profit 2.021% Sharpe Ratio 1.775 Probabilistic Sharpe Ratio 62.811% Loss Rate 45% Win Rate 55% Profit-Loss Ratio 1.13 Alpha 0.129 Beta -0.06 Annual Standard Deviation 0.051 Annual Variance 0.003 Information Ratio -4.09 Tracking Error 0.136 Treynor Ratio -1.521 Total Fees $254.99 Estimated Strategy Capacity $11000000.00 Lowest Capacity Asset TWTR VLE97YS7S57P |
from AlgorithmImports import *
class ExtractAlphaTacticalModelAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2019, 1, 1)
self.SetEndDate(2019, 3, 1)
self.SetCash(100000)
self.time = datetime.min
self.AddUniverse(self.MyCoarseFilterFunction)
self.UniverseSettings.Resolution = Resolution.Minute
def MyCoarseFilterFunction(self, coarse):
sorted_by_dollar_volume = sorted([x for x in coarse if x.HasFundamentalData and x.Price > 4],
key=lambda x: x.DollarVolume, reverse=True)
selected = [x.Symbol for x in sorted_by_dollar_volume[:100]]
return selected
def OnData(self, data):
if self.time > self.Time: return
# Accessing Data
points = data.Get(ExtractAlphaTacticalModel)
sorted_by_score = sorted([x for x in points.items() if x[1].Score], key=lambda x: x[1].Score)
long_symbols = [x[0].Underlying for x in sorted_by_score[-10:]]
short_symbols = [x[0].Underlying for x in sorted_by_score[:10]]
for symbol in [x.Symbol for x in self.Portfolio.Values if x.Invested]:
if symbol not in long_symbols + short_symbols:
self.Liquidate(symbol)
long_targets = [PortfolioTarget(symbol, 0.05) for symbol in long_symbols]
short_targets = [PortfolioTarget(symbol, -0.05) for symbol in short_symbols]
self.SetHoldings(long_targets + short_targets)
self.time = Expiry.EndOfDay(self.Time)
def OnSecuritiesChanged(self, changes):
for security in changes.AddedSecurities:
# Requesting Data
extract_alpha_tactical_model_symbol = self.AddData(ExtractAlphaTacticalModel, security.Symbol).Symbol
# Historical Data
history = self.History(extract_alpha_tactical_model_symbol, 60, Resolution.Daily)
self.Debug(f"We got {len(history)} items from our history request")