| Overall Statistics |
|
Total Trades 450 Average Win 0.40% Average Loss -0.40% Compounding Annual Return 53.430% Drawdown 18.400% Expectancy 0.090 Net Profit 22.345% Sharpe Ratio 1.748 Probabilistic Sharpe Ratio 62.620% Loss Rate 46% Win Rate 54% Profit-Loss Ratio 1.01 Alpha 0.424 Beta 0.198 Annual Standard Deviation 0.275 Annual Variance 0.076 Information Ratio 0.666 Tracking Error 0.287 Treynor Ratio 2.437 Total Fees $696.03 |
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
#Set the leverage to 4
self.UniverseSettings.Leverage = 4
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:
#Leave a cash buffer by setting the allocation to 0.18 instead of 0.2
self.SetHoldings(security.Symbol, 0.18)