Overall Statistics |
Total Trades 2 Average Win 0% Average Loss 0.00% Compounding Annual Return 24.853% Drawdown 1.500% Expectancy -1 Net Profit 1.779% Sharpe Ratio 2.624 Probabilistic Sharpe Ratio 66.819% Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.245 Beta -0.194 Annual Standard Deviation 0.079 Annual Variance 0.006 Information Ratio 0.1 Tracking Error 0.122 Treynor Ratio -1.069 Total Fees $14.78 |
class WeeklyAlphaCompetitionAlgorithm(QCAlgorithm): def Initialize(self): # The blocked section of code below is to remain UNCHANGED for the weekly competitions. # # Insight-weighting portfolio construction model: # - You can change the rebalancing date rules or portfolio bias # - For more info see https://github.com/QuantConnect/Lean/blob/master/Algorithm.Framework/Portfolio/InsightWeightingPortfolioConstructionModel.py # # Use the Alpha Streams Brokerage Model: # - Developed in conjunction with funds to model their actual fees, costs, etc. Please do not modify other models. ############################################################################################################################### self.SetStartDate(2020, 12, 1) # 5 years up to the submission date self.SetCash(1000000) # Set $1m Strategy Cash to trade significant AUM self.SetBenchmark('SPY') # SPY Benchmark self.SetBrokerageModel(AlphaStreamsBrokerageModel()) self.SetExecution(ImmediateExecutionModel()) self.SetPortfolioConstruction(InsightWeightingPortfolioConstructionModel()) ############################################################################################################################### # Do not change the code above # Add the alpha model and anything else you want below self.AddAlpha(MyCompetitionAlphaModel()) # Add a universe selection model symbols = [ Symbol.Create("SPY", SecurityType.Equity, Market.USA) ] self.AddUniverseSelection( ManualUniverseSelectionModel(symbols) ) self.UniverseSettings.Resolution = Resolution.Daily class MyCompetitionAlphaModel: def __init__(self, *args, **kwargs): '''Initializes a new default instance of your Alpha Model class.''' pass def Update(self, algorithm, data): '''Updates this alpha model with the latest data from the algorithm. This is called each time the algorithm receives data for subscribed securities Args: algorithm: The algorithm instance data: The new data available Returns: The new insights generated''' insights = [Insight.Price("SPY", timedelta(minutes = 20), InsightDirection.Up, None, None, None, 1)] # This is where insights are returned, which are then passed to the # Portfolio Construction, Risk, and Execution models. # The following Insight properties MUST be set before returning # - Symbol -- Secuirty Symbol # - Duration -- Time duration that the Insight is in effect # - Direction -- Direction of predicted price movement # - Weight -- Proportion of algorithm capital to be allocated to this Insight return insights def OnSecuritiesChanged(self, algorithm, changes): '''Event fired each time the we add/remove securities from the data feed Args: algorithm: The algorithm instance that experienced the change in securities changes: The security additions and removals from the algorithm''' pass