| Overall Statistics |
|
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -1.271 Tracking Error 0.154 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
# region imports
from AlgorithmImports import *
# endregion
class AlertRedOrangeGalago(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 4, 1)
self.SetCash(100_000)
self.UniverseSettings.Resolution = Resolution.Daily
self.AddUniverse(self.CoarseSelection)
self.OHL = {}
def CoarseSelection(self, coarse):
# Refining a bit to assets with fundamental data and price > 5$
selected = [x for x in coarse if x.HasFundamentalData and (x.Price > 5.0)]
# Priming self.OHL
if len(self.OHL) == 0:
return [x.Symbol for x in selected]
# self.OHL is primed - using it
# Using previous day's High to filter assets by selecting only those with High > 100$
filtered = [x for x in selected if x.Symbol in self.OHL and (self.OHL[x.Symbol][1] > 100.0)]
# Outputting length of returned Universe day after day - for minimal debugging
self.Debug(len(filtered))
# Use or save (for use in another part of the algo) "filtered" however or whereever (self.whatever) you want depending on what you want to do...
# Return the selected Universe, not the filtered
return [x.Symbol for x in selected]
def OnData(self, data: Slice):
for d in data:
self.OHL[d.Key] = (data.Bars[d.Key].Open, data.Bars[d.Key].High, data.Bars[d.Key].Low)