def Initialize(self): self.SetStartDate(2018, 1, 1) self.SetCash(100000) # Set zero transaction fees self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) # select stocks using PennyStockUniverseSelectionModel self.UniverseSettings.Resolution = Resolution.Daily self.SetUniverseSelection(PennyStockUniverseSelectionModel()) # Use SykesShortMicroCapAlphaModel to establish insights self.SetAlpha(SykesShortMicroCapAlphaModel()) # Equally weigh securities in portfolio, based on insights self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) # Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) # Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): self.SetStartDate(2018, 1, 1) self.SetCash(100000) # Set zero transaction fees self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) # Use Hourly Data For Simplicity self.UniverseSettings.Resolution = Resolution.Hour self.SetUniverseSelection( CoarseFundamentalUniverseSelectionModel( self.CoarseSelectionFunction)) # Use MeanReversionLunchBreakAlphaModel to establish insights self.SetAlpha(MeanReversionLunchBreakAlphaModel()) # Equally weigh securities in portfolio, based on insights self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) # Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) # Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): # -- STRATEGY INPUT PARAMETERS -- self.k1 = 0.63 self.k2 = 0.63 self.rangePeriod = 20 self.consolidatorBars = 30 # Settings self.SetStartDate(2018, 10, 1) self.SetSecurityInitializer(lambda security: security.SetFeeModel(ConstantFeeModel(0))) self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage, AccountType.Margin); # Universe Selection self.UniverseSettings.Resolution = Resolution.Minute # it's minute by default, but lets leave this param here symbols = [Symbol.Create("SPY", SecurityType.Equity, Market.USA)] self.SetUniverseSelection(ManualUniverseSelectionModel(symbols)) # Warming up resolutionInTimeSpan = Extensions.ToTimeSpan(self.UniverseSettings.Resolution) warmUpTimeSpan = Time.Multiply(resolutionInTimeSpan, self.consolidatorBars) self.SetWarmUp(warmUpTimeSpan) # Alpha Model self.SetAlpha(DualThrustAlphaModel(self.k1, self.k2, self.rangePeriod, self.UniverseSettings.Resolution, self.consolidatorBars)) ## Portfolio Construction self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel()) ## Execution self.SetExecution(ImmediateExecutionModel()) ## Risk Management self.SetRiskManagement(MaximumDrawdownPercentPerSecurity(0.03))
def Initialize(self): self.SetStartDate(2019, 2, 1) #Set Start Date self.SetCash(100000) #Set Strategy Cash # Set zero transaction fees self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) ## Select trio of currencies to trade where ## Currency A = USD ## Currency B = EUR ## Currency C = GBP currencies = ['EURUSD', 'EURGBP', 'GBPUSD'] symbols = [ Symbol.Create(currency, SecurityType.Forex, Market.Oanda) for currency in currencies ] ## Manual universe selection with tick-resolution data self.UniverseSettings.Resolution = Resolution.Minute self.SetUniverseSelection(ManualUniverseSelectionModel(symbols)) self.SetAlpha( ForexTriangleArbitrageAlphaModel(Resolution.Minute, symbols)) ## Set Equal Weighting Portfolio Construction Model self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) ## Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) ## Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): self.SetStartDate(2018, 1, 1) #Set Start Date self.SetCash(100000) #Set Strategy Cash ## Initialize variables to be used in controlling frequency of universe selection self.week = None self.symbols = None self.SetWarmUp(100) ## Manual Universe Selection self.SetUniverseSelection( CoarseFundamentalUniverseSelectionModel( self.CoarseSelectionFunction)) ## Set trading fees to $0 self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) ## Set custom Alpha Model self.SetAlpha(PriceGapMeanReversionAlphaModel()) ## Set equal-weighting Portfolio Construction Model self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) ## Set Execution Model self.SetExecution(ImmediateExecutionModel()) ## Set Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): self.SetStartDate(2015, 1, 1) self.SetCash(100000) # Set zero transaction fees self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) # Select resolution resolution = Resolution.Hour # Reversion on the USD. symbols = [Symbol.Create("EURUSD", SecurityType.Forex, Market.Oanda)] # Set requested data resolution self.UniverseSettings.Resolution = resolution self.SetUniverseSelection(ManualUniverseSelectionModel(symbols)) self.SetAlpha(IntradayReversalAlphaModel(5, resolution)) # Equally weigh securities in portfolio, based on insights self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) # Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) # Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel()) #Set WarmUp for Indicators self.SetWarmUp(20)
def Initialize(self): self.SetStartDate(2018, 1, 1) self.SetCash(100000) # Set zero transaction fees self.SetSecurityInitializer(lambda security: security.SetFeeModel(ConstantFeeModel(0))) # 3X ETF pair tickers ultraLong = Symbol.Create("UGLD", SecurityType.Equity, Market.USA) ultraShort = Symbol.Create("DGLD", SecurityType.Equity, Market.USA) # Manually curated universe self.UniverseSettings.Resolution = Resolution.Daily self.SetUniverseSelection(ManualUniverseSelectionModel([ultraLong, ultraShort])) # Select the demonstration alpha model self.SetAlpha(RebalancingTripleLeveragedETFAlphaModel(ultraLong, ultraShort)) ## Set Equal Weighting Portfolio Construction Model self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel()) ## Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) ## Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): self.UniverseSettings.Resolution = Resolution.Daily self.SetStartDate(2018, 1, 1) # Set Start Date self.SetCash(1000000) # Set Strategy Cash benchmark = Symbol.Create("SPY", SecurityType.Equity, Market.USA) self.SetUniverseSelection( UncorrelatedUniverseSelectionModel(benchmark)) self.SetAlpha(UncorrelatedUniverseSelectionAlphaModel()) self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) self.SetExecution(ImmediateExecutionModel())
def Initialize(self): self.SetStartDate(2018, 1, 1) self.SetCash(100000) # Set zero transaction fees self.SetSecurityInitializer( lambda security: security.SetFeeModel(ConstantFeeModel(0))) # Global Equity ETF tickers tickers = [ "ECH", "EEM", "EFA", "EPHE", "EPP", "EWA", "EWC", "EWG", "EWH", "EWI", "EWJ", "EWL", "EWM", "EWM", "EWO", "EWP", "EWQ", "EWS", "EWT", "EWU", "EWY", "EWZ", "EZA", "FXI", "GXG", "IDX", "ILF", "EWM", "QQQ", "RSX", "SPY", "THD" ] symbols = [ Symbol.Create(ticker, SecurityType.Equity, Market.USA) for ticker in tickers ] # Manually curated universe self.UniverseSettings.Resolution = Resolution.Daily self.SetUniverseSelection(ManualUniverseSelectionModel(symbols)) # Use GlobalEquityMeanReversionAlphaModel to establish insights self.SetAlpha(MeanReversionIBSAlphaModel()) # Equally weigh securities in portfolio, based on insights self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) # Set Immediate Execution Model self.SetExecution(ImmediateExecutionModel()) # Set Null Risk Management Model self.SetRiskManagement(NullRiskManagementModel())
def Initialize(self): self.SetStartDate(2019, 4, 30) # Set Start Date self.SetEndDate(2019, 5, 1) # Set End Date self.SetCash(100000) # Set Strategy Cash #self.AddEquity("SPY") self.symbol = "BTCUSD" #self.AddEquity(self.symbol, Resolution.Minute).Symbol self.AddCrypto(self.symbol, Resolution.Minute, Market.Bitfinex).Symbol span = 500 longPeriod = 43200 ema = self.EMA(self.symbol, span) ptvsd.break_into_debugger() price = Identity(self.symbol) ptvsd.break_into_debugger() self.diff_pct_close_ema = IndicatorExtensions.Over( IndicatorExtensions.Minus(price, ema), ema) ptvsd.break_into_debugger() self.diff_pct_close_ema_mean = IndicatorExtensions.SMA( self.diff_pct_close_ema, longPeriod) ptvsd.break_into_debugger() std = self.STD(self.symbol, longPeriod) diff_pct_close_ema_std = IndicatorExtensions.Of( self.diff_pct_close_ema, std) self.negative_abnormal = IndicatorExtensions.Minus( self.diff_pct_close_ema_mean, IndicatorExtensions.Times(diff_pct_close_ema_std, 1.96)) self.positive_abnormal = IndicatorExtensions.Plus( self.diff_pct_close_ema_mean, IndicatorExtensions.Times(diff_pct_close_ema_std, 1.96)) self.RegisterIndicator(self.symbol, self.diff_pct_close_ema, Resolution.Minute) self.RegisterIndicator(self.symbol, diff_pct_close_ema_std, Resolution.Minute) self.RegisterIndicator(self.symbol, self.diff_pct_close_ema_mean, Resolution.Minute) self.RegisterIndicator(self.symbol, self.negative_abnormal, Resolution.Minute) self.RegisterIndicator(self.symbol, self.positive_abnormal, Resolution.Minute) self.SetWarmUp(longPeriod) #stockPlot = Chart("Trade Plot") # On the Trade Plotter Chart we want 2 series: trades : #stockPlot.AddSeries(Series("Buy", SeriesType.Scatter, 0)) #stockPlot.AddSeries(Series("Sell", SeriesType.Scatter, 0)) #stockPlot.AddSeries(Series("Close", SeriesType.Scatter, 0)) #self.AddChart(stockPlot) # On the Deviation Chart we want serie, diff_pct_close_vs_ema #deviation = Chart("Deviation Degree") #deviation.AddSeries(Series("Deviation Degree", SeriesType.Line, 0)) #self.AddChart(deviation) self.resamplePeriod = (self.EndDate - self.StartDate) / 4000 self.AddAlpha( EmaReversionAlphaModel(self.symbol, self.diff_pct_close_ema, self.negative_abnormal, self.positive_abnormal, self.diff_pct_close_ema_mean, self.resamplePeriod)) self.SetPortfolioConstruction( EqualWeightingPortfolioConstructionModel()) self.SetRiskManagement(MaximumDrawdownPercentPortfolio(0.1)) self.SetExecution(VolumeWeightedAveragePriceExecutionModel())