| Overall Statistics |
|
Total Trades 444 Average Win 0.37% Average Loss -0.41% Compounding Annual Return 34.122% Drawdown 19.100% Expectancy -0.003 Net Profit 14.833% Sharpe Ratio 0.971 Probabilistic Sharpe Ratio 45.747% Loss Rate 47% Win Rate 53% Profit-Loss Ratio 0.89 Alpha -0.225 Beta 1.963 Annual Standard Deviation 0.249 Annual Variance 0.062 Information Ratio 0.022 Tracking Error 0.189 Treynor Ratio 0.123 Total Fees $719.78 Estimated Strategy Capacity $110000000.00 Lowest Capacity Asset CHWY X5BUF5UE90F9 |
class LiquidUniverseSelection(QCAlgorithm):
filteredByPrice = None
def Initialize(self):
self.SetStartDate(2019, 1, 11)
self.SetEndDate(2019, 7, 1)
self.SetCash(100000)
self.AddUniverse(self.CoarseSelectionFilter)
self.UniverseSettings.Resolution = Resolution.Daily
#1. Set the leverage to 2
self.UniverseSettings.Leverage = 2
def CoarseSelectionFilter(self, coarse):
sortedByDollarVolume = sorted(coarse, key=lambda c: c.DollarVolume, reverse=True)
filteredByPrice = [c.Symbol for c in sortedByDollarVolume if c.Price > 10]
return filteredByPrice[:10]
def OnSecuritiesChanged(self, changes):
self.changes = changes
self.Log(f"OnSecuritiesChanged({self.Time}):: {changes}")
for security in self.changes.RemovedSecurities:
if security.Invested:
self.Liquidate(security.Symbol)
for security in self.changes.AddedSecurities:
#2. Leave a cash buffer by setting the allocation to 0.18 instead of 0.2
# self.SetHoldings(security.Symbol, ...)
self.SetHoldings(security.Symbol, 0.18)