From 094bd3349c91e122e43dfe80bd8799622b72ec02 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 18 Sep 2026 10:06:53 +0000 Subject: [PATCH] Code generated by Alternative-Datasets-Code-Generator.py --- project-templates/csharp/datasets.json | 2304 ++++++++++++------------ project-templates/python/datasets.json | 2304 ++++++++++++------------ 2 files changed, 2304 insertions(+), 2304 deletions(-) diff --git a/project-templates/csharp/datasets.json b/project-templates/csharp/datasets.json index 7c3a121362..691779a95f 100644 --- a/project-templates/csharp/datasets.json +++ b/project-templates/csharp/datasets.json @@ -1,1153 +1,1153 @@ -{ - "list": [ - { - "name": "US Equity Security Master", - "shortDescription": "Corporate action data source for splits, dividends, mergers, acquisitions, IPOs, and delistings.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "quantconnect-us-equity-security-master", - "examples": { - "init": "_equity = AddEquity(\"AAPL\", Resolution.Daily);", - "history": "var splitHistory = History(_equity.Symbol, TimeSpan.FromDays(5*365));", - "research-history": "var splitHistory = qb.History(equity.Symbol, TimeSpan.FromDays(5*365));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Splits.ContainsKey(_equity.Symbol))\n {\n var split = slice.Splits[_equity.Symbol];\n Log($\"Split: {split.Symbol}\\t{split.SplitFactor}\\t{split.ReferencePrice}\");\n }\n}" - } - }, - { - "name": "Fama French", - "shortDescription": "Daily returns of the market, size, value, profitability, investment, and momentum factors for US equities", - "history": "January 1998", - "reach": "6 US Equity Market Factors", - "url": "quantconnect-fama-french", - "examples": { - "init": "_famaFrench = AddData(\"FF\", Resolution.Daily).Symbol;", - "history": "var history = History(_famaFrench, 100, Resolution.Daily);", - "research-history": "var history = qb.History(famaFrench, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_famaFrench))\n {\n var dataPoint = slice[_famaFrench];\n Log($\"{_famaFrench} momentum at {slice.Time}: {dataPoint.Momentum}\");\n }\n}" - } - }, - { - "name": "Surveys", - "shortDescription": "Monthly confidence surveys of households, industry, construction, retail and services across 35 European economies, published by Eurostat", - "history": "January 1980", - "reach": "35 European Economies", - "url": "eurostat-surveys", - "examples": { - "init": "_consumer = AddData(Eurostat.Economies.Germany, Resolution.Daily).Symbol;", - "history": "var history = History(_consumer, TimeSpan.FromDays(5*365), Resolution.Daily);", - "research-history": "var history = qb.History(consumer, TimeSpan.FromDays(5*365), Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_consumer))\n {\n var dataPoint = slice.Get(_consumer);\n if (dataPoint.ConsumerConfidence.HasValue)\n {\n Log($\"{_consumer} consumer confidence at {slice.Time}: {dataPoint.ConsumerConfidence}\");\n }\n }\n}" - } - }, - { - "name": "Macro Indicators", - "shortDescription": "Consumer prices, industrial production, producer prices, retail trade, unemployment and GDP across 51 economies, published by Eurostat", - "history": "January 1975", - "reach": "51 Economies", - "url": "eurostat-macro-indicators", - "examples": { - "init": "_prices = AddData(Eurostat.Economies.Germany, Resolution.Daily).Symbol;", - "history": "var history = History(_prices, TimeSpan.FromDays(5*365), Resolution.Daily);", - "research-history": "var history = qb.History(prices, TimeSpan.FromDays(5*365), Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_prices))\n {\n var dataPoint = slice.Get(_prices);\n if (dataPoint.AllItems.HasValue)\n {\n Log($\"{_prices} HICP at {slice.Time}: {dataPoint.AllItems}\");\n }\n }\n}" - } - }, - { - "name": "US Futures Security Master", - "shortDescription": "Rolling reference data for popular CME Futures contracts.", - "history": "May 2009", - "reach": "157 Future Contracts", - "url": "quantconnect-us-futures-security-master", - "examples": { - "init": "var future = AddFuture(Futures.Indices.SP500EMini, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.BackwardsRatio, contractDepthOffset: 0);", - "history": "var history = History(future.Symbol, TimeSpan.FromDays(365));", - "research-history": "var history = qb.History(future.Symbol, new DateTime(2023, 1, 1), new DateTime(2025, 1, 1));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.SymbolChangedEvents.TryGetValue(future.Symbol, out var changedEvent))\n {\n var oldSymbol = changedEvent.OldSymbol;\n var newSymbol = AddFutureContract(changedEvent.NewSymbol).Symbol;\n Log($\"Rollover at {Time}: {oldSymbol} -> {newSymbol}\");\n }\n}" - } - }, - { - "name": "Spectral Tick Flow Signal", - "shortDescription": "Daily signals of fourier-transformed intraday trade-flow patterns", - "history": "Jun 2009", - "reach": "500 US Equities", - "url": "spectral-tick-flow-signal", - "examples": { - "init": "var spectralSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(spectralSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return altCoarse.OfType()\n .Where(d => d.SignatureCount > 0)\n .OrderBy(d => d.ExecutionScore)\n .TakeLast(10)\n .Select(d => d.Symbol);\n}", - "research-history": "var history = qb.History(spectralSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(spectralSymbol))\n {\n var dataPoint = slice[spectralSymbol];\n Log($\"{spectralSymbol} execution score at {slice.Time}: {dataPoint.ExecutionScore}\");\n }\n}" - } - }, - { - "name": "US Equity Coarse Universe", - "shortDescription": "Universe of all US Equities with closing price and volume for Coarse Universe Selection.", - "history": "January 1998", - "reach": "30,000 US Equities", - "url": "quantconnect-us-coarse-universe-constituents", - "examples": { - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "public IEnumerable SelectAssets(IEnumerable fundamental)\n{\n var sortedByDollarVolume = fundamental.OrderByDescending(x => x.DollarVolume).Take(3).ToList();\n foreach (var cf in sortedByDollarVolume)\n {\n Debug($\"{cf.EndTime} :: {cf.Symbol} : {cf.AdjustedPrice} :: {cf.DollarVolume}\");\n }\n return sortedByDollarVolume.Select(x => x.Symbol);\n}", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "var fundamentals = Securities[symbol].Fundamentals;" - } - }, - { - "name": "US ETF Constituents", - "shortDescription": "Equity constituent components and weightings for US ETF listings. This data is ideal for universe selection without selection bias.", - "history": "June 2009", - "reach": "2,650 US ETF Listings", - "url": "quantconnect-us-etf-constituents", - "examples": { - "universe-init": "_universe = AddUniverse(Universe.ETF(\"SPY\", UniverseSettings, SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "public IEnumerable SelectAssets(IEnumerable constituents)\n{\n foreach (var c in constituents)\n {\n Debug($\"{c.EndTime} :: {c.LastUpdate} :: {c.Weight} :: {c.SharesHeld} :: {c.MarketValue}\");\n }\n return constituents.Select(c => c.Symbol);\n}", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "foreach (var c in constituents)\n{\n Debug($\"{c.EndTime} :: {c.Symbol} :: {c.Weight} :: {c.SharesHeld} :: {c.MarketValue}\");\n}" - } - }, - { - "name": "International Future Universe", - "shortDescription": "FESX, HSI, and NKD Futures universe for fast future contract selection with prices, expiration dates and open interests", - "history": "July 1998", - "reach": "5 Contracts", - "url": "quantconnect-international-future-universe", - "examples": { - "universe-init": "_future = AddFuture(Futures.Indices.HangSeng);", - "universe-history": "var history = History(_future.Symbol, 5);", - "universe-filter": "_future.SetFilter(0, 90);", - "research-universe-history": "var history = qb.History(future.Symbol, new DateTime(2025, 1, 1), new DateTime(2025, 4, 1));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.FuturesChains.TryGetValue(_future.Symbol, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" - } - }, - { - "name": "US Future Option Universe", - "shortDescription": "Future Options universe for fast option contract selection.", - "history": "January 2012", - "reach": "15 Monthly Future Contracts", - "url": "quantconnect-us-future-option-universe", - "examples": { - "universe-init": "AddFutureOption(_future.Symbol, OptionFilter);", - "universe-history": "var history = History(QuantConnect.Symbol.CreateCanonicalOption(_future.Mapped), TimeSpan.FromDays(10));", - "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by strike, and expiration\n return universe.Strikes(-1, 1);\n}", - "research-universe-history": "var history = qb.History(QuantConnect.Symbol.CreateCanonicalOption(future.Mapped), new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", - "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" - } - }, - { - "name": "US Future Universe", - "shortDescription": "Futures universe for fast future contract selection with prices, expiration dates and open interests", - "history": "May 2009", - "reach": "157 Most Liquid Futures", - "url": "quantconnect-us-future-universe", - "examples": { - "universe-init": "_future = AddFuture(Futures.Metals.Gold);", - "universe-history": "var history = History(_future.Symbol, 5);", - "universe-filter": "_future.SetFilter((universe) => universe.StandardsOnly().FrontMonth());", - "research-universe-history": "var history = qb.History(future.Symbol, new DateTime(2025, 1, 1), new DateTime(2025, 4, 1));", - "usage": "foreach (var chain in history)\n{\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} open interest: {contract.OpenInterest}\");\n }\n}" - } - }, - { - "name": "US Equity Option Universe", - "shortDescription": "Precalculated daily greeks for fast option-contract selection.", - "history": "January 2012", - "reach": "4,000 Equity Options", - "url": "quantconnect-us-equity-option-universe", - "examples": { - "universe-init": "var option = AddOption(\"GOOG\");\n_optionSymbol = option.Symbol;", - "universe-history": "var history = History(_optionSymbol, TimeSpan.FromDays(3));", - "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by greeks, implied volatility, open interest:\n return universe\n .Delta(0.5m, 1.5m)\n .Gamma(0.0001m, 0.0006m)\n .Vega(0.01m, 1.5m)\n .Theta(-2.0m, -0.5m)\n .Rho(0.5m, 3.0m)\n .ImpliedVolatility(1.0m, 3.0m)\n .OpenInterest(100, 500);\n}", - "research-universe-history": "var history = qb.History(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", - "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" - } - }, - { - "name": "US Index Option Universe", - "shortDescription": "Precalculated Daily Greeks for Fast Option Selection", - "history": "January 2012", - "reach": "7 Index Options", - "url": "quantconnect-us-index-option-universe", - "examples": { - "universe-init": "var standardOption = AddIndexOption(_indexSymbol);\n_standardOptionSymbol = standardOption.Symbol;", - "universe-history": "var history = History(_standardOptionSymbol, TimeSpan.FromDays(3));", - "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by greeks, implied volatility, open interest:\n return universe\n .Delta(0.5m, 1.5m)\n .Gamma(0.0001m, 0.0006m)\n .Vega(0.01m, 1.5m)\n .Theta(-2.0m, -0.5m)\n .Rho(0.5m, 3.0m)\n .ImpliedVolatility(1.0m, 3.0m)\n .OpenInterest(100, 500);\n}", - "research-universe-history": "var history = qb.History(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", - "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" - } - }, - { - "name": "US Equities Short Availability", - "shortDescription": "Available shares for open short positions in the US Equity market.", - "history": "January 2018", - "reach": "10,500 US Equities", - "url": "us-equities-short-availability", - "examples": { - "init": "_equity.SetShortableProvider(new InteractiveBrokersShortableProvider());", - "history": "var shortableQuantity = _equity.ShortableProvider.ShortableQuantity(_equity.Symbol, Time - TimeSpan.FromDays(1));", - "research-history": "var shortableQuantity = equity.ShortableProvider.ShortableQuantity(equity.Symbol, qb.Time - TimeSpan.FromDays(1));", - "usage": "var shortableProvider = Securities[_equity.Symbol].ShortableProvider;\nvar shortableQuantity = shortableProvider.ShortableQuantity(_equity.Symbol, Time);\nvar isShortable = Shortable(_equity.Symbol, 100);" - } - }, - { - "name": "US Fundamental Data", - "shortDescription": "Corporate Fundamental data for fine universe selection based on industry classification and underlying company performance indicators.", - "history": "January 1998", - "reach": "8,000 US Equities", - "url": "morning-star-us-fundamentals", - "examples": { - "init": "_equity = AddEquity(\"IBM\");", - "history": "var fundamentalHistory = History(_equity.Symbol, TimeSpan.FromDays(30));", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "public IEnumerable SelectAssets(IEnumerable fundamental)\n{\n return fundamental.Where(f => f.Price > 10 && f.ValuationRatios.PERatio > 30).Select(f => f.Symbol);\n}", - "research-history": "var history = qb.GetFundamental(equity.Symbol, \"ValuationRatios.PERatio\", new DateTime(2021, 1, 1), new DateTime(2021, 7, 1));", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "var fundamentals = Securities[_equity.Symbol].Fundamentals;" - } - }, - { - "name": "US Equities", - "shortDescription": "Market data for all US listed and delisted Equities, ETFs, ETNs, ADRs, and Warrants.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "algoseek-us-equities", - "examples": { - "init": "_equity = AddEquity(\"AAPL\", Resolution.Minute);", - "history": "var history = History(_equity.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(equity.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_equity.Symbol))\n {\n var tradeBar = slice.Bars[_equity.Symbol];\n Log($\"{_equity.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "US Equity Options", - "shortDescription": "Trade and quote data for US Equity Options contracts.", - "history": "January 2012", - "reach": "4,000 Equity Options", - "url": "algoseek-us-equity-options", - "examples": { - "init": "var optionContract = AddOptionContract(contract.Symbol);", - "history": "var history = History(optionContract.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(optionContract.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.OptionChains.TryGetValue(optionContract.Symbol.Canonical, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" - } - }, - { - "name": "US Futures", - "shortDescription": "Trade and quote data for the most liquid US Futures across the CME, CBOT, NYMEX, and COMEX markets.", - "history": "May 2009", - "reach": "157 Liquid Futures", - "url": "algoseek-us-futures", - "examples": { - "init": "var futureContract = AddFutureContract(contract.Symbol);", - "history": "var history = History(futureContract.Symbol, 100, Resolution.Minute);", - "universe-init": "var future = AddFuture(Futures.Metals.Gold);", - "universe-history": "var history = History(new[] { _futureSymbol }, start: Time - TimeSpan.FromDays(15), end: Time, resolution: Resolution.Minute, fillForward: false, extendedMarketHours: false, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.Raw, contractDepthOffset: 0);", - "universe-filter": "future.SetFilter(0, 90);", - "research-history": "var history = qb.History(futureContract.Symbol, 100, Resolution.Minute);", - "research-universe-history": "var history = qb.FutureHistory(future.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.TryGetValue(futureContract.Symbol, out var tradeBar))\n {\n Log($\"{futureContract.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "US Future Options", - "shortDescription": "Future Options data for the most liquid US CME Future commodity contracts.", - "history": "January 2012", - "reach": "15 Monthly Future Contracts", - "url": "algoseek-us-future-options", - "examples": { - "init": "var option = AddFutureOptionContract(contract.Symbol);", - "history": "var history = History(option.Symbol, 100, Resolution.Minute);", - "universe-init": "AddFutureOption(future.Symbol, universe => universe.Strikes(-5, +5));", - "universe-history": "var history = History(QuantConnect.Symbol.CreateCanonicalOption(_future.Mapped), TimeSpan.FromDays(10));", - "universe-filter": "universe => universe.Strikes(-5, +5)", - "research-history": "var history = qb.History(option.Symbol, 100, Resolution.Minute);", - "research-universe-history": "var history = qb.OptionHistory(futureContractSymbol, startDate, futureContractSymbol.ID.Date, Resolution.Hour);", - "usage": "public override void OnData(Slice slice)\n{\n foreach (var kvp in slice.OptionChains)\n {\n var chain = kvp.Value;\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" - } - }, - { - "name": "US Index Options", - "shortDescription": "European Option contract data for 3 US Indices: SPX, VIX, and NDX.", - "history": "January 2012", - "reach": "7 Index Options", - "url": "algoseek-us-index-options", - "examples": { - "init": "var indexOption = AddIndexOptionContract(contract.Symbol);", - "history": "var history = History(indexOption.Symbol, 100, Resolution.Minute);", - "universe-init": "var option = AddIndexOption(\"VIX\");", - "universe-history": "var history = History(_optionSymbol, 5);", - "universe-filter": "option.SetFilter(-2, 2, 0, 90);", - "research-history": "var history = qb.History(contract.Symbol, 100, Resolution.Minute);", - "research-universe-history": "var history = qb.OptionHistory(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.OptionChains.TryGetValue(indexOption.Symbol.Canonical, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" - } - }, - { - "name": "International Futures", - "shortDescription": "Trade and quote data for FESX, HSI, and NKD Future Contracts.", - "history": "July 1998", - "reach": "5 Contracts", - "url": "tickdata-international-futures", - "examples": { - "init": "var futureContract = AddFutureContract(contract.Symbol);", - "history": "var history = History(futureContract.Symbol, TimeSpan.FromDays(10));", - "universe-init": "_future = AddFuture(Futures.Indices.HangSeng);", - "universe-history": "var history = History(new[] { _future.Symbol }, start: Time - TimeSpan.FromDays(15), end: Time, resolution: Resolution.Minute, fillForward: false, extendedMarketHours: false, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.Raw, contractDepthOffset: 0);", - "universe-filter": "_future.SetFilter(0, 90);", - "research-history": "var history = qb.History(futureContract.Symbol, TimeSpan.FromDays(10));", - "research-universe-history": "var history = qb.FutureHistory(future.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.TryGetValue(futureContract.Symbol, out var tradeBar))\n {\n Log($\"{futureContract.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Benzinga News Feed", - "shortDescription": "Financial articles and news publications condensed into a news feed with titles and article bodies for sentiment analysis", - "history": "1st January 2016", - "reach": "1,250 Posts/Day, 8,000 Stocks", - "url": "benzinga-news-feed", - "examples": { - "init": "var benzingaSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(benzingaSymbol, 10, Resolution.Daily);", - "research-history": "var history = qb.History(benzingaSymbol, TimeSpan.FromDays(10));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(benzingaSymbol))\n {\n var article = slice[benzingaSymbol];\n Log($\"{benzingaSymbol} title at {slice.Time}: {article.Title}\");\n }\n}" - } - }, - { - "name": "Tiingo News Feed", - "shortDescription": "News releases from 120 different news providers for sentiment analysis.", - "history": "January 2014", - "reach": "10,000 US Equities", - "url": "tiingo-news-feed", - "examples": { - "init": "var tiingoSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(tiingoSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(tiingoSymbol, TimeSpan.FromDays(10));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(tiingoSymbol))\n {\n var article = slice[tiingoSymbol];\n Log($\"{tiingoSymbol} description at {slice.Time}: {article.Description}\");\n }\n}" - } - }, - { - "name": "Upcoming Earnings", - "shortDescription": "Alert for upcoming earnings report of US Equities with report date, report time, and earnings estimation.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-earnings", - "examples": { - "init": "_upcomingEarnings = AddData(\"earnings\").Symbol;", - "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable earnings)\n{\n return from d in earnings\n where d.ReportDate <= Time.AddDays(3) && d.Estimate > 0m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n var upcomingEarnings = slice.Get();\n if (upcomingEarnings.TryGetValue(_upcomingEarnings, out var dataPoint))\n {\n Log($\"{_upcomingEarnings} reports at {dataPoint.ReportDate} with estimated EPS {dataPoint.Estimate}\");\n }\n}" - } - }, - { - "name": "Upcoming IPOs", - "shortDescription": "Alert for upcoming IPO events of primary US Equities with IPO start/filing/amended date, IPO deal type. IPO prices, and number of shares.", - "history": "February 2013", - "reach": "US Equities", - "url": "eodhd-upcoming-ipos", - "examples": { - "init": "_upcomingIpos = AddData(\"ipos\").Symbol;", - "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private static readonly List _dealTypesWanted = new() { DealType.Expected, DealType.Priced };\n\nprivate IEnumerable SelectAssets(IEnumerable ipos)\n{\n // confirmed non-penny stock IPO that launches within 7 days.\n return from d in ipos\n where _dealTypesWanted.Contains(d.DealType)\n && d.IpoDate.HasValue\n && new[] { d.LowestPrice, d.HighestPrice, d.OfferPrice }.Where(x => x.HasValue).Min().Value > 1m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n foreach (var kvp in slice.Get())\n {\n var equitySymbol = kvp.Key;\n var dataPoint = kvp.Value;\n Log($\"{equitySymbol} IPO at {dataPoint.IPODate} price {dataPoint.OfferPrice} shares {dataPoint.Shares}\");\n }\n}" - } - }, - { - "name": "Upcoming Splits", - "shortDescription": "Alert for upcoming split and reverse split events of primary US Equities common shares with split date, and split factor.", - "history": "January 2010", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-splits", - "examples": { - "init": "_upcomingSplits = AddData(\"splits\").Symbol;", - "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable splits)\n{\n return from d in splits\n where d.SplitDate <= Time.AddDays(3) && d.SplitFactor > 1m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n var upcomingSplits = slice.Get();\n if (upcomingSplits.TryGetValue(_upcomingSplits, out var dataPoint))\n {\n Log($\"{_upcomingSplits} will split at {dataPoint.SplitDate} factor {dataPoint.SplitFactor}\");\n }\n}" - } - }, - { - "name": "Economic Events", - "shortDescription": "Alert for upcoming economic events globally, including the date and estimates of macroeconomic indicator annoucement, special dates, etc.", - "history": "January 2019", - "reach": "115 Countries", - "url": "eodhd-economic-events", - "examples": { - "init": "_economicEvents = AddData(ticker).Symbol;", - "history": "var history = History(_economicEvents, 100, Resolution.Daily);", - "research-history": "var history = qb.History(economicEvents, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Get().TryGetValue(_economicEvents, out var economicEvents))\n {\n foreach (EODHDEconomicEvent economicEvent in economicEvents)\n {\n Log($\"{economicEvent.EventType} of {economicEvent.Country} at {economicEvent.EventTime} estimate {economicEvent.Estimate}\");\n }\n }\n}" - } - }, - { - "name": "US Congress Trading", - "shortDescription": "Trading activity of Congresspeople for potential insider trading signals based on early access to regulation changes.", - "history": "January 2016", - "reach": "1,800 US Equities", - "url": "quiver-quantitative-congress-trading", - "examples": { - "init": "var congressSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(congressSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Amount > 200000m && d.Transaction == OrderDirection.Buy\n select d.Symbol;\n}", - "research-history": "var history = qb.History(congressSymbol, 60, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(congressSymbol))\n {\n var dataPoints = slice[congressSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{congressSymbol} transaction amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" - } - }, - { - "name": "Corporate Buybacks", - "shortDescription": "US Equity buyback announcements and transactions scraped from SEC reports and secondary sources.", - "history": "May 2015", - "reach": "3,000 US Equities", - "url": "smart-insider-corporate-buybacks", - "examples": { - "init": "var insiderIntention = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(insiderIntention, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Percentage > 0.005m && d.USDMarketCap > 100000000m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(insiderIntentionSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(insiderIntention))\n {\n var dataPoint = slice[insiderIntention];\n Log($\"{insiderIntention} intention amount at {slice.Time}: {dataPoint.Amount}\");\n }\n}" - } - }, - { - "name": "US Regulatory Alerts - Financial Sector", - "shortDescription": "RegAlytics is the leading provider of daily regulatory updates. They source data from over 5,000 regulators.", - "history": "January 2020", - "reach": "400,000 Alerts", - "url": "regalytics-us-regulatory-alerts", - "examples": { - "init": "_regalyticsSymbol = AddData(\"REG\").Symbol;", - "history": "var history = History(_regalyticsSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(regalyticsSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_regalyticsSymbol))\n {\n var dataPoints = slice[_regalyticsSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{_regalyticsSymbol} title at {slice.Time}: {dataPoint.Title}\");\n }\n }\n}" - } - }, - { - "name": "Brain Sentiment Indicator", - "shortDescription": "Proprietary sentiment analysis algorithm for US Equities.", - "history": "August 2016", - "reach": "4,500 US Equities", - "url": "brain-sentiment-indicator", - "examples": { - "init": "var brainSentimentSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(brainSentimentSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.TotalArticleMentions7Days > 0m && d.Sentiment7Days > 0m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(equity.Symbol, 30, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(brainSentimentSymbol))\n {\n var dataPoint = slice[brainSentimentSymbol];\n Log($\"{brainSentimentSymbol} sentiment at {slice.Time}: {dataPoint.Sentiment}\");\n }\n}" - } - }, - { - "name": "Brain ML Stock Ranking", - "shortDescription": "Proprietary machine learning ranking algorithm for US Equities.", - "history": "January 2010", - "reach": "1,000 US Equities", - "url": "brain-ml-stock-ranking", - "examples": { - "init": "var brainStockRanking = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(brainStockRanking, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Rank2Days > 0m && d.Rank3Days > 0m && d.Rank5Days > 0m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(equity.Symbol, 30, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(brainStockRanking))\n {\n var dataPoint = slice[brainStockRanking];\n Log($\"{brainStockRanking} rank at {slice.Time}: {dataPoint.Rank}\");\n }\n}" - } - }, - { - "name": "Brain Language Metrics on Company Filings", - "shortDescription": "Proprietary NLP algorithm that monitors several language metrics on company reports.", - "history": "January 2010", - "reach": "3,000 US Equities", - "url": "brain-language-metrics-company-filings", - "examples": { - "init": "var filingMetrics = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(filingMetrics, 365, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.ReportSentiment.Sentiment > 0m &&\n d.ManagementDiscussionAnalyasisOfFinancialConditionAndResultsOfOperations.Sentiment > 0m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(equity.Symbol, 365, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(filingMetrics))\n {\n var dataPoint = slice[filingMetrics];\n Log($\"{filingMetrics} report sentiment at {slice.Time}: {dataPoint.ReportSentiment.Sentiment}\");\n }\n}" - } - }, - { - "name": "Estimize", - "shortDescription": "Estimates of company financials including EPS, revenues, and macroeconomic indicators based on 100,000+ crowdsourced predictions.", - "history": "January 2011", - "reach": "2,800 US Equities", - "url": "extractalpha-estimize", - "examples": { - "init": "var estimizeConsensusSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(estimizeConsensusSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(estimizeConsensusSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(estimizeConsensusSymbol))\n {\n var dataPoint = slice[estimizeConsensusSymbol];\n Log($\"{estimizeConsensusSymbol} mean at {slice.Time}: {dataPoint.Mean}\");\n }\n}" - } - }, - { - "name": "True Beats", - "shortDescription": "Predictions of EPS and Revenues for US Equities based on expert opinions, peer opinions, and historical performance.", - "history": "January 2000", - "reach": "Over 5,000 US Equities", - "url": "extractalpha-true-beats", - "examples": { - "init": "var trueBeatsSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(trueBeatsSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(trueBeatsSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(trueBeatsSymbol))\n {\n var dataPoint = slice[trueBeatsSymbol];\n Log($\"{trueBeatsSymbol} true beat at {slice.Time}: {dataPoint.TrueBeat}\");\n }\n}" - } - }, - { - "name": "Tactical", - "shortDescription": "Likelihood score of short-term price movements driven by technical indicators.", - "history": "January 2000", - "reach": "5,000 US Equities", - "url": "extractalpha-tactical", - "examples": { - "init": "var tacticalSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(tacticalSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(tacticalSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(tacticalSymbol))\n {\n var dataPoint = slice[tacticalSymbol];\n Log($\"{tacticalSymbol} score at {slice.Time}: {dataPoint.Score}\");\n }\n}" - } - }, - { - "name": "Cross Asset Model", - "shortDescription": "Scoring algorithm based on put-call spread of Equity Options, volatility skewness, and volume.", - "history": "July 2005", - "reach": "3,000 US Equities", - "url": "extractalpha-cross-asset-model", - "examples": { - "init": "var crossAssetModel = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(crossAssetModel, 100, Resolution.Daily);", - "research-history": "var history = qb.History(crossAssetModelSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(crossAssetModel))\n {\n var dataPoint = slice[crossAssetModel];\n Log($\"{crossAssetModel} score at {slice.Time}: {dataPoint.Score}\");\n }\n}" - } - }, - { - "name": "Composite Factor Bundle", - "shortDescription": "Daily proprietary signals for quality, value, momentum, growth, and low volatility factors, which are used by the leading quant funds.", - "history": "January 2003", - "reach": "8,000 US Equities", - "url": "kavout-composite-factor-bundle", - "examples": { - "init": "var factorBundle = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(factorBundle, 100, Resolution.Daily);", - "research-history": "var history = qb.History(factorBundleSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(factorBundle))\n {\n var dataPoint = slice[factorBundle];\n Log($\"{factorBundle} momentum at {slice.Time}: {dataPoint.Momentum}\");\n }\n}" - } - }, - { - "name": "CNBC Trading", - "shortDescription": "CNBC Trading tracks the recommendations made by media personalities on CNBC.", - "history": "December 2020", - "reach": "1,515 US Equities", - "url": "quiver-quantitative-cnbc-trading", - "examples": { - "init": "var cnbcSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(cnbcSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var cnbcDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!cnbcDataBySymbol.ContainsKey(datum.Symbol))\n {\n cnbcDataBySymbol[datum.Symbol] = new List();\n }\n cnbcDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in cnbcDataBySymbol\n where kvp.Value.Count(x => x.Direction == OrderDirection.Buy) >= 3\n select kvp.Key;\n}", - "research-history": "var history = qb.History(cnbcSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(cnbcSymbol))\n {\n var dataPoints = slice[cnbcSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{cnbcSymbol} direction at {slice.Time}: {dataPoint.Direction}\");\n }\n }\n}" - } - }, - { - "name": "US Government Contracts", - "shortDescription": "Use the USASpending.gov API to track government contracts granted to publicly traded companies.", - "history": "October 2019", - "reach": "748 US Equities", - "url": "quiver-quantitative-us-government-contracts", - "examples": { - "init": "var govContractsSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(govContractsSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var govContractDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!govContractDataBySymbol.ContainsKey(datum.Symbol))\n {\n govContractDataBySymbol[datum.Symbol] = new List();\n }\n govContractDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in govContractDataBySymbol\n where kvp.Value.Count >= 3 && kvp.Value.Sum(x => x.Amount) > 50000m\n select kvp.Key;\n}", - "research-history": "var history = qb.History(govContractsSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(govContractsSymbol))\n {\n var dataPoints = slice[govContractsSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{govContractsSymbol} amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" - } - }, - { - "name": "Corporate Lobbying", - "shortDescription": "Lobbying activities of companies to political or legislative figures, including clients, issues concerned, and amount paid.", - "history": "January 1999", - "reach": "1,418 US Equities", - "url": "quiver-quantitative-corporate-lobbying", - "examples": { - "init": "var lobbyingSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(lobbyingSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(\"QuiverLobbyingUniverse\", Resolution.Daily, SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var lobbyDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!lobbyDataBySymbol.ContainsKey(datum.Symbol))\n {\n lobbyDataBySymbol[datum.Symbol] = new List();\n }\n lobbyDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in lobbyDataBySymbol\n where kvp.Value.Sum(x => x.Amount) >= 100000m\n select kvp.Key;\n}", - "research-history": "var history = qb.History(lobbyingSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(lobbyingSymbol))\n {\n var dataPoints = slice[lobbyingSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{lobbyingSymbol} amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" - } - }, - { - "name": "Insider Trading", - "shortDescription": "Insider Trading tracks trades made by the own company executives, implying if they were bullish or bearish on their own companies.", - "history": "25 April 2014", - "reach": "4994 US Equities", - "url": "quiver-quantitative-insider-trading", - "examples": { - "init": "var insiderSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(insiderSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var dollarVolumeBySymbol = new Dictionary();\n foreach (QuiverInsiderTradingUniverse data in altCoarse)\n {\n if (data.PricePerShare == 0m || data.PricePerShare == null) continue;\n if (!dollarVolumeBySymbol.ContainsKey(data.Symbol))\n {\n dollarVolumeBySymbol[data.Symbol] = 0m;\n }\n dollarVolumeBySymbol[data.Symbol] += data.Shares * data.PricePerShare;\n }\n return dollarVolumeBySymbol.OrderByDescending(kvp => kvp.Value).Take(10).Select(kvp => kvp.Key);\n}", - "research-history": "var history = qb.History(insiderTradingSymbol, 60, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(insiderSymbol))\n {\n var dataPoints = slice[insiderSymbol];\n foreach (QuiverInsiderTrading dataPoint in dataPoints)\n {\n Log($\"{insiderSymbol} shares at {slice.Time}: {dataPoint.Shares}\");\n }\n }\n}" - } - }, - { - "name": "Brain Wikipedia Page Views", - "shortDescription": "Tracks investor attention toward large U.S. equities by monitoring traffic on company Wikipedia pages.", - "history": "February 2023", - "reach": "Russell 1000 Constituents", - "url": "brain-wikipedia-page-views", - "examples": { - "init": "var wikiPageViews = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(wikiPageViews, 100, Resolution.Daily);", - "research-history": "var history = qb.History(wikiPageViewsSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(wikiPageViews))\n {\n var dataPoint = slice[wikiPageViews];\n Log($\"{wikiPageViews} views at {slice.Time}: {dataPoint.NumberViews1}, {dataPoint.Buzz1}\");\n }\n}" - } - }, - { - "name": "US SEC Filings", - "shortDescription": "Semi-parsed Quarterly Financial Reports (10-Q) and Annual Financial Report (8-K) filings of companies for US Equities.", - "history": "January 1998", - "reach": "15,000 US Equities", - "url": "us-security-exchange-commission-filings", - "examples": { - "init": "var report8KSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(report8KSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(report8KSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(report8KSymbol))\n {\n var dataPoint = slice[report8KSymbol];\n Log($\"{report8KSymbol} report count at {slice.Time}: {dataPoint.Report.Documents.Count}\");\n }\n}" - } - }, - { - "name": "US Federal Reserve (FRED)", - "shortDescription": "Collection of thousands of economic datasets maintained by the US Government.", - "history": "January 1999", - "reach": "560 Datasets", - "url": "us-federal-reserve-economic-data", - "examples": { - "init": "_peakToTrough = AddData(Fred.OECDRecessionIndicators.UnitedStatesFromPeakThroughTheTrough, Resolution.Daily).Symbol;", - "history": "var history = History(_peakToTrough, 100, Resolution.Daily);", - "research-history": "var history = qb.History(peakToTroughSymbol, 365, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_peakToTrough))\n {\n var dataPoint = slice[_peakToTrough];\n Log($\"{_peakToTrough} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" - } - }, - { - "name": "Data Link", - "shortDescription": "Nasdaq Data Link, previously known as Quandl, is a premier marketplace for financial, economic, and alternative data sets.", - "history": "Various", - "reach": "20 Million Datasets", - "url": "nasdaq-data-link", - "examples": { - "init": "_bitcoinChainSymbol = AddData(\"QDL/BCHAIN\", Resolution.Daily).Symbol;", - "history": "var history = History(_bitcoinChainSymbol, 100, Resolution.Daily);", - "research-history": "var data = qb.Download(\"https://data.nasdaq.com/api/v3/datatables/QDL/BCHAIN.csv?\");", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.TryGetValue(_bitcoinChainSymbol, out var point))\n {\n Log($\"{_bitcoinChainSymbol} value at {slice.Time}: {point.Value}\");\n }\n}" - } - }, - { - "name": "Bybit Crypto Price Data", - "shortDescription": "Trade and quote data for the Bybit Crypto exchange, collected by CoinAPI.", - "history": "April 2022", - "reach": "956 Currency Pairs", - "url": "bybit-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.Bybit(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(crypto.Symbol, 30, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Bybit Crypto Future Price Data", - "shortDescription": "Trade and quote data for the Bybit Crypto Future exchanges, collected by CoinAPI.", - "history": "October 2019", - "reach": "631 Crypto Future Pairs", - "url": "bybit-cryptofuture-price-data", - "examples": { - "init": "_cryptoFuture = AddCryptoFuture(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", - "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_cryptoFuture.Symbol))\n {\n var tradeBar = slice.Bars[_cryptoFuture.Symbol];\n Log($\"{_cryptoFuture.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Bybit Crypto Future Margin Rate Data", - "shortDescription": "Margin interest rate data for the Bybit Crypto Future exchanges, collected by QuantConnect.", - "history": "August 2020", - "reach": "631 Crypto Future Pairs", - "url": "bybit-cryptofuture-margin-rate-data", - "examples": { - "init": "_cryptoFuture = AddCryptoFuture(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", - "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.MarginInterestRates.ContainsKey(_cryptoFuture.Symbol))\n {\n var interestRate = slice.MarginInterestRates[_cryptoFuture.Symbol].InterestRate;\n Log($\"{_cryptoFuture.Symbol} interest rate at {slice.Time}: {interestRate}\");\n }\n}" - } - }, - { - "name": "Fear and Greed", - "shortDescription": "A daily index between 0 and 100, representing the degree of fear or greed in the US Equity market.", - "history": "July 2014", - "reach": "7 Indicators", - "url": "quantconnect-fear-and-greed", - "examples": { - "init": "_fearGreedSymbol = AddData(\"FG\").Symbol;", - "history": "var history = History(_fearGreedSymbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(fearGreedSymbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_fearGreedSymbol))\n {\n var dataPoint = slice[_fearGreedSymbol];\n Log($\"{_fearGreedSymbol} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" - } - }, - { - "name": "FOREX Data", - "shortDescription": "Quote data for Forex pairs.", - "history": "January 2007", - "reach": "72 Currency Pairs", - "url": "quantconnect-forex", - "examples": { - "init": "_forex = AddForex(\"EURUSD\", Resolution.Minute);", - "history": "var history = History(_forex.Symbol, 100, Resolution.Minute);", - "research-history": "var history = qb.History(forex.Symbol, 100, Resolution.Minute);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.QuoteBars.ContainsKey(_forex.Symbol))\n {\n var quoteBar = slice.QuoteBars[_forex.Symbol];\n Log($\"{_forex.Symbol} bid at {slice.Time}: {quoteBar.Bid.Close}\");\n }\n}" - } - }, - { - "name": "CFD Data", - "shortDescription": "Quote data for Contracts for Difference (CFD).", - "history": "May 2002", - "reach": "51 Contracts", - "url": "quantconnect-cfd", - "examples": { - "init": "_cfd = AddCfd(\"DE30EUR\");", - "history": "var history = History(_cfd.Symbol, 100, Resolution.Minute);", - "research-history": "var history = qb.History(cfd.Symbol, 100, Resolution.Minute);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.QuoteBars.ContainsKey(_cfd.Symbol))\n {\n var quoteBar = slice.QuoteBars[_cfd.Symbol];\n Log($\"{_cfd.Symbol} bid at {slice.Time}: {quoteBar.Bid.Close}\");\n }\n}" - } - }, - { - "name": "Coinbase Crypto Price Data", - "shortDescription": "Trade and quote data for the Coinbase Pro Crypto exchange, collected by CoinAPI.", - "history": "January 2015", - "reach": "970 Currency Pairs", - "url": "coinbase-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Coinbase);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.Coinbase(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Bitfinex Crypto Price Data", - "shortDescription": "Trade and quote data for the Bitfinex Crypto exchange, collected by CoinAPI.", - "history": "January 2013", - "reach": "570 Currency Pairs", - "url": "bitfinex-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Bitfinex);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.Bitfinex(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(symbol, 30, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Binance Crypto Price Data", - "shortDescription": "Trade and quote data for the Binance Crypto exchange, collected by CoinAPI.", - "history": "July 2017", - "reach": "3,651 Currency Pairs", - "url": "binance-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCBUSD\", Resolution.Minute, Market.Binance);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.Binance(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Kraken Crypto Price Data", - "shortDescription": "Trade and quote data for the Kraken Crypto exchange, collected by CoinAPI.", - "history": "October 2013", - "reach": "1,262 Currency Pairs", - "url": "kraken-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Kraken);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.Kraken(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Binance US Crypto Price Data", - "shortDescription": "Trade and quote data for the Binance US Crypto exchange, collected by CoinAPI.", - "history": "October 2019", - "reach": "627 Cryptocurrency pairs", - "url": "binance-us-crypto-price-data", - "examples": { - "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.BinanceUS);", - "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(CryptoUniverse.BinanceUS(SelectAssets));", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", - "research-history": "var history = qb.History(_crypto.Symbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Binance Crypto Future Price Data", - "shortDescription": "Trade and quote data for the Binance Crypto Future exchanges, collected by CoinAPI.", - "history": "August 2020", - "reach": "806 Crypto Future Pairs", - "url": "binance-cryptofuture-price-data", - "examples": { - "init": "_cryptoFuture = AddCryptoFuture(\"BTCBUSD\", Resolution.Minute);", - "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_cryptoFuture.Symbol))\n {\n var tradeBar = slice.Bars[_cryptoFuture.Symbol];\n Log($\"{_cryptoFuture.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Binance Crypto Future Margin Rate Data", - "shortDescription": "Margin interest rate data for the Binance Crypto Future exchanges, collected by QuantConnect.", - "history": "August 2020", - "reach": "806 Crypto Future Pairs", - "url": "binance-cryptofuture-margin-rate-data", - "examples": { - "init": "_cryptoFuture = AddCryptoFuture(\"BTCBUSD\", Resolution.Minute);", - "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.MarginInterestRates.ContainsKey(_cryptoFuture.Symbol))\n {\n var interestRate = slice.MarginInterestRates[_cryptoFuture.Symbol].InterestRate;\n Log($\"{_cryptoFuture.Symbol} interest rate at {slice.Time}: {interestRate}\");\n }\n}" - } - }, - { - "name": "US Interest Rate", - "shortDescription": "Primary credit rate from the Federal Open Market Committee (FOMC)", - "history": "January 2003", - "reach": "1 Country: US", - "url": "us-interest-rate", - "examples": { - "history": "var historicalInterestRate = RiskFreeInterestRateModel.GetInterestRate(Time - TimeSpan.FromDays(30));", - "research-history": "var historicalInterestRate = qb.RiskFreeInterestRateModel.GetInterestRate(qb.Time - TimeSpan.FromDays(30));", - "usage": "var interestRate = RiskFreeInterestRateModel.GetInterestRate(Time);" - } - }, - { - "name": "Macroeconomics Indicators", - "shortDescription": "39 Macroeconomic Indicators data for 249 countries/regions, including the date, value, and frequency.", - "history": "January 1998", - "reach": "39 Indicators, 249 Countries/Regions", - "url": "eodhd-macro-indicators", - "examples": { - "init": "_macroIndicator = AddData(EODHD.MacroIndicators.UnitedStates.GdpCurrentUsd).Symbol;", - "history": "var history = History(_macroIndicator, TimeSpan.FromDays(365));", - "research-history": "var history = qb.History(macroIndicator, TimeSpan.FromDays(365));", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_macroIndicator))\n {\n var dataPoint = slice[_macroIndicator];\n Log($\"{dataPoint.Indicator} of {dataPoint.Country} at {dataPoint.Time}: {dataPoint.Value}\");\n }\n}" - } - }, - { - "name": "Upcoming Dividends", - "shortDescription": "Alert for upcoming dividend events of primary US Equities common shares with dividend important dates, and dividend per share.", - "history": "January 2015", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-dividends", - "examples": { - "init": "_upcomingDividends = AddData(\"dividends\").Symbol;", - "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable dividends)\n{\n return from EODHDUpcomingDividends d in dividends\n where d.DividendsDate <= Time.AddDays(1) && d.Dividends > 0.05m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n var upcomingDividends = slice.Get();\n if (upcomingDividends.TryGetValue(_upcomingDividends, out var dataPoint))\n {\n Log($\"{_upcomingDividends} dividend at {dataPoint.DividendDate} per share ${dataPoint.Dividend}\");\n }\n}" - } - }, - { - "name": "Commitments of Traders", - "shortDescription": "Weekly positions of commercial hedgers, large speculators, and small traders across US futures markets, published by the CFTC", - "history": "January 1998", - "reach": "942 Futures Markets", - "url": "cftc-cot", - "examples": { - "init": "_legacy = AddData(CFTC.Markets.EMiniSP500, Resolution.Daily).Symbol;", - "history": "var history = History(_legacy, 100, Resolution.Daily);", - "research-history": "var history = qb.History(legacy, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_legacy))\n {\n var dataPoint = slice.Get(_legacy);\n if (dataPoint.NonCommercialNet.HasValue)\n {\n Log($\"{_legacy} non-commercial net at {slice.Time}: {dataPoint.NonCommercialNet}\");\n }\n }\n}" - } - }, - { - "name": "Regulation SHO", - "shortDescription": "Daily off-exchange short sale volume for US Equities, reported to FINRA under Regulation SHO.", - "history": "August 2018", - "reach": "22,073 US Equities", - "url": "finra-reg-sho", - "examples": { - "init": "var shortVolumeSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(shortVolumeSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.ShortVolumeRatio > 0.5m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(shortVolumeSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(shortVolumeSymbol))\n {\n var dataPoint = slice[shortVolumeSymbol];\n Log($\"{shortVolumeSymbol} short volume at {slice.Time}: {dataPoint.ShortVolume}\");\n }\n}" - } - }, - { - "name": "OTC Transparency", - "shortDescription": "Off-exchange trading volume and short interest for US Equities, reported to FINRA.", - "history": "January 2017", - "reach": "59,712 US Equities", - "url": "finra-otc-transparency", - "examples": { - "init": "var shortInterestSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(shortInterestSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.DaysToCover > 5m\n select d.Symbol;\n}", - "research-history": "var history = qb.History(shortInterestSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(shortInterestSymbol))\n {\n var dataPoint = slice[shortInterestSymbol];\n Log($\"{shortInterestSymbol} days to cover at {slice.Time}: {dataPoint.DaysToCover}\");\n }\n}" - } - }, - { - "name": "GDP by Industry", - "shortDescription": "Quarterly breakdown of US GDP by industry, published by the Bureau of Economic Analysis.", - "history": "January 2005", - "reach": "100 US Industries", - "url": "bea-gdp-by-industry", - "examples": { - "init": "_manufacturing = AddData(BEA.Industries.Manufacturing, Resolution.Daily).Symbol;", - "history": "var history = History(_manufacturing, 100, Resolution.Daily);", - "research-history": "var history = qb.History(manufacturing, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_manufacturing))\n {\n var dataPoint = slice[_manufacturing];\n Log($\"{_manufacturing} value added at {slice.Time}: {dataPoint.ValueAdded}\");\n }\n}" - } - }, - { - "name": "US Electricity", - "shortDescription": "Demand and generation information for the US power grid.", - "history": "January 2019", - "reach": "81 Balancing Authorities", - "url": "eia-us-electricity", - "examples": { - "init": "_pjm = AddData(EIA.BalancingAuthorities.PJM, Resolution.Daily).Symbol;", - "history": "var history = History(_pjm, 100, Resolution.Daily);", - "research-history": "var history = qb.History(pjm, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_pjm))\n {\n var dataPoint = slice.Get(_pjm);\n if (dataPoint.Demand.HasValue)\n {\n Log($\"{_pjm} demand at {slice.Time}: {dataPoint.Demand}\");\n }\n }\n}" - } - }, - { - "name": "Euro Yield Curve", - "shortDescription": "Spot, par and forward euro area government bond yield curves at ten maturities, published daily by the European Central Bank", - "history": "September 2004", - "reach": "6 Yield Curves", - "url": "ecb-euro-yield-curve", - "examples": { - "init": "_curve = AddData(ECB.YieldCurves.AaaSpot, Resolution.Daily).Symbol;", - "history": "var history = History(_curve, TimeSpan.FromDays(365), Resolution.Daily);", - "research-history": "var history = qb.History(curve, TimeSpan.FromDays(365), Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_curve))\n {\n var dataPoint = slice.Get(_curve);\n if (dataPoint.TenYear.HasValue)\n {\n Log($\"{_curve} 10Y at {slice.Time}: {dataPoint.TenYear}\");\n }\n }\n}" - } - }, - { - "name": "Policy Rates", - "shortDescription": "Daily ECB policy rates and the euro short-term rate for the euro area, published by the European Central Bank", - "history": "January 1999", - "reach": "1 Euro Area Series", - "url": "ecb-policy-rates", - "examples": { - "init": "_rates = AddData(ECB.PolicyRates.EuroArea).Symbol;", - "history": "var history = History(_rates, TimeSpan.FromDays(365), Resolution.Daily);", - "research-history": "var history = qb.History(rates, TimeSpan.FromDays(365), Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_rates))\n {\n var dataPoint = slice[_rates];\n Log($\"{_rates} deposit facility rate at {slice.Time}: {dataPoint.DepositFacilityRate}\");\n }\n}" - } - }, - { - "name": "Systemic Stress", - "shortDescription": "Composite indicator of systemic stress across 14 economies, published weekly by the European Central Bank", - "history": "January 1980", - "reach": "14 Economies", - "url": "ecb-systemic-stress", - "examples": { - "init": "_euroArea = AddData(ECB.StressAreas.EuroArea).Symbol;", - "history": "var history = History(_euroArea, TimeSpan.FromDays(365), Resolution.Daily);", - "research-history": "var history = qb.History(euroArea, TimeSpan.FromDays(365), Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_euroArea))\n {\n var dataPoint = slice[_euroArea];\n Log($\"{_euroArea} composite stress at {slice.Time}: {dataPoint.Composite}\");\n }\n}" - } - }, - { - "name": "Patent Maintenance", - "shortDescription": "Patent renewals and abandonments for listed companies, recorded by the US Patent and Trademark Office and published weekly", - "history": "April 1985", - "reach": "2,896 US Equities", - "url": "uspto-patent-maintenance", - "examples": { - "init": "var patentsSymbol = AddData(_equity.Symbol).Symbol;", - "history": "var history = History(patentsSymbol, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return altCoarse.OfType()\n .Where(d => d.NetMaintenanceChange > 0)\n .OrderByDescending(d => d.NetMaintenanceChange)\n .Take(10)\n .Select(d => d.Symbol);\n}", - "research-history": "var history = qb.History(patentsSymbol, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(patentsSymbol))\n {\n var dataPoint = slice[patentsSymbol];\n Log($\"{patentsSymbol} patents expired at {slice.Time}: {dataPoint.PatentsExpired}\");\n }\n}" - } - }, - { - "name": "US Energy Information Administration (EIA)", - "shortDescription": "Supply and demand information for US Crude Products.", - "history": "January 1991", - "reach": "190 Datasets", - "url": "quantconnect-us-energy-information-agency", - "examples": { - "init": "_usEnergy = AddData(USEnergy.Petroleum.UnitedStates.WeeklyNetImportsOfTotalPetroleumProducts).Symbol;", - "history": "var history = History(_usEnergy, 100, Resolution.Daily);", - "research-history": "var history = qb.History(usEnergy, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_usEnergy))\n {\n var dataPoint = slice[_usEnergy];\n Log($\"{_usEnergy} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" - } - }, - { - "name": "US Treasury Yield Curve", - "shortDescription": "Yield curve rates for US Government bonds over all common maturity dates. The data is scraped from the US Treasury website.", - "history": "January 1990", - "reach": "US Daily Treasury Yield Rates", - "url": "us-treasury-yield-curve", - "examples": { - "init": "_yieldCurve = AddData(\"USTYCR\").Symbol;", - "history": "var history = History(_yieldCurve, 100, Resolution.Daily);", - "research-history": "var history = qb.History(yieldCurve, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_yieldCurve))\n {\n var dataPoint = slice[_yieldCurve];\n Log($\"{_yieldCurve} one month at {slice.Time}: {dataPoint.OneMonth}\");\n }\n}" - } - }, - { - "name": "VIX Central Contango", - "shortDescription": "Contango rates over time for the VIX Contract. The data is provided by VIXCentral and cached by QuantConnect.", - "history": "June 2010", - "reach": "1 Dataset", - "url": "quantconnect-vixcentral-contango", - "examples": { - "init": "_vixContango = AddData(\"VX\", Resolution.Daily).Symbol;", - "history": "var history = History(_vixContango, 100, Resolution.Daily);", - "research-history": "var history = qb.History(vixContango, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_vixContango))\n {\n var dataPoint = slice[_vixContango];\n Log($\"{_vixContango} front month at {slice.Time}: {dataPoint.FrontMonth}\");\n }\n}" - } - }, - { - "name": "Cash Indices", - "shortDescription": "Price data for 125 US Cash indices and 2 international indices (HSI and SX5E). This data provides the underlying price for Index Options of NDX, SPX, RUT, and VIX.", - "history": "January 1998", - "reach": "125 US and 3 International Indices", - "url": "quantconnect-cash-indices", - "examples": { - "init": "_index = AddIndex(\"VIX\");", - "history": "var history = History(_index.Symbol, 100, Resolution.Daily);", - "research-history": "var history = qb.History(index.Symbol, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_index.Symbol))\n {\n var tradeBar = slice.Bars[_index.Symbol];\n Log($\"{_index.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" - } - }, - { - "name": "Bitcoin Metadata", - "shortDescription": "Bitcoin processing fundamental data such as hash rate, miner revenue, and number of transactions.", - "history": "Jan 2009", - "reach": "Bitcoin Blockchain", - "url": "bitcoin-metadata", - "examples": { - "init": "var bitcoinMetadata = AddData(_btcusd.Symbol).Symbol;", - "history": "var history = History(bitcoinMetadata, 100, Resolution.Daily);", - "research-history": "var history = qb.History(bitcoinMetadata, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(bitcoinMetadata))\n {\n var dataPoint = slice[bitcoinMetadata];\n Log($\"{bitcoinMetadata} miner revenue at {slice.Time}: {dataPoint.MinersRevenue}\");\n }\n}" - } - }, - { - "name": "Crypto Market Cap", - "shortDescription": "Cryptocurrencies market cap data is provided by CoinGecko and cached by QuantConnect.", - "history": "28 April 2013", - "reach": "620 Cryptocurrencies", - "url": "coingecko-crypto-marketcap", - "examples": { - "init": "_coinGecko = AddData(\"BTC\").Symbol;", - "history": "var history = History(_coinGecko, 100, Resolution.Daily);", - "universe-init": "_universe = AddUniverse(SelectAssets);", - "universe-history": "var history = History(_universe, 30, Resolution.Daily);", - "universe-filter": "private IEnumerable SelectAssets(IEnumerable data)\n{\n foreach (var datum in data.OfType())\n {\n Debug($\"{datum.Coin},{datum.MarketCap},{datum.Price}\");\n }\n return data\n .Select(c => c as CoinGecko)\n // Select the coins that the brokerage supports and have a quote currency that\n // matches our account currency.\n .Where(c => _marketPairs.Contains(c.Coin + AccountCurrency))\n // Select the 10 largest coins.\n .OrderByDescending(c => c.MarketCap)\n .Take(10)\n // Create the Symbol objects of the selected coins.\n .Select(c => c.CreateSymbol(_market, AccountCurrency));\n}", - "research-history": "var history = qb.History(coinGecko, 100, Resolution.Daily);", - "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_coinGecko))\n {\n var dataPoint = slice[_coinGecko];\n Log($\"{_coinGecko} market cap at {slice.Time}: {dataPoint.MarketCap}\");\n }\n}" - } - }, - { - "name": "USDA Fruit And Vegetables", - "shortDescription": "Retail price estimates for 75+ commonly consumed fresh and processed fruits and vegetables", - "history": "January 2014", - "reach": "75 Agricultural Products", - "url": "usda-fruit-and-vegetables", - "examples": { - "init": "_usdaApples = AddData(USDAFruitAndVegetable.Symbols.Apples, Resolution.Daily).Symbol;", - "history": "var history = History(_usdaApples, new DateTime(2013, 1, 1), Time, Resolution.Daily);", - "research-history": "var history = qb.History(usdaApples, new DateTime(2013, 1, 1), qb.Time, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_usdaApples))\n {\n var collection = slice[_usdaApples];\n foreach (USDAFruitAndVegetable data in collection.Data)\n {\n Log($\"{_usdaApples} [{data.Form}]: ${data.PricePerCupEquivalent}\");\n }\n }\n}" - } - }, - { - "name": "US Bureau of Labor Statistics (BLS)", - "shortDescription": "Statistical results of many surveys conducted and released by the US government.", - "history": "2000", - "reach": "4 Surveys, 50 Series", - "url": "us-bureau-of-labor-statistics", - "examples": { - "init": "_cpi = AddData(\"CPI\").Symbol;", - "history": "var history = History(_cpi, 100, Resolution.Daily);", - "research-history": "var history = qb.History(cpi, 100, Resolution.Daily);", - "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_cpi))\n {\n var cpi = slice.Get(_cpi);\n Log($\"{_cpi} all items at {slice.Time}: {cpi.AllItems}\");\n }\n}" - } - } - ] +{ + "list": [ + { + "name": "US Equity Security Master", + "shortDescription": "Corporate action data source for splits, dividends, mergers, acquisitions, IPOs, and delistings.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "quantconnect-us-equity-security-master", + "examples": { + "init": "_equity = AddEquity(\"AAPL\", Resolution.Daily);", + "history": "var splitHistory = History(_equity.Symbol, TimeSpan.FromDays(5*365));", + "research-history": "var splitHistory = qb.History(equity.Symbol, TimeSpan.FromDays(5*365));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Splits.ContainsKey(_equity.Symbol))\n {\n var split = slice.Splits[_equity.Symbol];\n Log($\"Split: {split.Symbol}\\t{split.SplitFactor}\\t{split.ReferencePrice}\");\n }\n}" + } + }, + { + "name": "Fama French", + "shortDescription": "Daily returns of the market, size, value, profitability, investment, and momentum factors for US equities", + "history": "January 1998", + "reach": "6 US Equity Market Factors", + "url": "quantconnect-fama-french", + "examples": { + "init": "_famaFrench = AddData(\"FF\", Resolution.Daily).Symbol;", + "history": "var history = History(_famaFrench, 100, Resolution.Daily);", + "research-history": "var history = qb.History(famaFrench, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_famaFrench))\n {\n var dataPoint = slice[_famaFrench];\n Log($\"{_famaFrench} momentum at {slice.Time}: {dataPoint.Momentum}\");\n }\n}" + } + }, + { + "name": "Surveys", + "shortDescription": "Monthly confidence surveys of households, industry, construction, retail and services across 35 European economies, published by Eurostat", + "history": "January 1980", + "reach": "35 European Economies", + "url": "eurostat-surveys", + "examples": { + "init": "_consumer = AddData(Eurostat.Economies.Germany, Resolution.Daily).Symbol;", + "history": "var history = History(_consumer, TimeSpan.FromDays(5*365), Resolution.Daily);", + "research-history": "var history = qb.History(consumer, TimeSpan.FromDays(5*365), Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_consumer))\n {\n var dataPoint = slice.Get(_consumer);\n if (dataPoint.ConsumerConfidence.HasValue)\n {\n Log($\"{_consumer} consumer confidence at {slice.Time}: {dataPoint.ConsumerConfidence}\");\n }\n }\n}" + } + }, + { + "name": "Macro Indicators", + "shortDescription": "Consumer prices, industrial production, producer prices, retail trade, unemployment and GDP across 51 economies, published by Eurostat", + "history": "January 1975", + "reach": "51 Economies", + "url": "eurostat-macro-indicators", + "examples": { + "init": "_prices = AddData(Eurostat.Economies.Germany, Resolution.Daily).Symbol;", + "history": "var history = History(_prices, TimeSpan.FromDays(5*365), Resolution.Daily);", + "research-history": "var history = qb.History(prices, TimeSpan.FromDays(5*365), Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_prices))\n {\n var dataPoint = slice.Get(_prices);\n if (dataPoint.AllItems.HasValue)\n {\n Log($\"{_prices} HICP at {slice.Time}: {dataPoint.AllItems}\");\n }\n }\n}" + } + }, + { + "name": "US Futures Security Master", + "shortDescription": "Rolling reference data for popular CME Futures contracts.", + "history": "May 2009", + "reach": "157 Future Contracts", + "url": "quantconnect-us-futures-security-master", + "examples": { + "init": "var future = AddFuture(Futures.Indices.SP500EMini, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.BackwardsRatio, contractDepthOffset: 0);", + "history": "var history = History(future.Symbol, TimeSpan.FromDays(365));", + "research-history": "var history = qb.History(future.Symbol, new DateTime(2023, 1, 1), new DateTime(2025, 1, 1));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.SymbolChangedEvents.TryGetValue(future.Symbol, out var changedEvent))\n {\n var oldSymbol = changedEvent.OldSymbol;\n var newSymbol = AddFutureContract(changedEvent.NewSymbol).Symbol;\n Log($\"Rollover at {Time}: {oldSymbol} -> {newSymbol}\");\n }\n}" + } + }, + { + "name": "Spectral Tick Flow Signal", + "shortDescription": "Daily signals of fourier-transformed intraday trade-flow patterns", + "history": "Jun 2009", + "reach": "500 US Equities", + "url": "spectral-tick-flow-signal", + "examples": { + "init": "var spectralSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(spectralSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return altCoarse.OfType()\n .Where(d => d.SignatureCount > 0)\n .OrderBy(d => d.ExecutionScore)\n .TakeLast(10)\n .Select(d => d.Symbol);\n}", + "research-history": "var history = qb.History(spectralSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(spectralSymbol))\n {\n var dataPoint = slice[spectralSymbol];\n Log($\"{spectralSymbol} execution score at {slice.Time}: {dataPoint.ExecutionScore}\");\n }\n}" + } + }, + { + "name": "US Equity Coarse Universe", + "shortDescription": "Universe of all US Equities with closing price and volume for Coarse Universe Selection.", + "history": "January 1998", + "reach": "30,000 US Equities", + "url": "quantconnect-us-coarse-universe-constituents", + "examples": { + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "public IEnumerable SelectAssets(IEnumerable fundamental)\n{\n var sortedByDollarVolume = fundamental.OrderByDescending(x => x.DollarVolume).Take(3).ToList();\n foreach (var cf in sortedByDollarVolume)\n {\n Debug($\"{cf.EndTime} :: {cf.Symbol} : {cf.AdjustedPrice} :: {cf.DollarVolume}\");\n }\n return sortedByDollarVolume.Select(x => x.Symbol);\n}", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "var fundamentals = Securities[symbol].Fundamentals;" + } + }, + { + "name": "US ETF Constituents", + "shortDescription": "Equity constituent components and weightings for US ETF listings. This data is ideal for universe selection without selection bias.", + "history": "June 2009", + "reach": "2,650 US ETF Listings", + "url": "quantconnect-us-etf-constituents", + "examples": { + "universe-init": "_universe = AddUniverse(Universe.ETF(\"SPY\", UniverseSettings, SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "public IEnumerable SelectAssets(IEnumerable constituents)\n{\n foreach (var c in constituents)\n {\n Debug($\"{c.EndTime} :: {c.LastUpdate} :: {c.Weight} :: {c.SharesHeld} :: {c.MarketValue}\");\n }\n return constituents.Select(c => c.Symbol);\n}", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "foreach (var c in constituents)\n{\n Debug($\"{c.EndTime} :: {c.Symbol} :: {c.Weight} :: {c.SharesHeld} :: {c.MarketValue}\");\n}" + } + }, + { + "name": "International Future Universe", + "shortDescription": "FESX, HSI, and NKD Futures universe for fast future contract selection with prices, expiration dates and open interests", + "history": "July 1998", + "reach": "5 Contracts", + "url": "quantconnect-international-future-universe", + "examples": { + "universe-init": "_future = AddFuture(Futures.Indices.HangSeng);", + "universe-history": "var history = History(_future.Symbol, 5);", + "universe-filter": "_future.SetFilter(0, 90);", + "research-universe-history": "var history = qb.History(future.Symbol, new DateTime(2025, 1, 1), new DateTime(2025, 4, 1));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.FuturesChains.TryGetValue(_future.Symbol, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" + } + }, + { + "name": "US Future Option Universe", + "shortDescription": "Future Options universe for fast option contract selection.", + "history": "January 2012", + "reach": "15 Monthly Future Contracts", + "url": "quantconnect-us-future-option-universe", + "examples": { + "universe-init": "AddFutureOption(_future.Symbol, OptionFilter);", + "universe-history": "var history = History(QuantConnect.Symbol.CreateCanonicalOption(_future.Mapped), TimeSpan.FromDays(10));", + "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by strike, and expiration\n return universe.Strikes(-1, 1);\n}", + "research-universe-history": "var history = qb.History(QuantConnect.Symbol.CreateCanonicalOption(future.Mapped), new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", + "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" + } + }, + { + "name": "US Future Universe", + "shortDescription": "Futures universe for fast future contract selection with prices, expiration dates and open interests", + "history": "May 2009", + "reach": "157 Most Liquid Futures", + "url": "quantconnect-us-future-universe", + "examples": { + "universe-init": "_future = AddFuture(Futures.Metals.Gold);", + "universe-history": "var history = History(_future.Symbol, 5);", + "universe-filter": "_future.SetFilter((universe) => universe.StandardsOnly().FrontMonth());", + "research-universe-history": "var history = qb.History(future.Symbol, new DateTime(2025, 1, 1), new DateTime(2025, 4, 1));", + "usage": "foreach (var chain in history)\n{\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} open interest: {contract.OpenInterest}\");\n }\n}" + } + }, + { + "name": "US Equity Option Universe", + "shortDescription": "Precalculated daily greeks for fast option-contract selection.", + "history": "January 2012", + "reach": "4,000 Equity Options", + "url": "quantconnect-us-equity-option-universe", + "examples": { + "universe-init": "var option = AddOption(\"GOOG\");\n_optionSymbol = option.Symbol;", + "universe-history": "var history = History(_optionSymbol, TimeSpan.FromDays(3));", + "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by greeks, implied volatility, open interest:\n return universe\n .Delta(0.5m, 1.5m)\n .Gamma(0.0001m, 0.0006m)\n .Vega(0.01m, 1.5m)\n .Theta(-2.0m, -0.5m)\n .Rho(0.5m, 3.0m)\n .ImpliedVolatility(1.0m, 3.0m)\n .OpenInterest(100, 500);\n}", + "research-universe-history": "var history = qb.History(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", + "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" + } + }, + { + "name": "US Index Option Universe", + "shortDescription": "Precalculated Daily Greeks for Fast Option Selection", + "history": "January 2012", + "reach": "7 Index Options", + "url": "quantconnect-us-index-option-universe", + "examples": { + "universe-init": "var standardOption = AddIndexOption(_indexSymbol);\n_standardOptionSymbol = standardOption.Symbol;", + "universe-history": "var history = History(_standardOptionSymbol, TimeSpan.FromDays(3));", + "universe-filter": "private OptionFilterUniverse OptionFilter(OptionFilterUniverse universe)\n{\n // Contracts can be filtered by greeks, implied volatility, open interest:\n return universe\n .Delta(0.5m, 1.5m)\n .Gamma(0.0001m, 0.0006m)\n .Vega(0.01m, 1.5m)\n .Theta(-2.0m, -0.5m)\n .Rho(0.5m, 3.0m)\n .ImpliedVolatility(1.0m, 3.0m)\n .OpenInterest(100, 500);\n}", + "research-universe-history": "var history = qb.History(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 6));", + "usage": "foreach (var chain in history)\n{\n foreach (OptionUniverse contract in chain.Data)\n {\n var delta = contract.Greeks.Delta;\n var iv = contract.ImpliedVolatility;\n }\n}" + } + }, + { + "name": "US Equities Short Availability", + "shortDescription": "Available shares for open short positions in the US Equity market.", + "history": "January 2018", + "reach": "10,500 US Equities", + "url": "us-equities-short-availability", + "examples": { + "init": "_equity.SetShortableProvider(new InteractiveBrokersShortableProvider());", + "history": "var shortableQuantity = _equity.ShortableProvider.ShortableQuantity(_equity.Symbol, Time - TimeSpan.FromDays(1));", + "research-history": "var shortableQuantity = equity.ShortableProvider.ShortableQuantity(equity.Symbol, qb.Time - TimeSpan.FromDays(1));", + "usage": "var shortableProvider = Securities[_equity.Symbol].ShortableProvider;\nvar shortableQuantity = shortableProvider.ShortableQuantity(_equity.Symbol, Time);\nvar isShortable = Shortable(_equity.Symbol, 100);" + } + }, + { + "name": "US Fundamental Data", + "shortDescription": "Corporate Fundamental data for fine universe selection based on industry classification and underlying company performance indicators.", + "history": "January 1998", + "reach": "8,000 US Equities", + "url": "morning-star-us-fundamentals", + "examples": { + "init": "_equity = AddEquity(\"IBM\");", + "history": "var fundamentalHistory = History(_equity.Symbol, TimeSpan.FromDays(30));", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "public IEnumerable SelectAssets(IEnumerable fundamental)\n{\n return fundamental.Where(f => f.Price > 10 && f.ValuationRatios.PERatio > 30).Select(f => f.Symbol);\n}", + "research-history": "var history = qb.GetFundamental(equity.Symbol, \"ValuationRatios.PERatio\", new DateTime(2021, 1, 1), new DateTime(2021, 7, 1));", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "var fundamentals = Securities[_equity.Symbol].Fundamentals;" + } + }, + { + "name": "US Equities", + "shortDescription": "Market data for all US listed and delisted Equities, ETFs, ETNs, ADRs, and Warrants.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "algoseek-us-equities", + "examples": { + "init": "_equity = AddEquity(\"AAPL\", Resolution.Minute);", + "history": "var history = History(_equity.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(equity.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_equity.Symbol))\n {\n var tradeBar = slice.Bars[_equity.Symbol];\n Log($\"{_equity.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "US Equity Options", + "shortDescription": "Trade and quote data for US Equity Options contracts.", + "history": "January 2012", + "reach": "4,000 Equity Options", + "url": "algoseek-us-equity-options", + "examples": { + "init": "var optionContract = AddOptionContract(contract.Symbol);", + "history": "var history = History(optionContract.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(optionContract.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.OptionChains.TryGetValue(optionContract.Symbol.Canonical, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" + } + }, + { + "name": "US Futures", + "shortDescription": "Trade and quote data for the most liquid US Futures across the CME, CBOT, NYMEX, and COMEX markets.", + "history": "May 2009", + "reach": "157 Liquid Futures", + "url": "algoseek-us-futures", + "examples": { + "init": "var futureContract = AddFutureContract(contract.Symbol);", + "history": "var history = History(futureContract.Symbol, 100, Resolution.Minute);", + "universe-init": "var future = AddFuture(Futures.Metals.Gold);", + "universe-history": "var history = History(new[] { _futureSymbol }, start: Time - TimeSpan.FromDays(15), end: Time, resolution: Resolution.Minute, fillForward: false, extendedMarketHours: false, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.Raw, contractDepthOffset: 0);", + "universe-filter": "future.SetFilter(0, 90);", + "research-history": "var history = qb.History(futureContract.Symbol, 100, Resolution.Minute);", + "research-universe-history": "var history = qb.FutureHistory(future.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.TryGetValue(futureContract.Symbol, out var tradeBar))\n {\n Log($\"{futureContract.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "US Future Options", + "shortDescription": "Future Options data for the most liquid US CME Future commodity contracts.", + "history": "January 2012", + "reach": "15 Monthly Future Contracts", + "url": "algoseek-us-future-options", + "examples": { + "init": "var option = AddFutureOptionContract(contract.Symbol);", + "history": "var history = History(option.Symbol, 100, Resolution.Minute);", + "universe-init": "AddFutureOption(future.Symbol, universe => universe.Strikes(-5, +5));", + "universe-history": "var history = History(QuantConnect.Symbol.CreateCanonicalOption(_future.Mapped), TimeSpan.FromDays(10));", + "universe-filter": "universe => universe.Strikes(-5, +5)", + "research-history": "var history = qb.History(option.Symbol, 100, Resolution.Minute);", + "research-universe-history": "var history = qb.OptionHistory(futureContractSymbol, startDate, futureContractSymbol.ID.Date, Resolution.Hour);", + "usage": "public override void OnData(Slice slice)\n{\n foreach (var kvp in slice.OptionChains)\n {\n var chain = kvp.Value;\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" + } + }, + { + "name": "US Index Options", + "shortDescription": "European Option contract data for 3 US Indices: SPX, VIX, and NDX.", + "history": "January 2012", + "reach": "7 Index Options", + "url": "algoseek-us-index-options", + "examples": { + "init": "var indexOption = AddIndexOptionContract(contract.Symbol);", + "history": "var history = History(indexOption.Symbol, 100, Resolution.Minute);", + "universe-init": "var option = AddIndexOption(\"VIX\");", + "universe-history": "var history = History(_optionSymbol, 5);", + "universe-filter": "option.SetFilter(-2, 2, 0, 90);", + "research-history": "var history = qb.History(contract.Symbol, 100, Resolution.Minute);", + "research-universe-history": "var history = qb.OptionHistory(option.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.OptionChains.TryGetValue(indexOption.Symbol.Canonical, out var chain))\n {\n foreach (var contract in chain)\n {\n Log($\"{contract.Symbol} price at {slice.Time}: {contract.LastPrice}\");\n }\n }\n}" + } + }, + { + "name": "International Futures", + "shortDescription": "Trade and quote data for FESX, HSI, and NKD Future Contracts.", + "history": "July 1998", + "reach": "5 Contracts", + "url": "tickdata-international-futures", + "examples": { + "init": "var futureContract = AddFutureContract(contract.Symbol);", + "history": "var history = History(futureContract.Symbol, TimeSpan.FromDays(10));", + "universe-init": "_future = AddFuture(Futures.Indices.HangSeng);", + "universe-history": "var history = History(new[] { _future.Symbol }, start: Time - TimeSpan.FromDays(15), end: Time, resolution: Resolution.Minute, fillForward: false, extendedMarketHours: false, dataMappingMode: DataMappingMode.OpenInterest, dataNormalizationMode: DataNormalizationMode.Raw, contractDepthOffset: 0);", + "universe-filter": "_future.SetFilter(0, 90);", + "research-history": "var history = qb.History(futureContract.Symbol, TimeSpan.FromDays(10));", + "research-universe-history": "var history = qb.FutureHistory(future.Symbol, new DateTime(2020, 6, 1), new DateTime(2020, 6, 5));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.TryGetValue(futureContract.Symbol, out var tradeBar))\n {\n Log($\"{futureContract.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Benzinga News Feed", + "shortDescription": "Financial articles and news publications condensed into a news feed with titles and article bodies for sentiment analysis", + "history": "1st January 2016", + "reach": "1,250 Posts/Day, 8,000 Stocks", + "url": "benzinga-news-feed", + "examples": { + "init": "var benzingaSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(benzingaSymbol, 10, Resolution.Daily);", + "research-history": "var history = qb.History(benzingaSymbol, TimeSpan.FromDays(10));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(benzingaSymbol))\n {\n var article = slice[benzingaSymbol];\n Log($\"{benzingaSymbol} title at {slice.Time}: {article.Title}\");\n }\n}" + } + }, + { + "name": "Tiingo News Feed", + "shortDescription": "News releases from 120 different news providers for sentiment analysis.", + "history": "January 2014", + "reach": "10,000 US Equities", + "url": "tiingo-news-feed", + "examples": { + "init": "var tiingoSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(tiingoSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(tiingoSymbol, TimeSpan.FromDays(10));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(tiingoSymbol))\n {\n var article = slice[tiingoSymbol];\n Log($\"{tiingoSymbol} description at {slice.Time}: {article.Description}\");\n }\n}" + } + }, + { + "name": "Upcoming Earnings", + "shortDescription": "Alert for upcoming earnings report of US Equities with report date, report time, and earnings estimation.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-earnings", + "examples": { + "init": "_upcomingEarnings = AddData(\"earnings\").Symbol;", + "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable earnings)\n{\n return from d in earnings\n where d.ReportDate <= Time.AddDays(3) && d.Estimate > 0m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n var upcomingEarnings = slice.Get();\n if (upcomingEarnings.TryGetValue(_upcomingEarnings, out var dataPoint))\n {\n Log($\"{_upcomingEarnings} reports at {dataPoint.ReportDate} with estimated EPS {dataPoint.Estimate}\");\n }\n}" + } + }, + { + "name": "Upcoming IPOs", + "shortDescription": "Alert for upcoming IPO events of primary US Equities with IPO start/filing/amended date, IPO deal type. IPO prices, and number of shares.", + "history": "February 2013", + "reach": "US Equities", + "url": "eodhd-upcoming-ipos", + "examples": { + "init": "_upcomingIpos = AddData(\"ipos\").Symbol;", + "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private static readonly List _dealTypesWanted = new() { DealType.Expected, DealType.Priced };\n\nprivate IEnumerable SelectAssets(IEnumerable ipos)\n{\n // confirmed non-penny stock IPO that launches within 7 days.\n return from d in ipos\n where _dealTypesWanted.Contains(d.DealType)\n && d.IpoDate.HasValue\n && new[] { d.LowestPrice, d.HighestPrice, d.OfferPrice }.Where(x => x.HasValue).Min().Value > 1m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n foreach (var kvp in slice.Get())\n {\n var equitySymbol = kvp.Key;\n var dataPoint = kvp.Value;\n Log($\"{equitySymbol} IPO at {dataPoint.IPODate} price {dataPoint.OfferPrice} shares {dataPoint.Shares}\");\n }\n}" + } + }, + { + "name": "Upcoming Splits", + "shortDescription": "Alert for upcoming split and reverse split events of primary US Equities common shares with split date, and split factor.", + "history": "January 2010", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-splits", + "examples": { + "init": "_upcomingSplits = AddData(\"splits\").Symbol;", + "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable splits)\n{\n return from d in splits\n where d.SplitDate <= Time.AddDays(3) && d.SplitFactor > 1m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n var upcomingSplits = slice.Get();\n if (upcomingSplits.TryGetValue(_upcomingSplits, out var dataPoint))\n {\n Log($\"{_upcomingSplits} will split at {dataPoint.SplitDate} factor {dataPoint.SplitFactor}\");\n }\n}" + } + }, + { + "name": "Economic Events", + "shortDescription": "Alert for upcoming economic events globally, including the date and estimates of macroeconomic indicator annoucement, special dates, etc.", + "history": "January 2019", + "reach": "115 Countries", + "url": "eodhd-economic-events", + "examples": { + "init": "_economicEvents = AddData(ticker).Symbol;", + "history": "var history = History(_economicEvents, 100, Resolution.Daily);", + "research-history": "var history = qb.History(economicEvents, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Get().TryGetValue(_economicEvents, out var economicEvents))\n {\n foreach (EODHDEconomicEvent economicEvent in economicEvents)\n {\n Log($\"{economicEvent.EventType} of {economicEvent.Country} at {economicEvent.EventTime} estimate {economicEvent.Estimate}\");\n }\n }\n}" + } + }, + { + "name": "US Congress Trading", + "shortDescription": "Trading activity of Congresspeople for potential insider trading signals based on early access to regulation changes.", + "history": "January 2016", + "reach": "1,800 US Equities", + "url": "quiver-quantitative-congress-trading", + "examples": { + "init": "var congressSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(congressSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Amount > 200000m && d.Transaction == OrderDirection.Buy\n select d.Symbol;\n}", + "research-history": "var history = qb.History(congressSymbol, 60, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(congressSymbol))\n {\n var dataPoints = slice[congressSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{congressSymbol} transaction amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" + } + }, + { + "name": "Corporate Buybacks", + "shortDescription": "US Equity buyback announcements and transactions scraped from SEC reports and secondary sources.", + "history": "May 2015", + "reach": "3,000 US Equities", + "url": "smart-insider-corporate-buybacks", + "examples": { + "init": "var insiderIntention = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(insiderIntention, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Percentage > 0.005m && d.USDMarketCap > 100000000m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(insiderIntentionSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(insiderIntention))\n {\n var dataPoint = slice[insiderIntention];\n Log($\"{insiderIntention} intention amount at {slice.Time}: {dataPoint.Amount}\");\n }\n}" + } + }, + { + "name": "US Regulatory Alerts - Financial Sector", + "shortDescription": "RegAlytics is the leading provider of daily regulatory updates. They source data from over 5,000 regulators.", + "history": "January 2020", + "reach": "400,000 Alerts", + "url": "regalytics-us-regulatory-alerts", + "examples": { + "init": "_regalyticsSymbol = AddData(\"REG\").Symbol;", + "history": "var history = History(_regalyticsSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(regalyticsSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_regalyticsSymbol))\n {\n var dataPoints = slice[_regalyticsSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{_regalyticsSymbol} title at {slice.Time}: {dataPoint.Title}\");\n }\n }\n}" + } + }, + { + "name": "Brain Sentiment Indicator", + "shortDescription": "Proprietary sentiment analysis algorithm for US Equities.", + "history": "August 2016", + "reach": "4,500 US Equities", + "url": "brain-sentiment-indicator", + "examples": { + "init": "var brainSentimentSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(brainSentimentSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.TotalArticleMentions7Days > 0m && d.Sentiment7Days > 0m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(equity.Symbol, 30, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(brainSentimentSymbol))\n {\n var dataPoint = slice[brainSentimentSymbol];\n Log($\"{brainSentimentSymbol} sentiment at {slice.Time}: {dataPoint.Sentiment}\");\n }\n}" + } + }, + { + "name": "Brain ML Stock Ranking", + "shortDescription": "Proprietary machine learning ranking algorithm for US Equities.", + "history": "January 2010", + "reach": "1,000 US Equities", + "url": "brain-ml-stock-ranking", + "examples": { + "init": "var brainStockRanking = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(brainStockRanking, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.Rank2Days > 0m && d.Rank3Days > 0m && d.Rank5Days > 0m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(equity.Symbol, 30, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(brainStockRanking))\n {\n var dataPoint = slice[brainStockRanking];\n Log($\"{brainStockRanking} rank at {slice.Time}: {dataPoint.Rank}\");\n }\n}" + } + }, + { + "name": "Brain Language Metrics on Company Filings", + "shortDescription": "Proprietary NLP algorithm that monitors several language metrics on company reports.", + "history": "January 2010", + "reach": "3,000 US Equities", + "url": "brain-language-metrics-company-filings", + "examples": { + "init": "var filingMetrics = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(filingMetrics, 365, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.ReportSentiment.Sentiment > 0m &&\n d.ManagementDiscussionAnalyasisOfFinancialConditionAndResultsOfOperations.Sentiment > 0m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(equity.Symbol, 365, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(filingMetrics))\n {\n var dataPoint = slice[filingMetrics];\n Log($\"{filingMetrics} report sentiment at {slice.Time}: {dataPoint.ReportSentiment.Sentiment}\");\n }\n}" + } + }, + { + "name": "Estimize", + "shortDescription": "Estimates of company financials including EPS, revenues, and macroeconomic indicators based on 100,000+ crowdsourced predictions.", + "history": "January 2011", + "reach": "2,800 US Equities", + "url": "extractalpha-estimize", + "examples": { + "init": "var estimizeConsensusSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(estimizeConsensusSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(estimizeConsensusSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(estimizeConsensusSymbol))\n {\n var dataPoint = slice[estimizeConsensusSymbol];\n Log($\"{estimizeConsensusSymbol} mean at {slice.Time}: {dataPoint.Mean}\");\n }\n}" + } + }, + { + "name": "True Beats", + "shortDescription": "Predictions of EPS and Revenues for US Equities based on expert opinions, peer opinions, and historical performance.", + "history": "January 2000", + "reach": "Over 5,000 US Equities", + "url": "extractalpha-true-beats", + "examples": { + "init": "var trueBeatsSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(trueBeatsSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(trueBeatsSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(trueBeatsSymbol))\n {\n var dataPoint = slice[trueBeatsSymbol];\n Log($\"{trueBeatsSymbol} true beat at {slice.Time}: {dataPoint.TrueBeat}\");\n }\n}" + } + }, + { + "name": "Tactical", + "shortDescription": "Likelihood score of short-term price movements driven by technical indicators.", + "history": "January 2000", + "reach": "5,000 US Equities", + "url": "extractalpha-tactical", + "examples": { + "init": "var tacticalSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(tacticalSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(tacticalSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(tacticalSymbol))\n {\n var dataPoint = slice[tacticalSymbol];\n Log($\"{tacticalSymbol} score at {slice.Time}: {dataPoint.Score}\");\n }\n}" + } + }, + { + "name": "Cross Asset Model", + "shortDescription": "Scoring algorithm based on put-call spread of Equity Options, volatility skewness, and volume.", + "history": "July 2005", + "reach": "3,000 US Equities", + "url": "extractalpha-cross-asset-model", + "examples": { + "init": "var crossAssetModel = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(crossAssetModel, 100, Resolution.Daily);", + "research-history": "var history = qb.History(crossAssetModelSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(crossAssetModel))\n {\n var dataPoint = slice[crossAssetModel];\n Log($\"{crossAssetModel} score at {slice.Time}: {dataPoint.Score}\");\n }\n}" + } + }, + { + "name": "Composite Factor Bundle", + "shortDescription": "Daily proprietary signals for quality, value, momentum, growth, and low volatility factors, which are used by the leading quant funds.", + "history": "January 2003", + "reach": "8,000 US Equities", + "url": "kavout-composite-factor-bundle", + "examples": { + "init": "var factorBundle = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(factorBundle, 100, Resolution.Daily);", + "research-history": "var history = qb.History(factorBundleSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(factorBundle))\n {\n var dataPoint = slice[factorBundle];\n Log($\"{factorBundle} momentum at {slice.Time}: {dataPoint.Momentum}\");\n }\n}" + } + }, + { + "name": "CNBC Trading", + "shortDescription": "CNBC Trading tracks the recommendations made by media personalities on CNBC.", + "history": "December 2020", + "reach": "1,515 US Equities", + "url": "quiver-quantitative-cnbc-trading", + "examples": { + "init": "var cnbcSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(cnbcSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var cnbcDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!cnbcDataBySymbol.ContainsKey(datum.Symbol))\n {\n cnbcDataBySymbol[datum.Symbol] = new List();\n }\n cnbcDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in cnbcDataBySymbol\n where kvp.Value.Count(x => x.Direction == OrderDirection.Buy) >= 3\n select kvp.Key;\n}", + "research-history": "var history = qb.History(cnbcSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(cnbcSymbol))\n {\n var dataPoints = slice[cnbcSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{cnbcSymbol} direction at {slice.Time}: {dataPoint.Direction}\");\n }\n }\n}" + } + }, + { + "name": "US Government Contracts", + "shortDescription": "Use the USASpending.gov API to track government contracts granted to publicly traded companies.", + "history": "October 2019", + "reach": "748 US Equities", + "url": "quiver-quantitative-us-government-contracts", + "examples": { + "init": "var govContractsSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(govContractsSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var govContractDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!govContractDataBySymbol.ContainsKey(datum.Symbol))\n {\n govContractDataBySymbol[datum.Symbol] = new List();\n }\n govContractDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in govContractDataBySymbol\n where kvp.Value.Count >= 3 && kvp.Value.Sum(x => x.Amount) > 50000m\n select kvp.Key;\n}", + "research-history": "var history = qb.History(govContractsSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(govContractsSymbol))\n {\n var dataPoints = slice[govContractsSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{govContractsSymbol} amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" + } + }, + { + "name": "Corporate Lobbying", + "shortDescription": "Lobbying activities of companies to political or legislative figures, including clients, issues concerned, and amount paid.", + "history": "January 1999", + "reach": "1,418 US Equities", + "url": "quiver-quantitative-corporate-lobbying", + "examples": { + "init": "var lobbyingSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(lobbyingSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(\"QuiverLobbyingUniverse\", Resolution.Daily, SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var lobbyDataBySymbol = new Dictionary>();\n foreach (var datum in altCoarse.OfType())\n {\n if (!lobbyDataBySymbol.ContainsKey(datum.Symbol))\n {\n lobbyDataBySymbol[datum.Symbol] = new List();\n }\n lobbyDataBySymbol[datum.Symbol].Add(datum);\n }\n return from kvp in lobbyDataBySymbol\n where kvp.Value.Sum(x => x.Amount) >= 100000m\n select kvp.Key;\n}", + "research-history": "var history = qb.History(lobbyingSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(lobbyingSymbol))\n {\n var dataPoints = slice[lobbyingSymbol];\n foreach (var dataPoint in dataPoints)\n {\n Log($\"{lobbyingSymbol} amount at {slice.Time}: {dataPoint.Amount}\");\n }\n }\n}" + } + }, + { + "name": "Insider Trading", + "shortDescription": "Insider Trading tracks trades made by the own company executives, implying if they were bullish or bearish on their own companies.", + "history": "25 April 2014", + "reach": "4994 US Equities", + "url": "quiver-quantitative-insider-trading", + "examples": { + "init": "var insiderSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(insiderSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n var dollarVolumeBySymbol = new Dictionary();\n foreach (QuiverInsiderTradingUniverse data in altCoarse)\n {\n if (data.PricePerShare == 0m || data.PricePerShare == null) continue;\n if (!dollarVolumeBySymbol.ContainsKey(data.Symbol))\n {\n dollarVolumeBySymbol[data.Symbol] = 0m;\n }\n dollarVolumeBySymbol[data.Symbol] += data.Shares * data.PricePerShare;\n }\n return dollarVolumeBySymbol.OrderByDescending(kvp => kvp.Value).Take(10).Select(kvp => kvp.Key);\n}", + "research-history": "var history = qb.History(insiderTradingSymbol, 60, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-5), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(insiderSymbol))\n {\n var dataPoints = slice[insiderSymbol];\n foreach (QuiverInsiderTrading dataPoint in dataPoints)\n {\n Log($\"{insiderSymbol} shares at {slice.Time}: {dataPoint.Shares}\");\n }\n }\n}" + } + }, + { + "name": "Brain Wikipedia Page Views", + "shortDescription": "Tracks investor attention toward large U.S. equities by monitoring traffic on company Wikipedia pages.", + "history": "February 2023", + "reach": "Russell 1000 Constituents", + "url": "brain-wikipedia-page-views", + "examples": { + "init": "var wikiPageViews = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(wikiPageViews, 100, Resolution.Daily);", + "research-history": "var history = qb.History(wikiPageViewsSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(wikiPageViews))\n {\n var dataPoint = slice[wikiPageViews];\n Log($\"{wikiPageViews} views at {slice.Time}: {dataPoint.NumberViews1}, {dataPoint.Buzz1}\");\n }\n}" + } + }, + { + "name": "US SEC Filings", + "shortDescription": "Semi-parsed Quarterly Financial Reports (10-Q) and Annual Financial Report (8-K) filings of companies for US Equities.", + "history": "January 1998", + "reach": "15,000 US Equities", + "url": "us-security-exchange-commission-filings", + "examples": { + "init": "var report8KSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(report8KSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(report8KSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(report8KSymbol))\n {\n var dataPoint = slice[report8KSymbol];\n Log($\"{report8KSymbol} report count at {slice.Time}: {dataPoint.Report.Documents.Count}\");\n }\n}" + } + }, + { + "name": "US Federal Reserve (FRED)", + "shortDescription": "Collection of thousands of economic datasets maintained by the US Government.", + "history": "January 1999", + "reach": "560 Datasets", + "url": "us-federal-reserve-economic-data", + "examples": { + "init": "_peakToTrough = AddData(Fred.OECDRecessionIndicators.UnitedStatesFromPeakThroughTheTrough, Resolution.Daily).Symbol;", + "history": "var history = History(_peakToTrough, 100, Resolution.Daily);", + "research-history": "var history = qb.History(peakToTroughSymbol, 365, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_peakToTrough))\n {\n var dataPoint = slice[_peakToTrough];\n Log($\"{_peakToTrough} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" + } + }, + { + "name": "Data Link", + "shortDescription": "Nasdaq Data Link, previously known as Quandl, is a premier marketplace for financial, economic, and alternative data sets.", + "history": "Various", + "reach": "20 Million Datasets", + "url": "nasdaq-data-link", + "examples": { + "init": "_bitcoinChainSymbol = AddData(\"QDL/BCHAIN\", Resolution.Daily).Symbol;", + "history": "var history = History(_bitcoinChainSymbol, 100, Resolution.Daily);", + "research-history": "var data = qb.Download(\"https://data.nasdaq.com/api/v3/datatables/QDL/BCHAIN.csv?\");", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.TryGetValue(_bitcoinChainSymbol, out var point))\n {\n Log($\"{_bitcoinChainSymbol} value at {slice.Time}: {point.Value}\");\n }\n}" + } + }, + { + "name": "Bybit Crypto Price Data", + "shortDescription": "Trade and quote data for the Bybit Crypto exchange, collected by CoinAPI.", + "history": "April 2022", + "reach": "956 Currency Pairs", + "url": "bybit-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.Bybit(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(crypto.Symbol, 30, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Bybit Crypto Future Price Data", + "shortDescription": "Trade and quote data for the Bybit Crypto Future exchanges, collected by CoinAPI.", + "history": "October 2019", + "reach": "631 Crypto Future Pairs", + "url": "bybit-cryptofuture-price-data", + "examples": { + "init": "_cryptoFuture = AddCryptoFuture(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", + "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_cryptoFuture.Symbol))\n {\n var tradeBar = slice.Bars[_cryptoFuture.Symbol];\n Log($\"{_cryptoFuture.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Bybit Crypto Future Margin Rate Data", + "shortDescription": "Margin interest rate data for the Bybit Crypto Future exchanges, collected by QuantConnect.", + "history": "August 2020", + "reach": "631 Crypto Future Pairs", + "url": "bybit-cryptofuture-margin-rate-data", + "examples": { + "init": "_cryptoFuture = AddCryptoFuture(\"BTCUSDT\", Resolution.Minute, Market.Bybit);", + "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.MarginInterestRates.ContainsKey(_cryptoFuture.Symbol))\n {\n var interestRate = slice.MarginInterestRates[_cryptoFuture.Symbol].InterestRate;\n Log($\"{_cryptoFuture.Symbol} interest rate at {slice.Time}: {interestRate}\");\n }\n}" + } + }, + { + "name": "Fear and Greed", + "shortDescription": "A daily index between 0 and 100, representing the degree of fear or greed in the US Equity market.", + "history": "July 2014", + "reach": "7 Indicators", + "url": "quantconnect-fear-and-greed", + "examples": { + "init": "_fearGreedSymbol = AddData(\"FG\").Symbol;", + "history": "var history = History(_fearGreedSymbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(fearGreedSymbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_fearGreedSymbol))\n {\n var dataPoint = slice[_fearGreedSymbol];\n Log($\"{_fearGreedSymbol} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" + } + }, + { + "name": "FOREX Data", + "shortDescription": "Quote data for Forex pairs.", + "history": "January 2007", + "reach": "72 Currency Pairs", + "url": "quantconnect-forex", + "examples": { + "init": "_forex = AddForex(\"EURUSD\", Resolution.Minute);", + "history": "var history = History(_forex.Symbol, 100, Resolution.Minute);", + "research-history": "var history = qb.History(forex.Symbol, 100, Resolution.Minute);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.QuoteBars.ContainsKey(_forex.Symbol))\n {\n var quoteBar = slice.QuoteBars[_forex.Symbol];\n Log($\"{_forex.Symbol} bid at {slice.Time}: {quoteBar.Bid.Close}\");\n }\n}" + } + }, + { + "name": "CFD Data", + "shortDescription": "Quote data for Contracts for Difference (CFD).", + "history": "May 2002", + "reach": "51 Contracts", + "url": "quantconnect-cfd", + "examples": { + "init": "_cfd = AddCfd(\"DE30EUR\");", + "history": "var history = History(_cfd.Symbol, 100, Resolution.Minute);", + "research-history": "var history = qb.History(cfd.Symbol, 100, Resolution.Minute);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.QuoteBars.ContainsKey(_cfd.Symbol))\n {\n var quoteBar = slice.QuoteBars[_cfd.Symbol];\n Log($\"{_cfd.Symbol} bid at {slice.Time}: {quoteBar.Bid.Close}\");\n }\n}" + } + }, + { + "name": "Coinbase Crypto Price Data", + "shortDescription": "Trade and quote data for the Coinbase Pro Crypto exchange, collected by CoinAPI.", + "history": "January 2015", + "reach": "970 Currency Pairs", + "url": "coinbase-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Coinbase);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.Coinbase(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Bitfinex Crypto Price Data", + "shortDescription": "Trade and quote data for the Bitfinex Crypto exchange, collected by CoinAPI.", + "history": "January 2013", + "reach": "570 Currency Pairs", + "url": "bitfinex-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Bitfinex);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.Bitfinex(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(symbol, 30, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Binance Crypto Price Data", + "shortDescription": "Trade and quote data for the Binance Crypto exchange, collected by CoinAPI.", + "history": "July 2017", + "reach": "3,651 Currency Pairs", + "url": "binance-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCBUSD\", Resolution.Minute, Market.Binance);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.Binance(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Kraken Crypto Price Data", + "shortDescription": "Trade and quote data for the Kraken Crypto exchange, collected by CoinAPI.", + "history": "October 2013", + "reach": "1,262 Currency Pairs", + "url": "kraken-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.Kraken);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.Kraken(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(crypto.Symbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Binance US Crypto Price Data", + "shortDescription": "Trade and quote data for the Binance US Crypto exchange, collected by CoinAPI.", + "history": "October 2019", + "reach": "627 Cryptocurrency pairs", + "url": "binance-us-crypto-price-data", + "examples": { + "init": "_crypto = AddCrypto(\"BTCUSD\", Resolution.Minute, Market.BinanceUS);", + "history": "var history = History(_crypto.Symbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(CryptoUniverse.BinanceUS(SelectAssets));", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable universeDay)\n{\n return from c in universeDay\n where c.Volume >= 100m && c.VolumeInUsd > 10000m\n select c.Symbol;\n}", + "research-history": "var history = qb.History(_crypto.Symbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_crypto.Symbol))\n {\n var tradeBar = slice.Bars[_crypto.Symbol];\n Log($\"{_crypto.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Binance Crypto Future Price Data", + "shortDescription": "Trade and quote data for the Binance Crypto Future exchanges, collected by CoinAPI.", + "history": "August 2020", + "reach": "806 Crypto Future Pairs", + "url": "binance-cryptofuture-price-data", + "examples": { + "init": "_cryptoFuture = AddCryptoFuture(\"BTCBUSD\", Resolution.Minute);", + "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_cryptoFuture.Symbol))\n {\n var tradeBar = slice.Bars[_cryptoFuture.Symbol];\n Log($\"{_cryptoFuture.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Binance Crypto Future Margin Rate Data", + "shortDescription": "Margin interest rate data for the Binance Crypto Future exchanges, collected by QuantConnect.", + "history": "August 2020", + "reach": "806 Crypto Future Pairs", + "url": "binance-cryptofuture-margin-rate-data", + "examples": { + "init": "_cryptoFuture = AddCryptoFuture(\"BTCBUSD\", Resolution.Minute);", + "history": "var history = History(_cryptoFuture.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(cryptoFuture.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.MarginInterestRates.ContainsKey(_cryptoFuture.Symbol))\n {\n var interestRate = slice.MarginInterestRates[_cryptoFuture.Symbol].InterestRate;\n Log($\"{_cryptoFuture.Symbol} interest rate at {slice.Time}: {interestRate}\");\n }\n}" + } + }, + { + "name": "US Interest Rate", + "shortDescription": "Primary credit rate from the Federal Open Market Committee (FOMC)", + "history": "January 2003", + "reach": "1 Country: US", + "url": "us-interest-rate", + "examples": { + "history": "var historicalInterestRate = RiskFreeInterestRateModel.GetInterestRate(Time - TimeSpan.FromDays(30));", + "research-history": "var historicalInterestRate = qb.RiskFreeInterestRateModel.GetInterestRate(qb.Time - TimeSpan.FromDays(30));", + "usage": "var interestRate = RiskFreeInterestRateModel.GetInterestRate(Time);" + } + }, + { + "name": "Macroeconomics Indicators", + "shortDescription": "39 Macroeconomic Indicators data for 249 countries/regions, including the date, value, and frequency.", + "history": "January 1998", + "reach": "39 Indicators, 249 Countries/Regions", + "url": "eodhd-macro-indicators", + "examples": { + "init": "_macroIndicator = AddData(EODHD.MacroIndicators.UnitedStates.GdpCurrentUsd).Symbol;", + "history": "var history = History(_macroIndicator, TimeSpan.FromDays(365));", + "research-history": "var history = qb.History(macroIndicator, TimeSpan.FromDays(365));", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_macroIndicator))\n {\n var dataPoint = slice[_macroIndicator];\n Log($\"{dataPoint.Indicator} of {dataPoint.Country} at {dataPoint.Time}: {dataPoint.Value}\");\n }\n}" + } + }, + { + "name": "Upcoming Dividends", + "shortDescription": "Alert for upcoming dividend events of primary US Equities common shares with dividend important dates, and dividend per share.", + "history": "January 2015", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-dividends", + "examples": { + "init": "_upcomingDividends = AddData(\"dividends\").Symbol;", + "history": "var history = History(TimeSpan.FromDays(100), Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable dividends)\n{\n return from EODHDUpcomingDividends d in dividends\n where d.DividendsDate <= Time.AddDays(1) && d.Dividends > 0.05m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(TimeSpan.FromDays(100), Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n var upcomingDividends = slice.Get();\n if (upcomingDividends.TryGetValue(_upcomingDividends, out var dataPoint))\n {\n Log($\"{_upcomingDividends} dividend at {dataPoint.DividendDate} per share ${dataPoint.Dividend}\");\n }\n}" + } + }, + { + "name": "Commitments of Traders", + "shortDescription": "Weekly positions of commercial hedgers, large speculators, and small traders across US futures markets, published by the CFTC", + "history": "January 1998", + "reach": "942 Futures Markets", + "url": "cftc-cot", + "examples": { + "init": "_legacy = AddData(CFTC.Markets.EMiniSP500, Resolution.Daily).Symbol;", + "history": "var history = History(_legacy, 100, Resolution.Daily);", + "research-history": "var history = qb.History(legacy, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_legacy))\n {\n var dataPoint = slice.Get(_legacy);\n if (dataPoint.NonCommercialNet.HasValue)\n {\n Log($\"{_legacy} non-commercial net at {slice.Time}: {dataPoint.NonCommercialNet}\");\n }\n }\n}" + } + }, + { + "name": "Regulation SHO", + "shortDescription": "Daily off-exchange short sale volume for US Equities, reported to FINRA under Regulation SHO.", + "history": "August 2018", + "reach": "22,073 US Equities", + "url": "finra-reg-sho", + "examples": { + "init": "var shortVolumeSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(shortVolumeSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.ShortVolumeRatio > 0.5m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(shortVolumeSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(shortVolumeSymbol))\n {\n var dataPoint = slice[shortVolumeSymbol];\n Log($\"{shortVolumeSymbol} short volume at {slice.Time}: {dataPoint.ShortVolume}\");\n }\n}" + } + }, + { + "name": "OTC Transparency", + "shortDescription": "Off-exchange trading volume and short interest for US Equities, reported to FINRA.", + "history": "January 2017", + "reach": "59,712 US Equities", + "url": "finra-otc-transparency", + "examples": { + "init": "var shortInterestSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(shortInterestSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return from d in altCoarse.OfType()\n where d.DaysToCover > 5m\n select d.Symbol;\n}", + "research-history": "var history = qb.History(shortInterestSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(shortInterestSymbol))\n {\n var dataPoint = slice[shortInterestSymbol];\n Log($\"{shortInterestSymbol} days to cover at {slice.Time}: {dataPoint.DaysToCover}\");\n }\n}" + } + }, + { + "name": "GDP by Industry", + "shortDescription": "Quarterly breakdown of US GDP by industry, published by the Bureau of Economic Analysis.", + "history": "January 2005", + "reach": "100 US Industries", + "url": "bea-gdp-by-industry", + "examples": { + "init": "_manufacturing = AddData(BEA.Industries.Manufacturing, Resolution.Daily).Symbol;", + "history": "var history = History(_manufacturing, 100, Resolution.Daily);", + "research-history": "var history = qb.History(manufacturing, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_manufacturing))\n {\n var dataPoint = slice[_manufacturing];\n Log($\"{_manufacturing} value added at {slice.Time}: {dataPoint.ValueAdded}\");\n }\n}" + } + }, + { + "name": "US Electricity", + "shortDescription": "Demand and generation information for the US power grid.", + "history": "January 2019", + "reach": "81 Balancing Authorities", + "url": "eia-us-electricity", + "examples": { + "init": "_pjm = AddData(EIA.BalancingAuthorities.PJM, Resolution.Daily).Symbol;", + "history": "var history = History(_pjm, 100, Resolution.Daily);", + "research-history": "var history = qb.History(pjm, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_pjm))\n {\n var dataPoint = slice.Get(_pjm);\n if (dataPoint.Demand.HasValue)\n {\n Log($\"{_pjm} demand at {slice.Time}: {dataPoint.Demand}\");\n }\n }\n}" + } + }, + { + "name": "Euro Yield Curve", + "shortDescription": "Spot, par and forward euro area government bond yield curves at ten maturities, published daily by the European Central Bank", + "history": "September 2004", + "reach": "6 Yield Curves", + "url": "ecb-euro-yield-curve", + "examples": { + "init": "_curve = AddData(ECB.YieldCurves.AaaSpot, Resolution.Daily).Symbol;", + "history": "var history = History(_curve, TimeSpan.FromDays(365), Resolution.Daily);", + "research-history": "var history = qb.History(curve, TimeSpan.FromDays(365), Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_curve))\n {\n var dataPoint = slice.Get(_curve);\n if (dataPoint.TenYear.HasValue)\n {\n Log($\"{_curve} 10Y at {slice.Time}: {dataPoint.TenYear}\");\n }\n }\n}" + } + }, + { + "name": "Policy Rates", + "shortDescription": "Daily ECB policy rates and the euro short-term rate for the euro area, published by the European Central Bank", + "history": "January 1999", + "reach": "1 Euro Area Series", + "url": "ecb-policy-rates", + "examples": { + "init": "_rates = AddData(ECB.PolicyRates.EuroArea).Symbol;", + "history": "var history = History(_rates, TimeSpan.FromDays(365), Resolution.Daily);", + "research-history": "var history = qb.History(rates, TimeSpan.FromDays(365), Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_rates))\n {\n var dataPoint = slice[_rates];\n Log($\"{_rates} deposit facility rate at {slice.Time}: {dataPoint.DepositFacilityRate}\");\n }\n}" + } + }, + { + "name": "Systemic Stress", + "shortDescription": "Composite indicator of systemic stress across 14 economies, published weekly by the European Central Bank", + "history": "January 1980", + "reach": "14 Economies", + "url": "ecb-systemic-stress", + "examples": { + "init": "_euroArea = AddData(ECB.StressAreas.EuroArea).Symbol;", + "history": "var history = History(_euroArea, TimeSpan.FromDays(365), Resolution.Daily);", + "research-history": "var history = qb.History(euroArea, TimeSpan.FromDays(365), Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_euroArea))\n {\n var dataPoint = slice[_euroArea];\n Log($\"{_euroArea} composite stress at {slice.Time}: {dataPoint.Composite}\");\n }\n}" + } + }, + { + "name": "Patent Maintenance", + "shortDescription": "Patent renewals and abandonments for listed companies, recorded by the US Patent and Trademark Office and published weekly", + "history": "April 1985", + "reach": "2,896 US Equities", + "url": "uspto-patent-maintenance", + "examples": { + "init": "var patentsSymbol = AddData(_equity.Symbol).Symbol;", + "history": "var history = History(patentsSymbol, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable altCoarse)\n{\n return altCoarse.OfType()\n .Where(d => d.NetMaintenanceChange > 0)\n .OrderByDescending(d => d.NetMaintenanceChange)\n .Take(10)\n .Select(d => d.Symbol);\n}", + "research-history": "var history = qb.History(patentsSymbol, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(patentsSymbol))\n {\n var dataPoint = slice[patentsSymbol];\n Log($\"{patentsSymbol} patents expired at {slice.Time}: {dataPoint.PatentsExpired}\");\n }\n}" + } + }, + { + "name": "US Energy Information Administration (EIA)", + "shortDescription": "Supply and demand information for US Crude Products.", + "history": "January 1991", + "reach": "190 Datasets", + "url": "quantconnect-us-energy-information-agency", + "examples": { + "init": "_usEnergy = AddData(USEnergy.Petroleum.UnitedStates.WeeklyNetImportsOfTotalPetroleumProducts).Symbol;", + "history": "var history = History(_usEnergy, 100, Resolution.Daily);", + "research-history": "var history = qb.History(usEnergy, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_usEnergy))\n {\n var dataPoint = slice[_usEnergy];\n Log($\"{_usEnergy} value at {slice.Time}: {dataPoint.Value}\");\n }\n}" + } + }, + { + "name": "US Treasury Yield Curve", + "shortDescription": "Yield curve rates for US Government bonds over all common maturity dates. The data is scraped from the US Treasury website.", + "history": "January 1990", + "reach": "US Daily Treasury Yield Rates", + "url": "us-treasury-yield-curve", + "examples": { + "init": "_yieldCurve = AddData(\"USTYCR\").Symbol;", + "history": "var history = History(_yieldCurve, 100, Resolution.Daily);", + "research-history": "var history = qb.History(yieldCurve, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_yieldCurve))\n {\n var dataPoint = slice[_yieldCurve];\n Log($\"{_yieldCurve} one month at {slice.Time}: {dataPoint.OneMonth}\");\n }\n}" + } + }, + { + "name": "VIX Central Contango", + "shortDescription": "Contango rates over time for the VIX Contract. The data is provided by VIXCentral and cached by QuantConnect.", + "history": "June 2010", + "reach": "1 Dataset", + "url": "quantconnect-vixcentral-contango", + "examples": { + "init": "_vixContango = AddData(\"VX\", Resolution.Daily).Symbol;", + "history": "var history = History(_vixContango, 100, Resolution.Daily);", + "research-history": "var history = qb.History(vixContango, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_vixContango))\n {\n var dataPoint = slice[_vixContango];\n Log($\"{_vixContango} front month at {slice.Time}: {dataPoint.FrontMonth}\");\n }\n}" + } + }, + { + "name": "Cash Indices", + "shortDescription": "Price data for 125 US Cash indices and 2 international indices (HSI and SX5E). This data provides the underlying price for Index Options of NDX, SPX, RUT, and VIX.", + "history": "January 1998", + "reach": "125 US and 3 International Indices", + "url": "quantconnect-cash-indices", + "examples": { + "init": "_index = AddIndex(\"VIX\");", + "history": "var history = History(_index.Symbol, 100, Resolution.Daily);", + "research-history": "var history = qb.History(index.Symbol, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.Bars.ContainsKey(_index.Symbol))\n {\n var tradeBar = slice.Bars[_index.Symbol];\n Log($\"{_index.Symbol} price at {slice.Time}: {tradeBar.Close}\");\n }\n}" + } + }, + { + "name": "Bitcoin Metadata", + "shortDescription": "Bitcoin processing fundamental data such as hash rate, miner revenue, and number of transactions.", + "history": "Jan 2009", + "reach": "Bitcoin Blockchain", + "url": "bitcoin-metadata", + "examples": { + "init": "var bitcoinMetadata = AddData(_btcusd.Symbol).Symbol;", + "history": "var history = History(bitcoinMetadata, 100, Resolution.Daily);", + "research-history": "var history = qb.History(bitcoinMetadata, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(bitcoinMetadata))\n {\n var dataPoint = slice[bitcoinMetadata];\n Log($\"{bitcoinMetadata} miner revenue at {slice.Time}: {dataPoint.MinersRevenue}\");\n }\n}" + } + }, + { + "name": "Crypto Market Cap", + "shortDescription": "Cryptocurrencies market cap data is provided by CoinGecko and cached by QuantConnect.", + "history": "28 April 2013", + "reach": "620 Cryptocurrencies", + "url": "coingecko-crypto-marketcap", + "examples": { + "init": "_coinGecko = AddData(\"BTC\").Symbol;", + "history": "var history = History(_coinGecko, 100, Resolution.Daily);", + "universe-init": "_universe = AddUniverse(SelectAssets);", + "universe-history": "var history = History(_universe, 30, Resolution.Daily);", + "universe-filter": "private IEnumerable SelectAssets(IEnumerable data)\n{\n foreach (var datum in data.OfType())\n {\n Debug($\"{datum.Coin},{datum.MarketCap},{datum.Price}\");\n }\n return data\n .Select(c => c as CoinGecko)\n // Select the coins that the brokerage supports and have a quote currency that\n // matches our account currency.\n .Where(c => _marketPairs.Contains(c.Coin + AccountCurrency))\n // Select the 10 largest coins.\n .OrderByDescending(c => c.MarketCap)\n .Take(10)\n // Create the Symbol objects of the selected coins.\n .Select(c => c.CreateSymbol(_market, AccountCurrency));\n}", + "research-history": "var history = qb.History(coinGecko, 100, Resolution.Daily);", + "research-universe-history": "var history = qb.UniverseHistory(universe, qb.Time.AddDays(-30), qb.Time);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_coinGecko))\n {\n var dataPoint = slice[_coinGecko];\n Log($\"{_coinGecko} market cap at {slice.Time}: {dataPoint.MarketCap}\");\n }\n}" + } + }, + { + "name": "USDA Fruit And Vegetables", + "shortDescription": "Retail price estimates for 75+ commonly consumed fresh and processed fruits and vegetables", + "history": "January 2014", + "reach": "75 Agricultural Products", + "url": "usda-fruit-and-vegetables", + "examples": { + "init": "_usdaApples = AddData(USDAFruitAndVegetable.Symbols.Apples, Resolution.Daily).Symbol;", + "history": "var history = History(_usdaApples, new DateTime(2013, 1, 1), Time, Resolution.Daily);", + "research-history": "var history = qb.History(usdaApples, new DateTime(2013, 1, 1), qb.Time, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_usdaApples))\n {\n var collection = slice[_usdaApples];\n foreach (USDAFruitAndVegetable data in collection.Data)\n {\n Log($\"{_usdaApples} [{data.Form}]: ${data.PricePerCupEquivalent}\");\n }\n }\n}" + } + }, + { + "name": "US Bureau of Labor Statistics (BLS)", + "shortDescription": "Statistical results of many surveys conducted and released by the US government.", + "history": "2000", + "reach": "4 Surveys, 50 Series", + "url": "us-bureau-of-labor-statistics", + "examples": { + "init": "_cpi = AddData(\"CPI\").Symbol;", + "history": "var history = History(_cpi, 100, Resolution.Daily);", + "research-history": "var history = qb.History(cpi, 100, Resolution.Daily);", + "usage": "public override void OnData(Slice slice)\n{\n if (slice.ContainsKey(_cpi))\n {\n var cpi = slice.Get(_cpi);\n Log($\"{_cpi} all items at {slice.Time}: {cpi.AllItems}\");\n }\n}" + } + } + ] } \ No newline at end of file diff --git a/project-templates/python/datasets.json b/project-templates/python/datasets.json index 58dcb6c02a..912294f40a 100644 --- a/project-templates/python/datasets.json +++ b/project-templates/python/datasets.json @@ -1,1153 +1,1153 @@ -{ - "list": [ - { - "name": "US Equity Security Master", - "shortDescription": "Corporate action data source for splits, dividends, mergers, acquisitions, IPOs, and delistings.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "quantconnect-us-equity-security-master", - "examples": { - "init": "self._equity = self.add_equity('AAPL', Resolution.DAILY)", - "history": "split_history = self.history[Split](self._equity, timedelta(5*365))", - "research-history": "split_history = qb.history(Split, equity, timedelta(5*365))", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.splits.contains_key(self._equity.symbol):\n split = slice.splits[self._equity.symbol]\n self.log(f'Split: {split.symbol}\\t{split.split_factor}\\t{split.reference_price}')" - } - }, - { - "name": "Fama French", - "shortDescription": "Daily returns of the market, size, value, profitability, investment, and momentum factors for US equities", - "history": "January 1998", - "reach": "6 US Equity Market Factors", - "url": "quantconnect-fama-french", - "examples": { - "init": "self._fama_french = self.add_data(FamaFrench, 'FF', Resolution.DAILY).symbol", - "history": "history = self.history(self._fama_french, 100, Resolution.DAILY)", - "research-history": "history = qb.history(fama_french, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._fama_french):\n data_point = slice[self._fama_french]\n self.log(f'{self._fama_french} momentum at {slice.time}: {data_point.momentum}')" - } - }, - { - "name": "Surveys", - "shortDescription": "Monthly confidence surveys of households, industry, construction, retail and services across 35 European economies, published by Eurostat", - "history": "January 1980", - "reach": "35 European Economies", - "url": "eurostat-surveys", - "examples": { - "init": "self._consumer = self.add_data(EurostatConsumerSurvey, Eurostat.Economies.GERMANY, Resolution.DAILY).symbol", - "history": "history = self.history(self._consumer, timedelta(5*365), Resolution.DAILY)", - "research-history": "history = qb.history(consumer, timedelta(5*365), Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._consumer):\n data_point = slice[self._consumer]\n if data_point.consumer_confidence is not None:\n self.log(f'{self._consumer} consumer confidence at {slice.time}: {data_point.consumer_confidence}')" - } - }, - { - "name": "Macro Indicators", - "shortDescription": "Consumer prices, industrial production, producer prices, retail trade, unemployment and GDP across 51 economies, published by Eurostat", - "history": "January 1975", - "reach": "51 Economies", - "url": "eurostat-macro-indicators", - "examples": { - "init": "self._prices = self.add_data(EurostatConsumerPrices, Eurostat.Economies.GERMANY, Resolution.DAILY).symbol", - "history": "history = self.history(self._prices, timedelta(5*365), Resolution.DAILY)", - "research-history": "history = qb.history(prices, timedelta(5*365), Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._prices):\n data_point = slice[self._prices]\n if data_point.all_items is not None:\n self.log(f'{self._prices} HICP at {slice.time}: {data_point.all_items}')" - } - }, - { - "name": "US Futures Security Master", - "shortDescription": "Rolling reference data for popular CME Futures contracts.", - "history": "May 2009", - "reach": "157 Future Contracts", - "url": "quantconnect-us-futures-security-master", - "examples": { - "init": "future = self.add_future(Futures.Indices.SP_500_E_MINI, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.BACKWARDS_RATIO, contract_depth_offset=0)", - "history": "history = self.history[SymbolChangedEvent](future.symbol, timedelta(365))", - "research-history": "history = qb.history(SymbolChangedEvent, future.symbol, datetime(2023, 1, 1), datetime(2025, 1, 1))", - "usage": "def on_data(self, slice: Slice) -> None:\n changed_event = slice.symbol_changed_events.get(future.symbol)\n if changed_event:\n old_symbol = changed_event.old_symbol\n new_symbol = self.add_future_contract(changed_event.new_symbol).symbol\n self.log(f'Rollover at {self.time}: {old_symbol} -> {new_symbol}')" - } - }, - { - "name": "Spectral Tick Flow Signal", - "shortDescription": "Daily signals of fourier-transformed intraday trade-flow patterns", - "history": "Jun 2009", - "reach": "500 US Equities", - "url": "spectral-tick-flow-signal", - "examples": { - "init": "equity.spectral_symbol = self.add_data(SpectralTickFlowSignal, equity.symbol).symbol", - "history": "history = self.history(equity.spectral_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(SpectralTickFlowSignalUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[SpectralTickFlowSignalUniverse]) -> List[Symbol]:\n confirmed = [d for d in alt_coarse if d.signature_count > 0]\n return [d.symbol for d in sorted(confirmed, key=lambda d: d.execution_score)[-10:]]", - "research-history": "history = qb.history(equity.spectral_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.spectral_symbol):\n data_point = slice[equity.spectral_symbol]\n self.log(f'{equity.spectral_symbol} execution score at {slice.time}: {data_point.execution_score}')" - } - }, - { - "name": "US Equity Coarse Universe", - "shortDescription": "Universe of all US Equities with closing price and volume for Coarse Universe Selection.", - "history": "January 1998", - "reach": "30,000 US Equities", - "url": "quantconnect-us-coarse-universe-constituents", - "examples": { - "universe-init": "self._universe = self.add_universe(self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, fundamental: List[Fundamental]) -> List[Symbol]:\n sorted_by_dollar_volume = sorted(fundamental, key=lambda x: x.dollar_volume, reverse=True)[:3]\n for cf in sorted_by_dollar_volume:\n self.debug(f'{cf.end_time} :: {cf.symbol} : {cf.adjusted_price} :: {cf.dollar_volume}')\n\n return [x.symbol for x in sorted_by_dollar_volume]", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "fundamentals = self.securities[symbol].fundamentals" - } - }, - { - "name": "US ETF Constituents", - "shortDescription": "Equity constituent components and weightings for US ETF listings. This data is ideal for universe selection without selection bias.", - "history": "June 2009", - "reach": "2,650 US ETF Listings", - "url": "quantconnect-us-etf-constituents", - "examples": { - "universe-init": "self._universe = self.add_universe(self.universe.etf('SPY', self.universe_settings, self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, constituents: List[ETFConstituentUniverse]) -> List[Symbol]:\n for c in constituents:\n self.debug(f'{c.end_time} :: {c.last_update} :: {c.weight} :: {c.shares_held} :: {c.market_value}')\n return [x.symbol for x in constituents]", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "for c in constituents:\n self.debug(f'{c.end_time} :: {c.symbol} :: {c.weight} :: {c.shares_held} :: {c.market_value}')" - } - }, - { - "name": "International Future Universe", - "shortDescription": "FESX, HSI, and NKD Futures universe for fast future contract selection with prices, expiration dates and open interests", - "history": "July 1998", - "reach": "5 Contracts", - "url": "quantconnect-international-future-universe", - "examples": { - "universe-init": "self._future = self.add_future(Futures.Indices.HANG_SENG)", - "universe-history": "history = self.history(FutureUniverse, self._future.symbol, 5, flatten=True)", - "universe-filter": "self._future.set_filter(0, 90)", - "research-universe-history": "history = qb.history(FutureUniverse, future.symbol, datetime(2025, 1, 1), datetime(2025, 4, 1), flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.futures_chains.get(self._future.symbol)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" - } - }, - { - "name": "US Future Option Universe", - "shortDescription": "Future Options universe for fast option contract selection.", - "history": "January 2012", - "reach": "15 Monthly Future Contracts", - "url": "quantconnect-us-future-option-universe", - "examples": { - "universe-init": "self.add_future_option(self._future.symbol, self._option_filter)", - "universe-history": "history = self.history(Symbol.create_canonical_option(self._future.mapped), timedelta(10), flatten=True)", - "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by strike, and expiration\n return universe.strikes(-1, 1)", - "research-universe-history": "history = qb.history(Symbol.create_canonical_option(future.mapped), datetime(2020, 6, 1), datetime(2020, 6, 5), flatten=True)", - "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" - } - }, - { - "name": "US Future Universe", - "shortDescription": "Futures universe for fast future contract selection with prices, expiration dates and open interests", - "history": "May 2009", - "reach": "157 Most Liquid Futures", - "url": "quantconnect-us-future-universe", - "examples": { - "universe-init": "self._future = self.add_future(Futures.Metals.GOLD)", - "universe-history": "history = self.history[FutureUniverse](self._future.symbol, 5)", - "universe-filter": "self._future.set_filter(lambda universe: universe.standards_only().front_month())", - "research-universe-history": "history = qb.history[FutureUniverse](future.symbol, datetime(2025, 1, 1), datetime(2025, 4, 1))", - "usage": "for chain in history:\n for contract in chain:\n self.log(f'{contract.symbol} open interest: {contract.open_interest}')" - } - }, - { - "name": "US Equity Option Universe", - "shortDescription": "Precalculated daily greeks for fast option-contract selection.", - "history": "January 2012", - "reach": "4,000 Equity Options", - "url": "quantconnect-us-equity-option-universe", - "examples": { - "universe-init": "self._option = self.add_option('GOOG')", - "universe-history": "history = self.history[OptionUniverse](self._option.symbol, timedelta(3))", - "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by greeks, implied volatility, open interest:\n return (universe\n .delta(0.5, 1.5)\n .gamma(0.0001, 0.0006)\n .vega(0.01, 1.5)\n .theta(-2.0, -0.5)\n .rho(0.5, 3.0)\n .implied_volatility(1, 3)\n .open_interest(100, 500))", - "research-universe-history": "history = qb.history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5), flatten=True)", - "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" - } - }, - { - "name": "US Index Option Universe", - "shortDescription": "Precalculated Daily Greeks for Fast Option Selection", - "history": "January 2012", - "reach": "7 Index Options", - "url": "quantconnect-us-index-option-universe", - "examples": { - "universe-init": "self._option = self.add_index_option(self.index_symbol)", - "universe-history": "history = self.history(self._option.symbol, timedelta(3))", - "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by greeks, implied volatility, open interest:\n return (universe\n .delta(0.5, 1.5)\n .gamma(0.0001, 0.0006)\n .vega(0.01, 1.5)\n .theta(-2.0, -0.5)\n .rho(0.5, 3.0)\n .implied_volatility(1, 3)\n .open_interest(100, 500))", - "research-universe-history": "history = qb.history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", - "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" - } - }, - { - "name": "US Equities Short Availability", - "shortDescription": "Available shares for open short positions in the US Equity market.", - "history": "January 2018", - "reach": "10,500 US Equities", - "url": "us-equities-short-availability", - "examples": { - "init": "self._equity.set_shortable_provider(InteractiveBrokersShortableProvider())", - "history": "self._equity.shortable_provider.shortable_quantity(self._equity.symbol, self.time - timedelta(1))", - "research-history": "equity.shortable_provider.shortable_quantity(equity.symbol, qb.time - timedelta(1))", - "usage": "shortable_provider = self.securities[self._equity.symbol].shortable_provider\nshortable_quantity = shortable_provider.shortable_quantity(self._equity.symbol, self.time)\nis_shortable = self.shortable(self._equity.symbol, 100)" - } - }, - { - "name": "US Fundamental Data", - "shortDescription": "Corporate Fundamental data for fine universe selection based on industry classification and underlying company performance indicators.", - "history": "January 1998", - "reach": "8,000 US Equities", - "url": "morning-star-us-fundamentals", - "examples": { - "init": "self._equity = self.add_equity('IBM')", - "history": "fundamental_history = self.history[Fundamental](self._equity.symbol, timedelta(30))", - "universe-init": "self._universe = self.add_universe(self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, fundamental: List[Fundamental]) -> List[Symbol]:\n return [f.symbol for f in fundamental if f.price > 10 and f.valuation_ratios.pe_ratio > 30]", - "research-history": "history = qb.get_fundamental(equity.symbol, 'ValuationRatios.pe_ratios', datetime(2021, 1, 1), datetime(2021, 7, 1))", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "fundamentals = self.securities[self._equity.symbol].fundamentals" - } - }, - { - "name": "US Equities", - "shortDescription": "Market data for all US listed and delisted Equities, ETFs, ETNs, ADRs, and Warrants.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "algoseek-us-equities", - "examples": { - "init": "self._equity = self.add_equity('AAPL', Resolution.MINUTE)", - "history": "history = self.history(self._equity.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(equity.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._equity.symbol in slice.bars:\n trade_bar = slice.bars[self._equity.symbol]\n self.log(f'{self._equity.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "US Equity Options", - "shortDescription": "Trade and quote data for US Equity Options contracts.", - "history": "January 2012", - "reach": "4,000 Equity Options", - "url": "algoseek-us-equity-options", - "examples": { - "init": "option_contract = self.add_option_contract(contract.symbol)", - "history": "history = self.history(option_contract.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(option_contract.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.option_chains.get(option_contract.symbol.canonical)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" - } - }, - { - "name": "US Futures", - "shortDescription": "Trade and quote data for the most liquid US Futures across the CME, CBOT, NYMEX, and COMEX markets.", - "history": "May 2009", - "reach": "157 Liquid Futures", - "url": "algoseek-us-futures", - "examples": { - "init": "future_contract = self.add_future_contract(contract.symbol)", - "history": "history = self.history(future_contract.symbol, 100, Resolution.MINUTE)", - "universe-init": "future = self.add_future(Futures.Metals.GOLD)", - "universe-history": "history = self.history(self.future_symbol, start=self.time - timedelta(days=15), end=self.time, resolution=Resolution.MINUTE, fill_forward=False, extended_market_hours=False, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.RAW, contract_depth_offset=0)", - "universe-filter": "future.set_filter(0, 90)", - "research-history": "history = qb.history(future_contract.symbol, 100, Resolution.MINUTE)", - "research-universe-history": "history = qb.future_history(future.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", - "usage": "def on_data(self, slice: Slice) -> None:\n if future_contract.symbol in slice.bars:\n trade_bar = slice.bars[future_contract.symbol]\n self.log(f'{future_contract.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "US Future Options", - "shortDescription": "Future Options data for the most liquid US CME Future commodity contracts.", - "history": "January 2012", - "reach": "15 Monthly Future Contracts", - "url": "algoseek-us-future-options", - "examples": { - "init": "option = self.add_future_option_contract(contract.symbol)", - "history": "history = self.history(option.symbol, 100, Resolution.MINUTE)", - "universe-init": "self.add_future_option(future.symbol, lambda universe: universe.strikes(-5, +5))", - "universe-history": "history = self.history(Symbol.create_canonical_option(self._future.mapped), timedelta(10), flatten=True)", - "universe-filter": "lambda universe: universe.strikes(-5, +5)", - "research-history": "history = qb.history(option.symbol, 100, Resolution.MINUTE)", - "research-universe-history": "history = qb.option_history(future_contract_symbol, start_date, future_contract_symbol.id.date, Resolution.HOUR)", - "usage": "def on_data(self, slice: Slice) -> None:\n for canonical_fop_symbol, chain in slice.option_chains.items():\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" - } - }, - { - "name": "US Index Options", - "shortDescription": "European Option contract data for 3 US Indices: SPX, VIX, and NDX.", - "history": "January 2012", - "reach": "7 Index Options", - "url": "algoseek-us-index-options", - "examples": { - "init": "index_option = self.add_index_option_contract(contract.symbol)", - "history": "history = self.history(index_option.symbol, 100, Resolution.MINUTE)", - "universe-init": "self._option = self.add_index_option('VIX').symbol", - "universe-history": "history = self.history(self._option.symbol, 5, flatten=True)", - "universe-filter": "self._option.set_filter(-2, 2, 0, 90)", - "research-history": "history = qb.history(contract.symbol, 100, Resolution.MINUTE)", - "research-universe-history": "history = qb.option_history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", - "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.option_chains.get(index_option.symbol.canonical)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" - } - }, - { - "name": "International Futures", - "shortDescription": "Trade and quote data for FESX, HSI, and NKD Future Contracts.", - "history": "July 1998", - "reach": "5 Contracts", - "url": "tickdata-international-futures", - "examples": { - "init": "future_contract = self.add_future_contract(contract.symbol)", - "history": "history = self.history(future_contract.symbol, timedelta(10))", - "universe-init": "self._future = self.add_future(Futures.Indices.HANG_SENG)", - "universe-history": "history = self.history(self._future.symbol, start=self.time - timedelta(days=15), end=self.time, resolution=Resolution.MINUTE, fill_forward=False, extended_market_hours=False, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.RAW, contract_depth_offset=0)", - "universe-filter": "self._future.set_filter(0, 90)", - "research-history": "history = qb.history(future_contract.symbol, timedelta(10))", - "research-universe-history": "history = qb.future_history(future.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", - "usage": "def on_data(self, slice: Slice) -> None:\n if future_contract.symbol in slice.bars:\n trade_bar = slice.bars[future_contract.symbol]\n self.log(f'{future_contract.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Benzinga News Feed", - "shortDescription": "Financial articles and news publications condensed into a news feed with titles and article bodies for sentiment analysis", - "history": "1st January 2016", - "reach": "1,250 Posts/Day, 8,000 Stocks", - "url": "benzinga-news-feed", - "examples": { - "init": "equity.benzinga_symbol = self.add_data(BenzingaNews, equity.symbol).symbol", - "history": "history = self.history(equity.benzinga_symbol, 10, Resolution.DAILY)", - "research-history": "history = qb.history(benzinga_symbol, timedelta(10))", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.benzinga_symbol):\n article = slice[equity.benzinga_symbol]\n self.log(f'{equity.benzinga_symbol} title at {slice.time}: {article.title}')" - } - }, - { - "name": "Tiingo News Feed", - "shortDescription": "News releases from 120 different news providers for sentiment analysis.", - "history": "January 2014", - "reach": "10,000 US Equities", - "url": "tiingo-news-feed", - "examples": { - "init": "equity.tiingo_symbol = self.add_data(TiingoNews, equity.symbol).symbol", - "history": "history = self.history(equity.tiingo_symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(tiingo_symbol, timedelta(10))", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.tiingo_symbol):\n article = slice[equity.tiingo_symbol]\n self.log(f'{equity.tiingo_symbol} description at {slice.time}: {article.description}')" - } - }, - { - "name": "Upcoming Earnings", - "shortDescription": "Alert for upcoming earnings report of US Equities with report date, report time, and earnings estimation.", - "history": "January 1998", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-earnings", - "examples": { - "init": "self._upcoming_earnings = self.add_data(EODHDUpcomingEarnings, 'earnings').symbol", - "history": "history = self.history[EODHDUpcomingEarnings](self._upcoming_earnings, timedelta(100))", - "universe-init": "self._universe = self.add_universe(EODHDUpcomingEarnings, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, earnings: List[EODHDUpcomingEarnings]) -> List[Symbol]:\n return [d.symbol for d in earnings if d.report_date <= self.time + timedelta(3) and d.estimate > 0]", - "research-history": "history = qb.history(upcoming_earnings, timedelta(100))", - "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_earnings = slice.get(EODHDUpcomingEarnings).get(self._upcoming_earnings)\n if upcoming_earnings:\n self.log(f'{self._upcoming_earnings} reports at {upcoming_earnings.report_date} with estimated EPS {upcoming_earnings.estimate}')" - } - }, - { - "name": "Upcoming IPOs", - "shortDescription": "Alert for upcoming IPO events of primary US Equities with IPO start/filing/amended date, IPO deal type. IPO prices, and number of shares.", - "history": "February 2013", - "reach": "US Equities", - "url": "eodhd-upcoming-ipos", - "examples": { - "init": "self._upcoming_ipos = self.add_data(EODHDUpcomingIPOs, 'ipos').symbol", - "history": "history_bars = self.history[EODHDUpcomingIPOs](self._upcoming_ipos, timedelta(100))", - "universe-init": "self._universe = self.add_universe(EODHDUpcomingIPOs, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, ipos: List[EODHDUpcomingIPOs]) -> List[Symbol]:\n # confirmed non-penny stock IPO that launches within 7 days.\n return [d.symbol for d in ipos if d.deal_type in [DealType.EXPECTED, DealType.PRICED] and d.ipo_date and min(x for x in [d.lowest_price, d.highest_price, d.offer_price] if x) > 1]", - "research-history": "history = qb.history(upcoming_ipos, timedelta(100))", - "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n for equity_symbol, data_point in slice.get(EODHDUpcomingIPOs).items():\n self.log(f'{equity_symbol} IPO at {data_point.ipo_date} price {data_point.offer_price} shares {data_point.shares}')" - } - }, - { - "name": "Upcoming Splits", - "shortDescription": "Alert for upcoming split and reverse split events of primary US Equities common shares with split date, and split factor.", - "history": "January 2010", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-splits", - "examples": { - "init": "self._upcoming_splits = self.add_data(EODHDUpcomingSplits, 'splits').symbol", - "history": "history = self.history[EODHDUpcomingSplits](self._upcoming_splits, timedelta(100))", - "universe-init": "self._universe = self.add_universe(EODHDUpcomingSplits, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, splits: List[EODHDUpcomingSplits]) -> List[Symbol]:\n return [d.symbol for d in splits if d.split_date <= self.time + timedelta(3) and d.split_factor > 1]", - "research-history": "history = qb.history(upcoming_splits, timedelta(100))", - "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_splits = slice.get(EODHDUpcomingSplits)\n if upcoming_splits and self._upcoming_splits in upcoming_splits:\n data_point = upcoming_splits[self._upcoming_splits]\n self.log(f'{self._upcoming_splits} will split at {data_point.split_date} factor {data_point.split_factor}')" - } - }, - { - "name": "Economic Events", - "shortDescription": "Alert for upcoming economic events globally, including the date and estimates of macroeconomic indicator annoucement, special dates, etc.", - "history": "January 2019", - "reach": "115 Countries", - "url": "eodhd-economic-events", - "examples": { - "init": "self._economic_events = self.add_data(EODHDEconomicEvents, ticker).symbol", - "history": "history = self.history[EODHDEconomicEvents](self._economic_events, 100, Resolution.DAILY)", - "research-history": "self.history(EODHDEconomicEvents, economic_events, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n events = slice.get(EODHDEconomicEvents).get(self._economic_events)\n if events:\n for event in events:\n self.log(f'{event.event_type} of {event.country} at {event.event_time} estimate {event.estimate}')" - } - }, - { - "name": "US Congress Trading", - "shortDescription": "Trading activity of Congresspeople for potential insider trading signals based on early access to regulation changes.", - "history": "January 2016", - "reach": "1,800 US Equities", - "url": "quiver-quantitative-congress-trading", - "examples": { - "init": "equity.congress_symbol = self.add_data(QuiverCongress, equity.symbol).symbol", - "history": "history = self.history(equity.congress_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(QuiverQuantCongressUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverQuantCongresssUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.amount > 200000 and d.transaction == OrderDirection.BUY]", - "research-history": "history = qb.history(quiver_congress_symbol, 60, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.congress_symbol):\n data_points = slice[equity.congress_symbol]\n for data_point in data_points:\n self.log(f'{equity.congress_symbol} transaction amount at {slice.time}: {data_point.amount}')" - } - }, - { - "name": "Corporate Buybacks", - "shortDescription": "US Equity buyback announcements and transactions scraped from SEC reports and secondary sources.", - "history": "May 2015", - "reach": "3,000 US Equities", - "url": "smart-insider-corporate-buybacks", - "examples": { - "init": "equity.insider_intention = self.add_data(SmartInsiderIntention, equity.symbol).symbol", - "history": "history = self.history(equity.insider_intention, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(SmartInsiderIntentionUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY)", - "universe-filter": "def _select_assets(self, alt_coarse: List[SmartInsiderIntentionUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.percentage > 0.005\n and d.usd_market_cap > 100000000]", - "research-history": "history = qb.history(insider_intention_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.insider_intention):\n data_point = slice[equity.insider_intention]\n self.log(f'{equity.insider_intention} intention amount at {slice.time}: {data_point.amount}')" - } - }, - { - "name": "US Regulatory Alerts - Financial Sector", - "shortDescription": "RegAlytics is the leading provider of daily regulatory updates. They source data from over 5,000 regulators.", - "history": "January 2020", - "reach": "400,000 Alerts", - "url": "regalytics-us-regulatory-alerts", - "examples": { - "init": "self._regalytics_symbol = self.add_data(RegalyticsRegulatoryArticles, 'REG').symbol", - "history": "history = self.history(self._regalytics_symbol, 100, Resolution.DAILY, flatten=True)", - "research-history": "history = qb.history(regalytics_symbol, 100, Resolution.DAILY, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._regalytics_symbol):\n data_points = slice[self._regalytics_symbol]\n for data_point in data_points:\n self.log(f'{self._regalytics_symbol} title at {slice.time}: {data_point.title}')" - } - }, - { - "name": "Brain Sentiment Indicator", - "shortDescription": "Proprietary sentiment analysis algorithm for US Equities.", - "history": "August 2016", - "reach": "4,500 US Equities", - "url": "brain-sentiment-indicator", - "examples": { - "init": "equity.brain_sentiment_symbol = self.add_data(BrainSentimentIndicator7Day, equity.symbol).symbol", - "history": "history = self.history(equity.brain_sentiment_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(BrainSentimentIndicatorUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[BrainSentimentIndicatorUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.total_article_mentions7_days > 0\n and d.sentiment7_days]", - "research-history": "history = qb.history(BrainSentimentIndicator30Day, equity.symbol, 30, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.brain_sentiment_symbol):\n data_point = slice[equity.brain_sentiment_symbol]\n self.log(f'{equity.brain_sentiment_symbol} sentiment at {slice.time}: {data_point.sentiment}')" - } - }, - { - "name": "Brain ML Stock Ranking", - "shortDescription": "Proprietary machine learning ranking algorithm for US Equities.", - "history": "January 2010", - "reach": "1,000 US Equities", - "url": "brain-ml-stock-ranking", - "examples": { - "init": "equity.brain_stock_ranking = self.add_data(BrainStockRanking2Day, equity.symbol).symbol", - "history": "history = self.history(equity.brain_stock_rankingl, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(BrainStockRankingUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[BrainStockRankingUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.rank2_days > 0\n and d.rank3_days > 0\n and d.rank5_days > 0]", - "research-history": "history = qb.history(BrainStockRanking2Day, equity.symbol, 30, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.brain_stock_ranking):\n data_point = slice[equity.brain_stock_ranking]\n self.log(f'{equity.brain_stock_ranking} rank at {slice.time}: {data_point.rank}')" - } - }, - { - "name": "Brain Language Metrics on Company Filings", - "shortDescription": "Proprietary NLP algorithm that monitors several language metrics on company reports.", - "history": "January 2010", - "reach": "3,000 US Equities", - "url": "brain-language-metrics-company-filings", - "examples": { - "init": "equity.filing_metrics = self.add_data(BrainCompanyFilingLanguageMetrics10K, equity.symbol).symbol", - "history": "history = self.history(equity.filing_metrics, 365, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(BrainCompanyFilingLanguageMetricsUniverseAll, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[BrainCompanyFilingLanguageMetricsUniverseAll]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.report_sentiment.sentiment > 0\n and d.management_discussion_analyasis_of_financial_condition_and_results_of_operations.sentiment > 0]", - "research-history": "history = qb.history(BrainCompanyFilingLanguageMetrics10K, equity.symbol, 365, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.filing_metrics):\n data_point = slice[equity.filing_metrics]\n self.log(f'{equity.filing_metrics} report sentiment at {slice.time}: {data_point.report_sentiment.sentiment}')" - } - }, - { - "name": "Estimize", - "shortDescription": "Estimates of company financials including EPS, revenues, and macroeconomic indicators based on 100,000+ crowdsourced predictions.", - "history": "January 2011", - "reach": "2,800 US Equities", - "url": "extractalpha-estimize", - "examples": { - "init": "equity.estimize_consensus_symbol = self.add_data(EstimizeConsensus, equity.symbol).symbol", - "history": "history = self.history(equity.estimize_consensus_symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(estimize_consensus_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.estimize_consensus_symbol):\n data_point = slice[equity.estimize_consensus_symbol]\n self.log(f'{equity.estimize_consensus_symbol} mean at {slice.time}: {data_point.mean}')" - } - }, - { - "name": "True Beats", - "shortDescription": "Predictions of EPS and Revenues for US Equities based on expert opinions, peer opinions, and historical performance.", - "history": "January 2000", - "reach": "Over 5,000 US Equities", - "url": "extractalpha-true-beats", - "examples": { - "init": "equity.true_beats_symbol = self.add_data(ExtractAlphaTrueBeats, equity.symbol).symbol", - "history": "history = self.history(equity.true_beats_symbol, 100, Resolution.DAILY, flatten=True)", - "research-history": "history = qb.history(true_beats_symbol, 100, Resolution.DAILY, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.true_beats_symbol):\n data_point = slice[equity.true_beats_symbol]\n self.log(f'{equity.true_beats_symbol} true beat at {slice.time}: {data_point.true_beat}')" - } - }, - { - "name": "Tactical", - "shortDescription": "Likelihood score of short-term price movements driven by technical indicators.", - "history": "January 2000", - "reach": "5,000 US Equities", - "url": "extractalpha-tactical", - "examples": { - "init": "equity.tactical_symbol = self.add_data(ExtractAlphaTacticalModel, equity.symbol).symbol", - "history": "history = self.history(equity.tactical_symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(tactical_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.tactical_symbol):\n data_point = slice[equity.tactical_symbol]\n self.log(f'{equity.tactical_symbol} score at {slice.time}: {data_point.score}')" - } - }, - { - "name": "Cross Asset Model", - "shortDescription": "Scoring algorithm based on put-call spread of Equity Options, volatility skewness, and volume.", - "history": "July 2005", - "reach": "3,000 US Equities", - "url": "extractalpha-cross-asset-model", - "examples": { - "init": "equity.cross_asset_model = self.add_data(ExtractAlphaCrossAssetModel, equity.symbol).symbol", - "history": "history = self.history(equity.cross_asset_model, 100, Resolution.DAILY)", - "research-history": "history = qb.history(cross_asset_model_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.cross_asset_model):\n data_point = slice[equity.cross_asset_model]\n self.log(f'{equity.cross_asset_model} score at {slice.time}: {data_point.score}')" - } - }, - { - "name": "Composite Factor Bundle", - "shortDescription": "Daily proprietary signals for quality, value, momentum, growth, and low volatility factors, which are used by the leading quant funds.", - "history": "January 2003", - "reach": "8,000 US Equities", - "url": "kavout-composite-factor-bundle", - "examples": { - "init": "equity.factor_bundle = self.add_data(KavoutCompositeFactorBundle, equity.symbol).symbol", - "history": "history = self.history(equity.factor_bundle, 100, Resolution.DAILY)", - "research-history": "history = qb.history(factor_bundle_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.factor_bundle):\n data_point = slice[equity.factor_bundle]\n self.log(f'{equity.factor_bundle} momentum at {slice.time}: {data_point.momentum}')" - } - }, - { - "name": "CNBC Trading", - "shortDescription": "CNBC Trading tracks the recommendations made by media personalities on CNBC.", - "history": "December 2020", - "reach": "1,515 US Equities", - "url": "quiver-quantitative-cnbc-trading", - "examples": { - "init": "equity.cnbc_symbol = self.add_data(QuiverCNBCs, equity.symbol).symbol", - "history": "history = self.history(equity.cnbc_symbol, 100, Resolution.DAILY)", - "universe-init": "self._uinverse = self.add_universe(QuiverCNBCsUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverCNBCsUniverse]) -> List[Symbol]:\n cnbc_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in cnbc_data_by_symbol:\n cnbc_data_by_symbol[symbol] = []\n cnbc_data_by_symbol[symbol].append(datum)\n\n # define our selection criteria\n return [symbol for symbol, d in cnbc_data_by_symbol.items()\n if len([x for x in d if x.direction == OrderDirection.BUY]) >= 3]", - "research-history": "history = qb.history(cnbc_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.cnbc_symbol):\n data_points = slice[equity.cnbc_symbol]\n for data_point in data_points:\n self.log(f'{equity.cnbc_symbol} direction at {slice.time}: {data_point.direction}')" - } - }, - { - "name": "US Government Contracts", - "shortDescription": "Use the USASpending.gov API to track government contracts granted to publicly traded companies.", - "history": "October 2019", - "reach": "748 US Equities", - "url": "quiver-quantitative-us-government-contracts", - "examples": { - "init": "equity.govt_contracts = self.add_data(QuiverGovernmentContract, equity.symbol).symbol", - "history": "history = self.history(equity.govt_contracts, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(QuiverGovernmentContractUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coase: List[QuiverGovernmentContractUniverse]) -> List[Symbol]:\n gov_contract_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in gov_contract_data_by_symbol:\n gov_contract_data_by_symbol[symbol] = []\n gov_contract_data_by_symbol[symbol].append(datum)\n\n return [symbol for symbol, d in gov_contract_data_by_symbol.items()\n if len(d) >= 3 and sum([x.amount for x in d]) > 50000]", - "research-history": "history = qb.history(govt_contracts_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.govt_contracts):\n data_points = slice[equity.govt_contracts]\n for data_point in data_points:\n self.log(f'{equity.govt_contracts} amount at {slice.time}: {data_point.amount}')" - } - }, - { - "name": "Corporate Lobbying", - "shortDescription": "Lobbying activities of companies to political or legislative figures, including clients, issues concerned, and amount paid.", - "history": "January 1999", - "reach": "1,418 US Equities", - "url": "quiver-quantitative-corporate-lobbying", - "examples": { - "init": "equity.lobbying_symbol = self.add_data(QuiverLobbyings, equity.symbol).symbol", - "history": "history = self.history(equity.lobbying_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(QuiverLobbyingUniverse, 'QuiverLobbyingUniverse', Resolution.DAILY, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverLobbyingUniverse]) -> List[Symbol]:\n lobby_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in lobby_data_by_symbol:\n lobby_data_by_symbol[symbol] = []\n lobby_data_by_symbol[symbol].append(datum)\n\n return [symbol for symbol, d in lobby_data_by_symbol.items()\n if sum([x.amount for x in d]) >= 100000]", - "research-history": "history = qb.history(lobbying_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.lobbying_symbol):\n data_points = slice[equity.lobbying_symbol]\n for data_point in data_points:\n self.log(f'{equity.lobbying_symbol} amount at {slice.time}: {data_point.amount}')" - } - }, - { - "name": "Insider Trading", - "shortDescription": "Insider Trading tracks trades made by the own company executives, implying if they were bullish or bearish on their own companies.", - "history": "25 April 2014", - "reach": "4994 US Equities", - "url": "quiver-quantitative-insider-trading", - "examples": { - "init": "equity.insider_symbol = self.add_data(QuiverInsiderTrading, equity.symbol).symbol", - "history": "history = self.history(equity.insider_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(QuiverInsiderTradingUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverInsiderTradingUniverse]) -> List[Symbol]:\n dollar_volume_by_symbol = {}\n for data in alt_coarse:\n symbol = data.symbol\n if not data.price_per_share:\n continue\n if symbol not in dollar_volume_by_symbol:\n dollar_volume_by_symbol[symbol] = 0\n dollar_volume_by_symbol[symbol] += (data.shares or 0) * data.price_per_share\n return [\n symbol for symbol, _ in sorted(dollar_volume_by_symbol.items(), key=lambda kvp: kvp[1])[-10:]\n ]", - "research-history": "history = qb.history(insider_trading_symbol, 60, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.insider_symbol):\n data_points = slice[equity.insider_symbol]\n for data_point in data_points:\n self.log(f'{equity.insider_symbol} shares at {slice.time}: {data_point.shares}')" - } - }, - { - "name": "Brain Wikipedia Page Views", - "shortDescription": "Tracks investor attention toward large U.S. equities by monitoring traffic on company Wikipedia pages.", - "history": "February 2023", - "reach": "Russell 1000 Constituents", - "url": "brain-wikipedia-page-views", - "examples": { - "init": "equity.wiki_page_views = self.add_data(BrainWikipediaPageViews, equity.symbol).symbol", - "history": "history = self.history(equity.wiki_page_views, 100, Resolution.DAILY)", - "research-history": "history = self.history(wiki_page_views_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.wiki_page_views):\n data_point = slice[equity.wiki_page_views]\n self.log(f'{equity.wiki_page_views} views at {slice.time}: {data_point.NumberViews1}, {data_point.Buzz1}')" - } - }, - { - "name": "US SEC Filings", - "shortDescription": "Semi-parsed Quarterly Financial Reports (10-Q) and Annual Financial Report (8-K) filings of companies for US Equities.", - "history": "January 1998", - "reach": "15,000 US Equities", - "url": "us-security-exchange-commission-filings", - "examples": { - "init": "equity.report_8k_symbol = self.add_data(SECReport8K, equity.symbol).symbol", - "history": "history = self.history(equity.report_8k_symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(report_8k_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.report_8k_symbol):\n data_point = slice[equity.report_8k_symbol]\n self.log(f'{equity.report_8k_symbol} report count at {slice.time}: {len(data_point.report.documents)}')" - } - }, - { - "name": "US Federal Reserve (FRED)", - "shortDescription": "Collection of thousands of economic datasets maintained by the US Government.", - "history": "January 1999", - "reach": "560 Datasets", - "url": "us-federal-reserve-economic-data", - "examples": { - "init": "self._peak_to_trough = self.add_data(Fred, Fred.OECDRecessionIndicators.UNITED_STATES_FROM_PEAK_THROUGH_THE_TROUGH, Resolution.DAILY).symbol", - "history": "history = self.history(self._peak_to_trough, 100, Resolution.DAILY)", - "research-history": "history = qb.history(peak_to_trough_symbol, 365, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._peak_to_trough):\n data_point = slice[self._peak_to_trough]\n self.log(f'{self._peak_to_trough} value at {slice.time}: {data_point.value}')" - } - }, - { - "name": "Data Link", - "shortDescription": "Nasdaq Data Link, previously known as Quandl, is a premier marketplace for financial, economic, and alternative data sets.", - "history": "Various", - "reach": "20 Million Datasets", - "url": "nasdaq-data-link", - "examples": { - "init": "self._bitcoin_chain_symbol = self.add_data(NasdaqDataLink, 'QDL/BCHAIN', Resolution.DAILY).symbol", - "history": "history = self.history(self._bitcoin_chain_symbol, 100, Resolution.DAILY)", - "research-history": "from io import StringIO\ndata = qb.download('https://data.nasdaq.com/api/v3/datatables/QDL/BCHAIN.csv?')\nhistory = pd.read_csv(StringIO(data), index_col=0)", - "usage": "def on_data(self, slice: Slice) -> None:\n point = slice.get(self._bitcoin_chain_symbol)\n if point:\n self.log(f'{self._bitcoin_chain_symbol} value at {slice.time}: {point.value}')" - } - }, - { - "name": "Bybit Crypto Price Data", - "shortDescription": "Trade and quote data for the Bybit Crypto exchange, collected by CoinAPI.", - "history": "April 2022", - "reach": "956 Currency Pairs", - "url": "bybit-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.bybit(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = qb.history(crypto.symbol, 30, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Bybit Crypto Future Price Data", - "shortDescription": "Trade and quote data for the Bybit Crypto Future exchanges, collected by CoinAPI.", - "history": "October 2019", - "reach": "631 Crypto Future Pairs", - "url": "bybit-cryptofuture-price-data", - "examples": { - "init": "self._crypto_future = self.add_crypto_future('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", - "history": "history = self.history(self._crypto_future.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(crypto_future.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto_future.symbol]\n self.log(f'{self._crypto_future.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Bybit Crypto Future Margin Rate Data", - "shortDescription": "Margin interest rate data for the Bybit Crypto Future exchanges, collected by QuantConnect.", - "history": "August 2020", - "reach": "631 Crypto Future Pairs", - "url": "bybit-cryptofuture-margin-rate-data", - "examples": { - "init": "self._crypto_future = self.add_crypto_future('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", - "history": "history = self.history[MarginInterestRate](self._crypto_future.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(MarginInterestRate, crypto_future.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.margin_interest_rates:\n interest_rate = slice.margin_interest_rates[self._crypto_future.symbol].interest_rate\n self.log(f'{self._crypto_future.symbol} interest rate at {slice.time}: {interest_rate}')" - } - }, - { - "name": "Fear and Greed", - "shortDescription": "A daily index between 0 and 100, representing the degree of fear or greed in the US Equity market.", - "history": "July 2014", - "reach": "7 Indicators", - "url": "quantconnect-fear-and-greed", - "examples": { - "init": "self._fear_greed_symbol = self.add_data(FearGreedIndex, 'FG').symbol", - "history": "history = self.history(self._fear_greed_symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(fear_greed_symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._fear_greed_symbol):\n data_point = slice[self._fear_greed_symbol]\n self.log(f'{self._fear_greed_symbol} value at {slice.time}: {data_point.value}')" - } - }, - { - "name": "FOREX Data", - "shortDescription": "Quote data for Forex pairs.", - "history": "January 2007", - "reach": "72 Currency Pairs", - "url": "quantconnect-forex", - "examples": { - "init": "self._forex = self.add_forex('EURUSD', Resolution.MINUTE)", - "history": "history = self.history(self._forex.symbol, 100, Resolution.MINUTE)", - "research-history": "history = qb.history(forex.symbol, 100, Resolution.MINUTE)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._forex.symbol in slice.quote_bars:\n quote_bar = slice.quote_bars[self._forex.symbol]\n self.log(f'{self._forex.symbol} bid at {slice.time}: {quote_bar.bid.close}')" - } - }, - { - "name": "CFD Data", - "shortDescription": "Quote data for Contracts for Difference (CFD).", - "history": "May 2002", - "reach": "51 Contracts", - "url": "quantconnect-cfd", - "examples": { - "init": "self._cfd = self.add_cfd('DE30EUR')", - "history": "history = self.history(self._cfd.symbol, 100, Resolution.MINUTE)", - "research-history": "history = qb.history(cfd.symbol, 100, Resolution.MINUTE)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._cfd.symbol in slice.quote_bars:\n quote_bar = slice.quote_bars[self._cfd.symbol]\n self.log(f'{self._cfd.symbol} bid at {slice.time}: {quote_bar.bid.close}')" - } - }, - { - "name": "Coinbase Crypto Price Data", - "shortDescription": "Trade and quote data for the Coinbase Pro Crypto exchange, collected by CoinAPI.", - "history": "January 2015", - "reach": "970 Currency Pairs", - "url": "coinbase-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.COINBASE)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.coinbase(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = qb.history(crypto.symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Bitfinex Crypto Price Data", - "shortDescription": "Trade and quote data for the Bitfinex Crypto exchange, collected by CoinAPI.", - "history": "January 2013", - "reach": "570 Currency Pairs", - "url": "bitfinex-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.BITFINEX)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.bitfinex(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = qb.history(symbol, 30, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Binance Crypto Price Data", - "shortDescription": "Trade and quote data for the Binance Crypto exchange, collected by CoinAPI.", - "history": "July 2017", - "reach": "3,651 Currency Pairs", - "url": "binance-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCBUSD', Resolution.MINUTE, Market.BINANCE)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.binance(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = self.history(crypto.symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Kraken Crypto Price Data", - "shortDescription": "Trade and quote data for the Kraken Crypto exchange, collected by CoinAPI.", - "history": "October 2013", - "reach": "1,262 Currency Pairs", - "url": "kraken-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.KRAKEN)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.kraken(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = self.history(crypto.symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Binance US Crypto Price Data", - "shortDescription": "Trade and quote data for the Binance US Crypto exchange, collected by CoinAPI.", - "history": "October 2019", - "reach": "627 Cryptocurrency pairs", - "url": "binance-us-crypto-price-data", - "examples": { - "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.BINANCE_US)", - "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CryptoUniverse.binance_us(self._select_assets))", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", - "research-history": "history = qb.history(self._crypto.symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Binance Crypto Future Price Data", - "shortDescription": "Trade and quote data for the Binance Crypto Future exchanges, collected by CoinAPI.", - "history": "August 2020", - "reach": "806 Crypto Future Pairs", - "url": "binance-cryptofuture-price-data", - "examples": { - "init": "self._crypto_future = self.add_crypto_future('BTCBUSD', Resolution.MINUTE)", - "history": "history = self.history(self._crypto_future.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(crypto_future.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto_future.symbol]\n self.log(f'{self._crypto_future.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Binance Crypto Future Margin Rate Data", - "shortDescription": "Margin interest rate data for the Binance Crypto Future exchanges, collected by QuantConnect.", - "history": "August 2020", - "reach": "806 Crypto Future Pairs", - "url": "binance-cryptofuture-margin-rate-data", - "examples": { - "init": "self._crypto_future = self.add_crypto_future('BTCBUSD', Resolution.MINUTE)", - "history": "history = self.history[MarginInterestRate](self._crypto_future.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(MarginInterestRate, crypto_future.symbol, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.margin_interest_rates:\n interest_rate = slice.margin_interest_rates[self._crypto_future.symbol].interest_rate\n self.log(f'{self._crypto_future.symbol} interest rate at {slice.time}: {interest_rate}')" - } - }, - { - "name": "US Interest Rate", - "shortDescription": "Primary credit rate from the Federal Open Market Committee (FOMC)", - "history": "January 2003", - "reach": "1 Country: US", - "url": "us-interest-rate", - "examples": { - "history": "historical_interest_rate = self.risk_free_interest_rate_model.get_interest_rate(self.time - timedelta(30))", - "research-history": "historical_interest_rate = qb.risk_free_interest_rate_model.get_interest_rate(qb.time - timedelta(30))", - "usage": "interest_rate = self.risk_free_interest_rate_model.get_interest_rate(self.time)" - } - }, - { - "name": "Macroeconomics Indicators", - "shortDescription": "39 Macroeconomic Indicators data for 249 countries/regions, including the date, value, and frequency.", - "history": "January 1998", - "reach": "39 Indicators, 249 Countries/Regions", - "url": "eodhd-macro-indicators", - "examples": { - "init": "self._macro_indicator = self.add_data(EODHDMacroIndicators, EODHD.MacroIndicators.UnitedStates.GDP_CURRENT_USD).symbol", - "history": "history = self.history[EODHDMacroIndicators](self._macro_indicator, timedelta(365)))", - "research-history": "history = qb.history(macro_indicator, timedelta(365), flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._macro_indicator):\n data_point = slice[self._macro_indicator]\n self.log(f'{data_point.indicator} of {data_point.country} at {data_point.time}: {data_point.value}')" - } - }, - { - "name": "Upcoming Dividends", - "shortDescription": "Alert for upcoming dividend events of primary US Equities common shares with dividend important dates, and dividend per share.", - "history": "January 2015", - "reach": "27,500 US Equities", - "url": "eodhd-upcoming-dividends", - "examples": { - "init": "self._upcoming_dividends = self.add_data(EODHDUpcomingDividends, 'dividends').symbol", - "history": "history = self.history[EODHDUpcomingDividends](timedelta(100))", - "universe-init": "self._universe = self.add_universe(EODHDUpcomingDividends, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, dividends: List[EODHDUpcomingDividends]) -> List[Symbol]:\n return [d.symbol for d in dividends if d.dividend_date <= self.time + timedelta(1) and d.dividend > 0.05]", - "research-history": "qb.history(upcoming_dividends, timedelta(100))", - "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_dividends = slice.get(EODHDUpcomingDividends)\n if upcoming_dividends and self._upcoming_dividends in upcoming_dividends:\n data_point = upcoming_dividends[self._upcoming_dividends]\n self.log(f'{self._upcoming_dividends} dividend at {data_point.dividend_date} per share ${data_point.dividend}')" - } - }, - { - "name": "Commitments of Traders", - "shortDescription": "Weekly positions of commercial hedgers, large speculators, and small traders across US futures markets, published by the CFTC", - "history": "January 1998", - "reach": "942 Futures Markets", - "url": "cftc-cot", - "examples": { - "init": "self._legacy = self.add_data(CFTCLegacy, CFTC.Markets.E_MINI_SP_500, Resolution.DAILY).symbol", - "history": "history = self.history(self._legacy, 100, Resolution.DAILY)", - "research-history": "history = qb.history(legacy, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._legacy):\n data_point = slice[self._legacy]\n if data_point.non_commercial_net is not None:\n self.log(f'{self._legacy} non-commercial net at {slice.time}: {data_point.non_commercial_net}')" - } - }, - { - "name": "Regulation SHO", - "shortDescription": "Daily off-exchange short sale volume for US Equities, reported to FINRA under Regulation SHO.", - "history": "August 2018", - "reach": "22,073 US Equities", - "url": "finra-reg-sho", - "examples": { - "init": "equity.short_volume_symbol = self.add_data(FINRAShortSaleVolume, equity.symbol).symbol", - "history": "history = self.history(equity.short_volume_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(FINRAShortSaleVolumeUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[FINRAShortSaleVolumeUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.short_volume_ratio is not None and d.short_volume_ratio > 0.5]", - "research-history": "history = qb.history(equity.short_volume_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.short_volume_symbol):\n data_point = slice[equity.short_volume_symbol]\n self.log(f'{equity.short_volume_symbol} short volume at {slice.time}: {data_point.short_volume}')" - } - }, - { - "name": "OTC Transparency", - "shortDescription": "Off-exchange trading volume and short interest for US Equities, reported to FINRA.", - "history": "January 2017", - "reach": "59,712 US Equities", - "url": "finra-otc-transparency", - "examples": { - "init": "equity.short_interest_symbol = self.add_data(FINRAShortInterest, equity.symbol).symbol", - "history": "history = self.history(equity.short_interest_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(FINRAShortInterestUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[FINRAShortInterestUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.days_to_cover is not None and d.days_to_cover > 5]", - "research-history": "history = qb.history(equity.short_interest_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.short_interest_symbol):\n data_point = slice[equity.short_interest_symbol]\n self.log(f'{equity.short_interest_symbol} days to cover at {slice.time}: {data_point.days_to_cover}')" - } - }, - { - "name": "GDP by Industry", - "shortDescription": "Quarterly breakdown of US GDP by industry, published by the Bureau of Economic Analysis.", - "history": "January 2005", - "reach": "100 US Industries", - "url": "bea-gdp-by-industry", - "examples": { - "init": "self._manufacturing = self.add_data(BEAGDPByIndustry, BEA.Industries.MANUFACTURING, Resolution.DAILY).symbol", - "history": "history = self.history(self._manufacturing, 100, Resolution.DAILY)", - "research-history": "history = qb.history(manufacturing, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._manufacturing):\n data_point = slice[self._manufacturing]\n self.log(f'{self._manufacturing} value added at {slice.time}: {data_point.value_added}')" - } - }, - { - "name": "US Electricity", - "shortDescription": "Demand and generation information for the US power grid.", - "history": "January 2019", - "reach": "81 Balancing Authorities", - "url": "eia-us-electricity", - "examples": { - "init": "self._pjm = self.add_data(EIAElectricity, EIA.BalancingAuthorities.PJM, Resolution.DAILY).symbol", - "history": "history = self.history(self._pjm, 100, Resolution.DAILY)", - "research-history": "history = qb.history(pjm, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._pjm):\n data_point = slice[self._pjm]\n if data_point.demand is not None:\n self.log(f'{self._pjm} demand at {slice.time}: {data_point.demand}')" - } - }, - { - "name": "Euro Yield Curve", - "shortDescription": "Spot, par and forward euro area government bond yield curves at ten maturities, published daily by the European Central Bank", - "history": "September 2004", - "reach": "6 Yield Curves", - "url": "ecb-euro-yield-curve", - "examples": { - "init": "self._curve = self.add_data(ECBYieldCurve, ECB.YieldCurves.AAA_SPOT, Resolution.DAILY).symbol", - "history": "history = self.history(self._curve, timedelta(365), Resolution.DAILY)", - "research-history": "history = qb.history(curve, timedelta(365), Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._curve):\n data_point = slice[self._curve]\n if data_point.ten_year is not None:\n self.log(f'{self._curve} 10Y at {slice.time}: {data_point.ten_year}')" - } - }, - { - "name": "Policy Rates", - "shortDescription": "Daily ECB policy rates and the euro short-term rate for the euro area, published by the European Central Bank", - "history": "January 1999", - "reach": "1 Euro Area Series", - "url": "ecb-policy-rates", - "examples": { - "init": "self._rates = self.add_data(ECBPolicyRates, ECB.PolicyRates.EURO_AREA).symbol", - "history": "history = self.history(self._rates, timedelta(365), Resolution.DAILY)", - "research-history": "history = qb.history(rates, timedelta(365), Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._rates):\n data_point = slice[self._rates]\n self.log(f'{self._rates} deposit facility rate at {slice.time}: {data_point.deposit_facility_rate}')" - } - }, - { - "name": "Systemic Stress", - "shortDescription": "Composite indicator of systemic stress across 14 economies, published weekly by the European Central Bank", - "history": "January 1980", - "reach": "14 Economies", - "url": "ecb-systemic-stress", - "examples": { - "init": "self._euro_area = self.add_data(ECBSystemicStress, ECB.StressAreas.EURO_AREA).symbol", - "history": "history = self.history(self._euro_area, timedelta(365), Resolution.DAILY)", - "research-history": "history = qb.history(euro_area, timedelta(365), Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._euro_area):\n data_point = slice[self._euro_area]\n self.log(f'{self._euro_area} composite stress at {slice.time}: {data_point.composite}')" - } - }, - { - "name": "Patent Maintenance", - "shortDescription": "Patent renewals and abandonments for listed companies, recorded by the US Patent and Trademark Office and published weekly", - "history": "April 1985", - "reach": "2,896 US Equities", - "url": "uspto-patent-maintenance", - "examples": { - "init": "equity.patents_symbol = self.add_data(USPTOPatentMaintenance, equity.symbol).symbol", - "history": "history = self.history(equity.patents_symbol, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(USPTOPatentMaintenanceUniverse, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, alt_coarse: List[USPTOPatentMaintenanceUniverse]) -> List[Symbol]:\n renewing = [d for d in alt_coarse if d.net_maintenance_change is not None and d.net_maintenance_change > 0]\n return [d.symbol for d in sorted(renewing, key=lambda d: d.net_maintenance_change)[-10:]]", - "research-history": "history = qb.history(equity.patents_symbol, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.patents_symbol):\n data_point = slice[equity.patents_symbol]\n self.log(f'{equity.patents_symbol} patents expired at {slice.time}: {data_point.patents_expired}')" - } - }, - { - "name": "US Energy Information Administration (EIA)", - "shortDescription": "Supply and demand information for US Crude Products.", - "history": "January 1991", - "reach": "190 Datasets", - "url": "quantconnect-us-energy-information-agency", - "examples": { - "init": "self._us_energy = self.add_data(USEnergy, USEnergy.Petroleum.UnitedStates.WEEKLY_NET_IMPORTS_OF_TOTAL_PETROLEUM_PRODUCTS).symbol", - "history": "history = self.history(self._us_energy, 100, Resolution.DAILY)", - "research-history": "history = qb.history(us_energy, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._us_energy):\n data_point = slice[self._us_energy]\n self.log(f'{self._us_energy} value at {slice.time}: {data_point.value}')" - } - }, - { - "name": "US Treasury Yield Curve", - "shortDescription": "Yield curve rates for US Government bonds over all common maturity dates. The data is scraped from the US Treasury website.", - "history": "January 1990", - "reach": "US Daily Treasury Yield Rates", - "url": "us-treasury-yield-curve", - "examples": { - "init": "self._yield_curve = self.add_data(USTreasuryYieldCurveRate, 'USTYCR').symbol", - "history": "history = self.history(self._yield_curve, 100, Resolution.DAILY)", - "research-history": "history = qb.history(yield_curve, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._yield_curve):\n data_point = slice[self._yield_curve]\n self.log(f'{self._yield_curve} one month at {slice.time}: {data_point.one_month}')" - } - }, - { - "name": "VIX Central Contango", - "shortDescription": "Contango rates over time for the VIX Contract. The data is provided by VIXCentral and cached by QuantConnect.", - "history": "June 2010", - "reach": "1 Dataset", - "url": "quantconnect-vixcentral-contango", - "examples": { - "init": "self._vix_contango = self.add_data(VIXCentralContango, 'VX', Resolution.DAILY).symbol", - "history": "history = self.history(self._vix_contango, 100, Resolution.DAILY)", - "research-history": "history = self.history(vix_contango, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._vix_contango):\n data_point = slice[self._vix_contango]\n self.log(f'{self._vix_contango} front month at {slice.time}: {data_point.front_month}')" - } - }, - { - "name": "Cash Indices", - "shortDescription": "Price data for 125 US Cash indices and 2 international indices (HSI and SX5E). This data provides the underlying price for Index Options of NDX, SPX, RUT, and VIX.", - "history": "January 1998", - "reach": "125 US and 3 International Indices", - "url": "quantconnect-cash-indices", - "examples": { - "init": "self._index = self.add_index('VIX')", - "history": "history = self.history(self._index.symbol, 100, Resolution.DAILY)", - "research-history": "history = qb.history(index, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._index.symbol in slice.bars:\n trade_bar = slice.bars[self._index.symbol]\n self.log(f'{self._index.symbol} close at {slice.time}: {trade_bar.close}')" - } - }, - { - "name": "Bitcoin Metadata", - "shortDescription": "Bitcoin processing fundamental data such as hash rate, miner revenue, and number of transactions.", - "history": "Jan 2009", - "reach": "Bitcoin Blockchain", - "url": "bitcoin-metadata", - "examples": { - "init": "self._btcusd.metadata = self.add_data(BitcoinMetadata, self._btcusd.symbol).symbol", - "history": "history = self.history(self._btcusd.metadata, 100, Resolution.DAILY)", - "research-history": "history = qb.history(bitcoin_metadata, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._btcusd.metadata):\n data_point = slice[self._btcusd.metadata]\n self.log(f'{self._btcusd.metadata} miner revenue at {slice.time}: {data_point.miners_revenue}')" - } - }, - { - "name": "Crypto Market Cap", - "shortDescription": "Cryptocurrencies market cap data is provided by CoinGecko and cached by QuantConnect.", - "history": "28 April 2013", - "reach": "620 Cryptocurrencies", - "url": "coingecko-crypto-marketcap", - "examples": { - "init": "self._coin_gecko = self.add_data(CoinGecko, 'BTC').symbol", - "history": "history = self.history(self._coin_gecko, 100, Resolution.DAILY)", - "universe-init": "self._universe = self.add_universe(CoinGeckoUniverse, 'CoinGeckoUniverse', Resolution.DAILY, self._select_assets)", - "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", - "universe-filter": "def _select_assets(self, data: List[CoinGecko]) -> List[Symbol]:\n for datum in data:\n self.debug(f'{datum.coin},{datum.market_cap},{datum.price}')\n\n # Select the coins that our brokerage supports and have a quote currency that matches\n # our account currency.\n tradable_coins = [d for d in data if d.coin + self.account_currency in self._market_pairs]\n # Select the largest coins and create their Symbol objects.\n return [\n c.create_symbol(self._market, self.account_currency)\n for c in sorted(tradable_coins, key=lambda x: x.market_cap)[-10:]\n ]", - "research-history": "history = self.history(coin_gecko, 100, Resolution.DAILY)", - "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._coin_gecko):\n data_point = slice[self._coin_gecko]\n self.log(f'{self._coin_gecko} market cap at {slice.time}: {data_point.market_cap}')" - } - }, - { - "name": "USDA Fruit And Vegetables", - "shortDescription": "Retail price estimates for 75+ commonly consumed fresh and processed fruits and vegetables", - "history": "January 2014", - "reach": "75 Agricultural Products", - "url": "usda-fruit-and-vegetables", - "examples": { - "init": "self._usda_apples = self.add_data(USDAFruitAndVegetables, USDAFruitAndVegetable.Symbols.Apples, Resolution.DAILY).symbol", - "history": "history = self.history(self._usda_apples, datetime(2013, 1, 1), self.time, Resolution.DAILY)", - "research-history": "history = qb.history(usda_apples, datetime(2013, 1, 1), self.time, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._usda_apples):\n collection = slice[self._usda_apples]\n for data in collection.data:\n self.log(f'{self._usda_apples} [{data.form}]: ${data.price_per_cup_equivalent}')" - } - }, - { - "name": "US Bureau of Labor Statistics (BLS)", - "shortDescription": "Statistical results of many surveys conducted and released by the US government.", - "history": "2000", - "reach": "4 Surveys, 50 Series", - "url": "us-bureau-of-labor-statistics", - "examples": { - "init": "self._cpi = self.add_data(BLSEconomicSurveysCpi, 'CPI').symbol", - "history": "history = self.history(self._cpi, 100, Resolution.DAILY)", - "research-history": "history = qb.history(cpi, 100, Resolution.DAILY)", - "usage": "def on_data(self, slice: Slice) -> None:\n if self._cpi in slice:\n cpi = slice[self._cpi]\n self.log(f'{self._cpi} all items at {slice.time}: {cpi.all_items}')" - } - } - ] +{ + "list": [ + { + "name": "US Equity Security Master", + "shortDescription": "Corporate action data source for splits, dividends, mergers, acquisitions, IPOs, and delistings.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "quantconnect-us-equity-security-master", + "examples": { + "init": "self._equity = self.add_equity('AAPL', Resolution.DAILY)", + "history": "split_history = self.history[Split](self._equity, timedelta(5*365))", + "research-history": "split_history = qb.history(Split, equity, timedelta(5*365))", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.splits.contains_key(self._equity.symbol):\n split = slice.splits[self._equity.symbol]\n self.log(f'Split: {split.symbol}\\t{split.split_factor}\\t{split.reference_price}')" + } + }, + { + "name": "Fama French", + "shortDescription": "Daily returns of the market, size, value, profitability, investment, and momentum factors for US equities", + "history": "January 1998", + "reach": "6 US Equity Market Factors", + "url": "quantconnect-fama-french", + "examples": { + "init": "self._fama_french = self.add_data(FamaFrench, 'FF', Resolution.DAILY).symbol", + "history": "history = self.history(self._fama_french, 100, Resolution.DAILY)", + "research-history": "history = qb.history(fama_french, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._fama_french):\n data_point = slice[self._fama_french]\n self.log(f'{self._fama_french} momentum at {slice.time}: {data_point.momentum}')" + } + }, + { + "name": "Surveys", + "shortDescription": "Monthly confidence surveys of households, industry, construction, retail and services across 35 European economies, published by Eurostat", + "history": "January 1980", + "reach": "35 European Economies", + "url": "eurostat-surveys", + "examples": { + "init": "self._consumer = self.add_data(EurostatConsumerSurvey, Eurostat.Economies.GERMANY, Resolution.DAILY).symbol", + "history": "history = self.history(self._consumer, timedelta(5*365), Resolution.DAILY)", + "research-history": "history = qb.history(consumer, timedelta(5*365), Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._consumer):\n data_point = slice[self._consumer]\n if data_point.consumer_confidence is not None:\n self.log(f'{self._consumer} consumer confidence at {slice.time}: {data_point.consumer_confidence}')" + } + }, + { + "name": "Macro Indicators", + "shortDescription": "Consumer prices, industrial production, producer prices, retail trade, unemployment and GDP across 51 economies, published by Eurostat", + "history": "January 1975", + "reach": "51 Economies", + "url": "eurostat-macro-indicators", + "examples": { + "init": "self._prices = self.add_data(EurostatConsumerPrices, Eurostat.Economies.GERMANY, Resolution.DAILY).symbol", + "history": "history = self.history(self._prices, timedelta(5*365), Resolution.DAILY)", + "research-history": "history = qb.history(prices, timedelta(5*365), Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._prices):\n data_point = slice[self._prices]\n if data_point.all_items is not None:\n self.log(f'{self._prices} HICP at {slice.time}: {data_point.all_items}')" + } + }, + { + "name": "US Futures Security Master", + "shortDescription": "Rolling reference data for popular CME Futures contracts.", + "history": "May 2009", + "reach": "157 Future Contracts", + "url": "quantconnect-us-futures-security-master", + "examples": { + "init": "future = self.add_future(Futures.Indices.SP_500_E_MINI, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.BACKWARDS_RATIO, contract_depth_offset=0)", + "history": "history = self.history[SymbolChangedEvent](future.symbol, timedelta(365))", + "research-history": "history = qb.history(SymbolChangedEvent, future.symbol, datetime(2023, 1, 1), datetime(2025, 1, 1))", + "usage": "def on_data(self, slice: Slice) -> None:\n changed_event = slice.symbol_changed_events.get(future.symbol)\n if changed_event:\n old_symbol = changed_event.old_symbol\n new_symbol = self.add_future_contract(changed_event.new_symbol).symbol\n self.log(f'Rollover at {self.time}: {old_symbol} -> {new_symbol}')" + } + }, + { + "name": "Spectral Tick Flow Signal", + "shortDescription": "Daily signals of fourier-transformed intraday trade-flow patterns", + "history": "Jun 2009", + "reach": "500 US Equities", + "url": "spectral-tick-flow-signal", + "examples": { + "init": "equity.spectral_symbol = self.add_data(SpectralTickFlowSignal, equity.symbol).symbol", + "history": "history = self.history(equity.spectral_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(SpectralTickFlowSignalUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[SpectralTickFlowSignalUniverse]) -> List[Symbol]:\n confirmed = [d for d in alt_coarse if d.signature_count > 0]\n return [d.symbol for d in sorted(confirmed, key=lambda d: d.execution_score)[-10:]]", + "research-history": "history = qb.history(equity.spectral_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.spectral_symbol):\n data_point = slice[equity.spectral_symbol]\n self.log(f'{equity.spectral_symbol} execution score at {slice.time}: {data_point.execution_score}')" + } + }, + { + "name": "US Equity Coarse Universe", + "shortDescription": "Universe of all US Equities with closing price and volume for Coarse Universe Selection.", + "history": "January 1998", + "reach": "30,000 US Equities", + "url": "quantconnect-us-coarse-universe-constituents", + "examples": { + "universe-init": "self._universe = self.add_universe(self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, fundamental: List[Fundamental]) -> List[Symbol]:\n sorted_by_dollar_volume = sorted(fundamental, key=lambda x: x.dollar_volume, reverse=True)[:3]\n for cf in sorted_by_dollar_volume:\n self.debug(f'{cf.end_time} :: {cf.symbol} : {cf.adjusted_price} :: {cf.dollar_volume}')\n\n return [x.symbol for x in sorted_by_dollar_volume]", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "fundamentals = self.securities[symbol].fundamentals" + } + }, + { + "name": "US ETF Constituents", + "shortDescription": "Equity constituent components and weightings for US ETF listings. This data is ideal for universe selection without selection bias.", + "history": "June 2009", + "reach": "2,650 US ETF Listings", + "url": "quantconnect-us-etf-constituents", + "examples": { + "universe-init": "self._universe = self.add_universe(self.universe.etf('SPY', self.universe_settings, self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, constituents: List[ETFConstituentUniverse]) -> List[Symbol]:\n for c in constituents:\n self.debug(f'{c.end_time} :: {c.last_update} :: {c.weight} :: {c.shares_held} :: {c.market_value}')\n return [x.symbol for x in constituents]", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "for c in constituents:\n self.debug(f'{c.end_time} :: {c.symbol} :: {c.weight} :: {c.shares_held} :: {c.market_value}')" + } + }, + { + "name": "International Future Universe", + "shortDescription": "FESX, HSI, and NKD Futures universe for fast future contract selection with prices, expiration dates and open interests", + "history": "July 1998", + "reach": "5 Contracts", + "url": "quantconnect-international-future-universe", + "examples": { + "universe-init": "self._future = self.add_future(Futures.Indices.HANG_SENG)", + "universe-history": "history = self.history(FutureUniverse, self._future.symbol, 5, flatten=True)", + "universe-filter": "self._future.set_filter(0, 90)", + "research-universe-history": "history = qb.history(FutureUniverse, future.symbol, datetime(2025, 1, 1), datetime(2025, 4, 1), flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.futures_chains.get(self._future.symbol)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" + } + }, + { + "name": "US Future Option Universe", + "shortDescription": "Future Options universe for fast option contract selection.", + "history": "January 2012", + "reach": "15 Monthly Future Contracts", + "url": "quantconnect-us-future-option-universe", + "examples": { + "universe-init": "self.add_future_option(self._future.symbol, self._option_filter)", + "universe-history": "history = self.history(Symbol.create_canonical_option(self._future.mapped), timedelta(10), flatten=True)", + "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by strike, and expiration\n return universe.strikes(-1, 1)", + "research-universe-history": "history = qb.history(Symbol.create_canonical_option(future.mapped), datetime(2020, 6, 1), datetime(2020, 6, 5), flatten=True)", + "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" + } + }, + { + "name": "US Future Universe", + "shortDescription": "Futures universe for fast future contract selection with prices, expiration dates and open interests", + "history": "May 2009", + "reach": "157 Most Liquid Futures", + "url": "quantconnect-us-future-universe", + "examples": { + "universe-init": "self._future = self.add_future(Futures.Metals.GOLD)", + "universe-history": "history = self.history[FutureUniverse](self._future.symbol, 5)", + "universe-filter": "self._future.set_filter(lambda universe: universe.standards_only().front_month())", + "research-universe-history": "history = qb.history[FutureUniverse](future.symbol, datetime(2025, 1, 1), datetime(2025, 4, 1))", + "usage": "for chain in history:\n for contract in chain:\n self.log(f'{contract.symbol} open interest: {contract.open_interest}')" + } + }, + { + "name": "US Equity Option Universe", + "shortDescription": "Precalculated daily greeks for fast option-contract selection.", + "history": "January 2012", + "reach": "4,000 Equity Options", + "url": "quantconnect-us-equity-option-universe", + "examples": { + "universe-init": "self._option = self.add_option('GOOG')", + "universe-history": "history = self.history[OptionUniverse](self._option.symbol, timedelta(3))", + "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by greeks, implied volatility, open interest:\n return (universe\n .delta(0.5, 1.5)\n .gamma(0.0001, 0.0006)\n .vega(0.01, 1.5)\n .theta(-2.0, -0.5)\n .rho(0.5, 3.0)\n .implied_volatility(1, 3)\n .open_interest(100, 500))", + "research-universe-history": "history = qb.history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5), flatten=True)", + "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" + } + }, + { + "name": "US Index Option Universe", + "shortDescription": "Precalculated Daily Greeks for Fast Option Selection", + "history": "January 2012", + "reach": "7 Index Options", + "url": "quantconnect-us-index-option-universe", + "examples": { + "universe-init": "self._option = self.add_index_option(self.index_symbol)", + "universe-history": "history = self.history(self._option.symbol, timedelta(3))", + "universe-filter": "def _option_filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:\n # Contracts can be filtered by greeks, implied volatility, open interest:\n return (universe\n .delta(0.5, 1.5)\n .gamma(0.0001, 0.0006)\n .vega(0.01, 1.5)\n .theta(-2.0, -0.5)\n .rho(0.5, 3.0)\n .implied_volatility(1, 3)\n .open_interest(100, 500))", + "research-universe-history": "history = qb.history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", + "usage": "for chain in history:\n for contract in chain.data:\n delta = contract.greeks.delta\n iv = contract.implied_volatility" + } + }, + { + "name": "US Equities Short Availability", + "shortDescription": "Available shares for open short positions in the US Equity market.", + "history": "January 2018", + "reach": "10,500 US Equities", + "url": "us-equities-short-availability", + "examples": { + "init": "self._equity.set_shortable_provider(InteractiveBrokersShortableProvider())", + "history": "self._equity.shortable_provider.shortable_quantity(self._equity.symbol, self.time - timedelta(1))", + "research-history": "equity.shortable_provider.shortable_quantity(equity.symbol, qb.time - timedelta(1))", + "usage": "shortable_provider = self.securities[self._equity.symbol].shortable_provider\nshortable_quantity = shortable_provider.shortable_quantity(self._equity.symbol, self.time)\nis_shortable = self.shortable(self._equity.symbol, 100)" + } + }, + { + "name": "US Fundamental Data", + "shortDescription": "Corporate Fundamental data for fine universe selection based on industry classification and underlying company performance indicators.", + "history": "January 1998", + "reach": "8,000 US Equities", + "url": "morning-star-us-fundamentals", + "examples": { + "init": "self._equity = self.add_equity('IBM')", + "history": "fundamental_history = self.history[Fundamental](self._equity.symbol, timedelta(30))", + "universe-init": "self._universe = self.add_universe(self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, fundamental: List[Fundamental]) -> List[Symbol]:\n return [f.symbol for f in fundamental if f.price > 10 and f.valuation_ratios.pe_ratio > 30]", + "research-history": "history = qb.get_fundamental(equity.symbol, 'ValuationRatios.pe_ratios', datetime(2021, 1, 1), datetime(2021, 7, 1))", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "fundamentals = self.securities[self._equity.symbol].fundamentals" + } + }, + { + "name": "US Equities", + "shortDescription": "Market data for all US listed and delisted Equities, ETFs, ETNs, ADRs, and Warrants.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "algoseek-us-equities", + "examples": { + "init": "self._equity = self.add_equity('AAPL', Resolution.MINUTE)", + "history": "history = self.history(self._equity.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(equity.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._equity.symbol in slice.bars:\n trade_bar = slice.bars[self._equity.symbol]\n self.log(f'{self._equity.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "US Equity Options", + "shortDescription": "Trade and quote data for US Equity Options contracts.", + "history": "January 2012", + "reach": "4,000 Equity Options", + "url": "algoseek-us-equity-options", + "examples": { + "init": "option_contract = self.add_option_contract(contract.symbol)", + "history": "history = self.history(option_contract.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(option_contract.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.option_chains.get(option_contract.symbol.canonical)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" + } + }, + { + "name": "US Futures", + "shortDescription": "Trade and quote data for the most liquid US Futures across the CME, CBOT, NYMEX, and COMEX markets.", + "history": "May 2009", + "reach": "157 Liquid Futures", + "url": "algoseek-us-futures", + "examples": { + "init": "future_contract = self.add_future_contract(contract.symbol)", + "history": "history = self.history(future_contract.symbol, 100, Resolution.MINUTE)", + "universe-init": "future = self.add_future(Futures.Metals.GOLD)", + "universe-history": "history = self.history(self.future_symbol, start=self.time - timedelta(days=15), end=self.time, resolution=Resolution.MINUTE, fill_forward=False, extended_market_hours=False, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.RAW, contract_depth_offset=0)", + "universe-filter": "future.set_filter(0, 90)", + "research-history": "history = qb.history(future_contract.symbol, 100, Resolution.MINUTE)", + "research-universe-history": "history = qb.future_history(future.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", + "usage": "def on_data(self, slice: Slice) -> None:\n if future_contract.symbol in slice.bars:\n trade_bar = slice.bars[future_contract.symbol]\n self.log(f'{future_contract.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "US Future Options", + "shortDescription": "Future Options data for the most liquid US CME Future commodity contracts.", + "history": "January 2012", + "reach": "15 Monthly Future Contracts", + "url": "algoseek-us-future-options", + "examples": { + "init": "option = self.add_future_option_contract(contract.symbol)", + "history": "history = self.history(option.symbol, 100, Resolution.MINUTE)", + "universe-init": "self.add_future_option(future.symbol, lambda universe: universe.strikes(-5, +5))", + "universe-history": "history = self.history(Symbol.create_canonical_option(self._future.mapped), timedelta(10), flatten=True)", + "universe-filter": "lambda universe: universe.strikes(-5, +5)", + "research-history": "history = qb.history(option.symbol, 100, Resolution.MINUTE)", + "research-universe-history": "history = qb.option_history(future_contract_symbol, start_date, future_contract_symbol.id.date, Resolution.HOUR)", + "usage": "def on_data(self, slice: Slice) -> None:\n for canonical_fop_symbol, chain in slice.option_chains.items():\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" + } + }, + { + "name": "US Index Options", + "shortDescription": "European Option contract data for 3 US Indices: SPX, VIX, and NDX.", + "history": "January 2012", + "reach": "7 Index Options", + "url": "algoseek-us-index-options", + "examples": { + "init": "index_option = self.add_index_option_contract(contract.symbol)", + "history": "history = self.history(index_option.symbol, 100, Resolution.MINUTE)", + "universe-init": "self._option = self.add_index_option('VIX').symbol", + "universe-history": "history = self.history(self._option.symbol, 5, flatten=True)", + "universe-filter": "self._option.set_filter(-2, 2, 0, 90)", + "research-history": "history = qb.history(contract.symbol, 100, Resolution.MINUTE)", + "research-universe-history": "history = qb.option_history(option.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", + "usage": "def on_data(self, slice: Slice) -> None:\n chain = slice.option_chains.get(index_option.symbol.canonical)\n if chain:\n for contract in chain:\n self.log(f'{contract.symbol} price at {slice.time}: {contract.last_price}')" + } + }, + { + "name": "International Futures", + "shortDescription": "Trade and quote data for FESX, HSI, and NKD Future Contracts.", + "history": "July 1998", + "reach": "5 Contracts", + "url": "tickdata-international-futures", + "examples": { + "init": "future_contract = self.add_future_contract(contract.symbol)", + "history": "history = self.history(future_contract.symbol, timedelta(10))", + "universe-init": "self._future = self.add_future(Futures.Indices.HANG_SENG)", + "universe-history": "history = self.history(self._future.symbol, start=self.time - timedelta(days=15), end=self.time, resolution=Resolution.MINUTE, fill_forward=False, extended_market_hours=False, data_mapping_mode=DataMappingMode.OPEN_INTEREST, data_normalization_mode=DataNormalizationMode.RAW, contract_depth_offset=0)", + "universe-filter": "self._future.set_filter(0, 90)", + "research-history": "history = qb.history(future_contract.symbol, timedelta(10))", + "research-universe-history": "history = qb.future_history(future.symbol, datetime(2020, 6, 1), datetime(2020, 6, 5))", + "usage": "def on_data(self, slice: Slice) -> None:\n if future_contract.symbol in slice.bars:\n trade_bar = slice.bars[future_contract.symbol]\n self.log(f'{future_contract.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Benzinga News Feed", + "shortDescription": "Financial articles and news publications condensed into a news feed with titles and article bodies for sentiment analysis", + "history": "1st January 2016", + "reach": "1,250 Posts/Day, 8,000 Stocks", + "url": "benzinga-news-feed", + "examples": { + "init": "equity.benzinga_symbol = self.add_data(BenzingaNews, equity.symbol).symbol", + "history": "history = self.history(equity.benzinga_symbol, 10, Resolution.DAILY)", + "research-history": "history = qb.history(benzinga_symbol, timedelta(10))", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.benzinga_symbol):\n article = slice[equity.benzinga_symbol]\n self.log(f'{equity.benzinga_symbol} title at {slice.time}: {article.title}')" + } + }, + { + "name": "Tiingo News Feed", + "shortDescription": "News releases from 120 different news providers for sentiment analysis.", + "history": "January 2014", + "reach": "10,000 US Equities", + "url": "tiingo-news-feed", + "examples": { + "init": "equity.tiingo_symbol = self.add_data(TiingoNews, equity.symbol).symbol", + "history": "history = self.history(equity.tiingo_symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(tiingo_symbol, timedelta(10))", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.tiingo_symbol):\n article = slice[equity.tiingo_symbol]\n self.log(f'{equity.tiingo_symbol} description at {slice.time}: {article.description}')" + } + }, + { + "name": "Upcoming Earnings", + "shortDescription": "Alert for upcoming earnings report of US Equities with report date, report time, and earnings estimation.", + "history": "January 1998", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-earnings", + "examples": { + "init": "self._upcoming_earnings = self.add_data(EODHDUpcomingEarnings, 'earnings').symbol", + "history": "history = self.history[EODHDUpcomingEarnings](self._upcoming_earnings, timedelta(100))", + "universe-init": "self._universe = self.add_universe(EODHDUpcomingEarnings, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, earnings: List[EODHDUpcomingEarnings]) -> List[Symbol]:\n return [d.symbol for d in earnings if d.report_date <= self.time + timedelta(3) and d.estimate > 0]", + "research-history": "history = qb.history(upcoming_earnings, timedelta(100))", + "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_earnings = slice.get(EODHDUpcomingEarnings).get(self._upcoming_earnings)\n if upcoming_earnings:\n self.log(f'{self._upcoming_earnings} reports at {upcoming_earnings.report_date} with estimated EPS {upcoming_earnings.estimate}')" + } + }, + { + "name": "Upcoming IPOs", + "shortDescription": "Alert for upcoming IPO events of primary US Equities with IPO start/filing/amended date, IPO deal type. IPO prices, and number of shares.", + "history": "February 2013", + "reach": "US Equities", + "url": "eodhd-upcoming-ipos", + "examples": { + "init": "self._upcoming_ipos = self.add_data(EODHDUpcomingIPOs, 'ipos').symbol", + "history": "history_bars = self.history[EODHDUpcomingIPOs](self._upcoming_ipos, timedelta(100))", + "universe-init": "self._universe = self.add_universe(EODHDUpcomingIPOs, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, ipos: List[EODHDUpcomingIPOs]) -> List[Symbol]:\n # confirmed non-penny stock IPO that launches within 7 days.\n return [d.symbol for d in ipos if d.deal_type in [DealType.EXPECTED, DealType.PRICED] and d.ipo_date and min(x for x in [d.lowest_price, d.highest_price, d.offer_price] if x) > 1]", + "research-history": "history = qb.history(upcoming_ipos, timedelta(100))", + "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n for equity_symbol, data_point in slice.get(EODHDUpcomingIPOs).items():\n self.log(f'{equity_symbol} IPO at {data_point.ipo_date} price {data_point.offer_price} shares {data_point.shares}')" + } + }, + { + "name": "Upcoming Splits", + "shortDescription": "Alert for upcoming split and reverse split events of primary US Equities common shares with split date, and split factor.", + "history": "January 2010", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-splits", + "examples": { + "init": "self._upcoming_splits = self.add_data(EODHDUpcomingSplits, 'splits').symbol", + "history": "history = self.history[EODHDUpcomingSplits](self._upcoming_splits, timedelta(100))", + "universe-init": "self._universe = self.add_universe(EODHDUpcomingSplits, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, splits: List[EODHDUpcomingSplits]) -> List[Symbol]:\n return [d.symbol for d in splits if d.split_date <= self.time + timedelta(3) and d.split_factor > 1]", + "research-history": "history = qb.history(upcoming_splits, timedelta(100))", + "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_splits = slice.get(EODHDUpcomingSplits)\n if upcoming_splits and self._upcoming_splits in upcoming_splits:\n data_point = upcoming_splits[self._upcoming_splits]\n self.log(f'{self._upcoming_splits} will split at {data_point.split_date} factor {data_point.split_factor}')" + } + }, + { + "name": "Economic Events", + "shortDescription": "Alert for upcoming economic events globally, including the date and estimates of macroeconomic indicator annoucement, special dates, etc.", + "history": "January 2019", + "reach": "115 Countries", + "url": "eodhd-economic-events", + "examples": { + "init": "self._economic_events = self.add_data(EODHDEconomicEvents, ticker).symbol", + "history": "history = self.history[EODHDEconomicEvents](self._economic_events, 100, Resolution.DAILY)", + "research-history": "self.history(EODHDEconomicEvents, economic_events, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n events = slice.get(EODHDEconomicEvents).get(self._economic_events)\n if events:\n for event in events:\n self.log(f'{event.event_type} of {event.country} at {event.event_time} estimate {event.estimate}')" + } + }, + { + "name": "US Congress Trading", + "shortDescription": "Trading activity of Congresspeople for potential insider trading signals based on early access to regulation changes.", + "history": "January 2016", + "reach": "1,800 US Equities", + "url": "quiver-quantitative-congress-trading", + "examples": { + "init": "equity.congress_symbol = self.add_data(QuiverCongress, equity.symbol).symbol", + "history": "history = self.history(equity.congress_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(QuiverQuantCongressUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverQuantCongresssUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.amount > 200000 and d.transaction == OrderDirection.BUY]", + "research-history": "history = qb.history(quiver_congress_symbol, 60, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.congress_symbol):\n data_points = slice[equity.congress_symbol]\n for data_point in data_points:\n self.log(f'{equity.congress_symbol} transaction amount at {slice.time}: {data_point.amount}')" + } + }, + { + "name": "Corporate Buybacks", + "shortDescription": "US Equity buyback announcements and transactions scraped from SEC reports and secondary sources.", + "history": "May 2015", + "reach": "3,000 US Equities", + "url": "smart-insider-corporate-buybacks", + "examples": { + "init": "equity.insider_intention = self.add_data(SmartInsiderIntention, equity.symbol).symbol", + "history": "history = self.history(equity.insider_intention, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(SmartInsiderIntentionUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY)", + "universe-filter": "def _select_assets(self, alt_coarse: List[SmartInsiderIntentionUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.percentage > 0.005\n and d.usd_market_cap > 100000000]", + "research-history": "history = qb.history(insider_intention_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.insider_intention):\n data_point = slice[equity.insider_intention]\n self.log(f'{equity.insider_intention} intention amount at {slice.time}: {data_point.amount}')" + } + }, + { + "name": "US Regulatory Alerts - Financial Sector", + "shortDescription": "RegAlytics is the leading provider of daily regulatory updates. They source data from over 5,000 regulators.", + "history": "January 2020", + "reach": "400,000 Alerts", + "url": "regalytics-us-regulatory-alerts", + "examples": { + "init": "self._regalytics_symbol = self.add_data(RegalyticsRegulatoryArticles, 'REG').symbol", + "history": "history = self.history(self._regalytics_symbol, 100, Resolution.DAILY, flatten=True)", + "research-history": "history = qb.history(regalytics_symbol, 100, Resolution.DAILY, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._regalytics_symbol):\n data_points = slice[self._regalytics_symbol]\n for data_point in data_points:\n self.log(f'{self._regalytics_symbol} title at {slice.time}: {data_point.title}')" + } + }, + { + "name": "Brain Sentiment Indicator", + "shortDescription": "Proprietary sentiment analysis algorithm for US Equities.", + "history": "August 2016", + "reach": "4,500 US Equities", + "url": "brain-sentiment-indicator", + "examples": { + "init": "equity.brain_sentiment_symbol = self.add_data(BrainSentimentIndicator7Day, equity.symbol).symbol", + "history": "history = self.history(equity.brain_sentiment_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(BrainSentimentIndicatorUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[BrainSentimentIndicatorUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.total_article_mentions7_days > 0\n and d.sentiment7_days]", + "research-history": "history = qb.history(BrainSentimentIndicator30Day, equity.symbol, 30, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.brain_sentiment_symbol):\n data_point = slice[equity.brain_sentiment_symbol]\n self.log(f'{equity.brain_sentiment_symbol} sentiment at {slice.time}: {data_point.sentiment}')" + } + }, + { + "name": "Brain ML Stock Ranking", + "shortDescription": "Proprietary machine learning ranking algorithm for US Equities.", + "history": "January 2010", + "reach": "1,000 US Equities", + "url": "brain-ml-stock-ranking", + "examples": { + "init": "equity.brain_stock_ranking = self.add_data(BrainStockRanking2Day, equity.symbol).symbol", + "history": "history = self.history(equity.brain_stock_rankingl, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(BrainStockRankingUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[BrainStockRankingUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.rank2_days > 0\n and d.rank3_days > 0\n and d.rank5_days > 0]", + "research-history": "history = qb.history(BrainStockRanking2Day, equity.symbol, 30, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.brain_stock_ranking):\n data_point = slice[equity.brain_stock_ranking]\n self.log(f'{equity.brain_stock_ranking} rank at {slice.time}: {data_point.rank}')" + } + }, + { + "name": "Brain Language Metrics on Company Filings", + "shortDescription": "Proprietary NLP algorithm that monitors several language metrics on company reports.", + "history": "January 2010", + "reach": "3,000 US Equities", + "url": "brain-language-metrics-company-filings", + "examples": { + "init": "equity.filing_metrics = self.add_data(BrainCompanyFilingLanguageMetrics10K, equity.symbol).symbol", + "history": "history = self.history(equity.filing_metrics, 365, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(BrainCompanyFilingLanguageMetricsUniverseAll, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[BrainCompanyFilingLanguageMetricsUniverseAll]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.report_sentiment.sentiment > 0\n and d.management_discussion_analyasis_of_financial_condition_and_results_of_operations.sentiment > 0]", + "research-history": "history = qb.history(BrainCompanyFilingLanguageMetrics10K, equity.symbol, 365, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.filing_metrics):\n data_point = slice[equity.filing_metrics]\n self.log(f'{equity.filing_metrics} report sentiment at {slice.time}: {data_point.report_sentiment.sentiment}')" + } + }, + { + "name": "Estimize", + "shortDescription": "Estimates of company financials including EPS, revenues, and macroeconomic indicators based on 100,000+ crowdsourced predictions.", + "history": "January 2011", + "reach": "2,800 US Equities", + "url": "extractalpha-estimize", + "examples": { + "init": "equity.estimize_consensus_symbol = self.add_data(EstimizeConsensus, equity.symbol).symbol", + "history": "history = self.history(equity.estimize_consensus_symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(estimize_consensus_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.estimize_consensus_symbol):\n data_point = slice[equity.estimize_consensus_symbol]\n self.log(f'{equity.estimize_consensus_symbol} mean at {slice.time}: {data_point.mean}')" + } + }, + { + "name": "True Beats", + "shortDescription": "Predictions of EPS and Revenues for US Equities based on expert opinions, peer opinions, and historical performance.", + "history": "January 2000", + "reach": "Over 5,000 US Equities", + "url": "extractalpha-true-beats", + "examples": { + "init": "equity.true_beats_symbol = self.add_data(ExtractAlphaTrueBeats, equity.symbol).symbol", + "history": "history = self.history(equity.true_beats_symbol, 100, Resolution.DAILY, flatten=True)", + "research-history": "history = qb.history(true_beats_symbol, 100, Resolution.DAILY, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.true_beats_symbol):\n data_point = slice[equity.true_beats_symbol]\n self.log(f'{equity.true_beats_symbol} true beat at {slice.time}: {data_point.true_beat}')" + } + }, + { + "name": "Tactical", + "shortDescription": "Likelihood score of short-term price movements driven by technical indicators.", + "history": "January 2000", + "reach": "5,000 US Equities", + "url": "extractalpha-tactical", + "examples": { + "init": "equity.tactical_symbol = self.add_data(ExtractAlphaTacticalModel, equity.symbol).symbol", + "history": "history = self.history(equity.tactical_symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(tactical_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.tactical_symbol):\n data_point = slice[equity.tactical_symbol]\n self.log(f'{equity.tactical_symbol} score at {slice.time}: {data_point.score}')" + } + }, + { + "name": "Cross Asset Model", + "shortDescription": "Scoring algorithm based on put-call spread of Equity Options, volatility skewness, and volume.", + "history": "July 2005", + "reach": "3,000 US Equities", + "url": "extractalpha-cross-asset-model", + "examples": { + "init": "equity.cross_asset_model = self.add_data(ExtractAlphaCrossAssetModel, equity.symbol).symbol", + "history": "history = self.history(equity.cross_asset_model, 100, Resolution.DAILY)", + "research-history": "history = qb.history(cross_asset_model_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.cross_asset_model):\n data_point = slice[equity.cross_asset_model]\n self.log(f'{equity.cross_asset_model} score at {slice.time}: {data_point.score}')" + } + }, + { + "name": "Composite Factor Bundle", + "shortDescription": "Daily proprietary signals for quality, value, momentum, growth, and low volatility factors, which are used by the leading quant funds.", + "history": "January 2003", + "reach": "8,000 US Equities", + "url": "kavout-composite-factor-bundle", + "examples": { + "init": "equity.factor_bundle = self.add_data(KavoutCompositeFactorBundle, equity.symbol).symbol", + "history": "history = self.history(equity.factor_bundle, 100, Resolution.DAILY)", + "research-history": "history = qb.history(factor_bundle_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.factor_bundle):\n data_point = slice[equity.factor_bundle]\n self.log(f'{equity.factor_bundle} momentum at {slice.time}: {data_point.momentum}')" + } + }, + { + "name": "CNBC Trading", + "shortDescription": "CNBC Trading tracks the recommendations made by media personalities on CNBC.", + "history": "December 2020", + "reach": "1,515 US Equities", + "url": "quiver-quantitative-cnbc-trading", + "examples": { + "init": "equity.cnbc_symbol = self.add_data(QuiverCNBCs, equity.symbol).symbol", + "history": "history = self.history(equity.cnbc_symbol, 100, Resolution.DAILY)", + "universe-init": "self._uinverse = self.add_universe(QuiverCNBCsUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverCNBCsUniverse]) -> List[Symbol]:\n cnbc_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in cnbc_data_by_symbol:\n cnbc_data_by_symbol[symbol] = []\n cnbc_data_by_symbol[symbol].append(datum)\n\n # define our selection criteria\n return [symbol for symbol, d in cnbc_data_by_symbol.items()\n if len([x for x in d if x.direction == OrderDirection.BUY]) >= 3]", + "research-history": "history = qb.history(cnbc_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.cnbc_symbol):\n data_points = slice[equity.cnbc_symbol]\n for data_point in data_points:\n self.log(f'{equity.cnbc_symbol} direction at {slice.time}: {data_point.direction}')" + } + }, + { + "name": "US Government Contracts", + "shortDescription": "Use the USASpending.gov API to track government contracts granted to publicly traded companies.", + "history": "October 2019", + "reach": "748 US Equities", + "url": "quiver-quantitative-us-government-contracts", + "examples": { + "init": "equity.govt_contracts = self.add_data(QuiverGovernmentContract, equity.symbol).symbol", + "history": "history = self.history(equity.govt_contracts, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(QuiverGovernmentContractUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coase: List[QuiverGovernmentContractUniverse]) -> List[Symbol]:\n gov_contract_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in gov_contract_data_by_symbol:\n gov_contract_data_by_symbol[symbol] = []\n gov_contract_data_by_symbol[symbol].append(datum)\n\n return [symbol for symbol, d in gov_contract_data_by_symbol.items()\n if len(d) >= 3 and sum([x.amount for x in d]) > 50000]", + "research-history": "history = qb.history(govt_contracts_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.govt_contracts):\n data_points = slice[equity.govt_contracts]\n for data_point in data_points:\n self.log(f'{equity.govt_contracts} amount at {slice.time}: {data_point.amount}')" + } + }, + { + "name": "Corporate Lobbying", + "shortDescription": "Lobbying activities of companies to political or legislative figures, including clients, issues concerned, and amount paid.", + "history": "January 1999", + "reach": "1,418 US Equities", + "url": "quiver-quantitative-corporate-lobbying", + "examples": { + "init": "equity.lobbying_symbol = self.add_data(QuiverLobbyings, equity.symbol).symbol", + "history": "history = self.history(equity.lobbying_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(QuiverLobbyingUniverse, 'QuiverLobbyingUniverse', Resolution.DAILY, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverLobbyingUniverse]) -> List[Symbol]:\n lobby_data_by_symbol = {}\n\n for datum in alt_coarse:\n symbol = datum.symbol\n\n if symbol not in lobby_data_by_symbol:\n lobby_data_by_symbol[symbol] = []\n lobby_data_by_symbol[symbol].append(datum)\n\n return [symbol for symbol, d in lobby_data_by_symbol.items()\n if sum([x.amount for x in d]) >= 100000]", + "research-history": "history = qb.history(lobbying_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.lobbying_symbol):\n data_points = slice[equity.lobbying_symbol]\n for data_point in data_points:\n self.log(f'{equity.lobbying_symbol} amount at {slice.time}: {data_point.amount}')" + } + }, + { + "name": "Insider Trading", + "shortDescription": "Insider Trading tracks trades made by the own company executives, implying if they were bullish or bearish on their own companies.", + "history": "25 April 2014", + "reach": "4994 US Equities", + "url": "quiver-quantitative-insider-trading", + "examples": { + "init": "equity.insider_symbol = self.add_data(QuiverInsiderTrading, equity.symbol).symbol", + "history": "history = self.history(equity.insider_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(QuiverInsiderTradingUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[QuiverInsiderTradingUniverse]) -> List[Symbol]:\n dollar_volume_by_symbol = {}\n for data in alt_coarse:\n symbol = data.symbol\n if not data.price_per_share:\n continue\n if symbol not in dollar_volume_by_symbol:\n dollar_volume_by_symbol[symbol] = 0\n dollar_volume_by_symbol[symbol] += (data.shares or 0) * data.price_per_share\n return [\n symbol for symbol, _ in sorted(dollar_volume_by_symbol.items(), key=lambda kvp: kvp[1])[-10:]\n ]", + "research-history": "history = qb.history(insider_trading_symbol, 60, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(5), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.insider_symbol):\n data_points = slice[equity.insider_symbol]\n for data_point in data_points:\n self.log(f'{equity.insider_symbol} shares at {slice.time}: {data_point.shares}')" + } + }, + { + "name": "Brain Wikipedia Page Views", + "shortDescription": "Tracks investor attention toward large U.S. equities by monitoring traffic on company Wikipedia pages.", + "history": "February 2023", + "reach": "Russell 1000 Constituents", + "url": "brain-wikipedia-page-views", + "examples": { + "init": "equity.wiki_page_views = self.add_data(BrainWikipediaPageViews, equity.symbol).symbol", + "history": "history = self.history(equity.wiki_page_views, 100, Resolution.DAILY)", + "research-history": "history = self.history(wiki_page_views_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.wiki_page_views):\n data_point = slice[equity.wiki_page_views]\n self.log(f'{equity.wiki_page_views} views at {slice.time}: {data_point.NumberViews1}, {data_point.Buzz1}')" + } + }, + { + "name": "US SEC Filings", + "shortDescription": "Semi-parsed Quarterly Financial Reports (10-Q) and Annual Financial Report (8-K) filings of companies for US Equities.", + "history": "January 1998", + "reach": "15,000 US Equities", + "url": "us-security-exchange-commission-filings", + "examples": { + "init": "equity.report_8k_symbol = self.add_data(SECReport8K, equity.symbol).symbol", + "history": "history = self.history(equity.report_8k_symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(report_8k_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.report_8k_symbol):\n data_point = slice[equity.report_8k_symbol]\n self.log(f'{equity.report_8k_symbol} report count at {slice.time}: {len(data_point.report.documents)}')" + } + }, + { + "name": "US Federal Reserve (FRED)", + "shortDescription": "Collection of thousands of economic datasets maintained by the US Government.", + "history": "January 1999", + "reach": "560 Datasets", + "url": "us-federal-reserve-economic-data", + "examples": { + "init": "self._peak_to_trough = self.add_data(Fred, Fred.OECDRecessionIndicators.UNITED_STATES_FROM_PEAK_THROUGH_THE_TROUGH, Resolution.DAILY).symbol", + "history": "history = self.history(self._peak_to_trough, 100, Resolution.DAILY)", + "research-history": "history = qb.history(peak_to_trough_symbol, 365, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._peak_to_trough):\n data_point = slice[self._peak_to_trough]\n self.log(f'{self._peak_to_trough} value at {slice.time}: {data_point.value}')" + } + }, + { + "name": "Data Link", + "shortDescription": "Nasdaq Data Link, previously known as Quandl, is a premier marketplace for financial, economic, and alternative data sets.", + "history": "Various", + "reach": "20 Million Datasets", + "url": "nasdaq-data-link", + "examples": { + "init": "self._bitcoin_chain_symbol = self.add_data(NasdaqDataLink, 'QDL/BCHAIN', Resolution.DAILY).symbol", + "history": "history = self.history(self._bitcoin_chain_symbol, 100, Resolution.DAILY)", + "research-history": "from io import StringIO\ndata = qb.download('https://data.nasdaq.com/api/v3/datatables/QDL/BCHAIN.csv?')\nhistory = pd.read_csv(StringIO(data), index_col=0)", + "usage": "def on_data(self, slice: Slice) -> None:\n point = slice.get(self._bitcoin_chain_symbol)\n if point:\n self.log(f'{self._bitcoin_chain_symbol} value at {slice.time}: {point.value}')" + } + }, + { + "name": "Bybit Crypto Price Data", + "shortDescription": "Trade and quote data for the Bybit Crypto exchange, collected by CoinAPI.", + "history": "April 2022", + "reach": "956 Currency Pairs", + "url": "bybit-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.bybit(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = qb.history(crypto.symbol, 30, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Bybit Crypto Future Price Data", + "shortDescription": "Trade and quote data for the Bybit Crypto Future exchanges, collected by CoinAPI.", + "history": "October 2019", + "reach": "631 Crypto Future Pairs", + "url": "bybit-cryptofuture-price-data", + "examples": { + "init": "self._crypto_future = self.add_crypto_future('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", + "history": "history = self.history(self._crypto_future.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(crypto_future.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto_future.symbol]\n self.log(f'{self._crypto_future.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Bybit Crypto Future Margin Rate Data", + "shortDescription": "Margin interest rate data for the Bybit Crypto Future exchanges, collected by QuantConnect.", + "history": "August 2020", + "reach": "631 Crypto Future Pairs", + "url": "bybit-cryptofuture-margin-rate-data", + "examples": { + "init": "self._crypto_future = self.add_crypto_future('BTCUSDT', Resolution.MINUTE, Market.BYBIT)", + "history": "history = self.history[MarginInterestRate](self._crypto_future.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(MarginInterestRate, crypto_future.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.margin_interest_rates:\n interest_rate = slice.margin_interest_rates[self._crypto_future.symbol].interest_rate\n self.log(f'{self._crypto_future.symbol} interest rate at {slice.time}: {interest_rate}')" + } + }, + { + "name": "Fear and Greed", + "shortDescription": "A daily index between 0 and 100, representing the degree of fear or greed in the US Equity market.", + "history": "July 2014", + "reach": "7 Indicators", + "url": "quantconnect-fear-and-greed", + "examples": { + "init": "self._fear_greed_symbol = self.add_data(FearGreedIndex, 'FG').symbol", + "history": "history = self.history(self._fear_greed_symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(fear_greed_symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._fear_greed_symbol):\n data_point = slice[self._fear_greed_symbol]\n self.log(f'{self._fear_greed_symbol} value at {slice.time}: {data_point.value}')" + } + }, + { + "name": "FOREX Data", + "shortDescription": "Quote data for Forex pairs.", + "history": "January 2007", + "reach": "72 Currency Pairs", + "url": "quantconnect-forex", + "examples": { + "init": "self._forex = self.add_forex('EURUSD', Resolution.MINUTE)", + "history": "history = self.history(self._forex.symbol, 100, Resolution.MINUTE)", + "research-history": "history = qb.history(forex.symbol, 100, Resolution.MINUTE)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._forex.symbol in slice.quote_bars:\n quote_bar = slice.quote_bars[self._forex.symbol]\n self.log(f'{self._forex.symbol} bid at {slice.time}: {quote_bar.bid.close}')" + } + }, + { + "name": "CFD Data", + "shortDescription": "Quote data for Contracts for Difference (CFD).", + "history": "May 2002", + "reach": "51 Contracts", + "url": "quantconnect-cfd", + "examples": { + "init": "self._cfd = self.add_cfd('DE30EUR')", + "history": "history = self.history(self._cfd.symbol, 100, Resolution.MINUTE)", + "research-history": "history = qb.history(cfd.symbol, 100, Resolution.MINUTE)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._cfd.symbol in slice.quote_bars:\n quote_bar = slice.quote_bars[self._cfd.symbol]\n self.log(f'{self._cfd.symbol} bid at {slice.time}: {quote_bar.bid.close}')" + } + }, + { + "name": "Coinbase Crypto Price Data", + "shortDescription": "Trade and quote data for the Coinbase Pro Crypto exchange, collected by CoinAPI.", + "history": "January 2015", + "reach": "970 Currency Pairs", + "url": "coinbase-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.COINBASE)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.coinbase(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = qb.history(crypto.symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Bitfinex Crypto Price Data", + "shortDescription": "Trade and quote data for the Bitfinex Crypto exchange, collected by CoinAPI.", + "history": "January 2013", + "reach": "570 Currency Pairs", + "url": "bitfinex-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.BITFINEX)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.bitfinex(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = qb.history(symbol, 30, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Binance Crypto Price Data", + "shortDescription": "Trade and quote data for the Binance Crypto exchange, collected by CoinAPI.", + "history": "July 2017", + "reach": "3,651 Currency Pairs", + "url": "binance-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCBUSD', Resolution.MINUTE, Market.BINANCE)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.binance(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = self.history(crypto.symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Kraken Crypto Price Data", + "shortDescription": "Trade and quote data for the Kraken Crypto exchange, collected by CoinAPI.", + "history": "October 2013", + "reach": "1,262 Currency Pairs", + "url": "kraken-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.KRAKEN)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.kraken(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = self.history(crypto.symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Binance US Crypto Price Data", + "shortDescription": "Trade and quote data for the Binance US Crypto exchange, collected by CoinAPI.", + "history": "October 2019", + "reach": "627 Cryptocurrency pairs", + "url": "binance-us-crypto-price-data", + "examples": { + "init": "self._crypto = self.add_crypto('BTCUSD', Resolution.MINUTE, Market.BINANCE_US)", + "history": "history = self.history(self._crypto.symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CryptoUniverse.binance_us(self._select_assets))", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, universe_day):\n return [c.symbol for c in universe_day if c.volume >= 100 and c.volume_in_usd > 10000]", + "research-history": "history = qb.history(self._crypto.symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto.symbol]\n self.log(f'{self._crypto.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Binance Crypto Future Price Data", + "shortDescription": "Trade and quote data for the Binance Crypto Future exchanges, collected by CoinAPI.", + "history": "August 2020", + "reach": "806 Crypto Future Pairs", + "url": "binance-cryptofuture-price-data", + "examples": { + "init": "self._crypto_future = self.add_crypto_future('BTCBUSD', Resolution.MINUTE)", + "history": "history = self.history(self._crypto_future.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(crypto_future.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.bars:\n trade_bar = slice.bars[self._crypto_future.symbol]\n self.log(f'{self._crypto_future.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Binance Crypto Future Margin Rate Data", + "shortDescription": "Margin interest rate data for the Binance Crypto Future exchanges, collected by QuantConnect.", + "history": "August 2020", + "reach": "806 Crypto Future Pairs", + "url": "binance-cryptofuture-margin-rate-data", + "examples": { + "init": "self._crypto_future = self.add_crypto_future('BTCBUSD', Resolution.MINUTE)", + "history": "history = self.history[MarginInterestRate](self._crypto_future.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(MarginInterestRate, crypto_future.symbol, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._crypto_future.symbol in slice.margin_interest_rates:\n interest_rate = slice.margin_interest_rates[self._crypto_future.symbol].interest_rate\n self.log(f'{self._crypto_future.symbol} interest rate at {slice.time}: {interest_rate}')" + } + }, + { + "name": "US Interest Rate", + "shortDescription": "Primary credit rate from the Federal Open Market Committee (FOMC)", + "history": "January 2003", + "reach": "1 Country: US", + "url": "us-interest-rate", + "examples": { + "history": "historical_interest_rate = self.risk_free_interest_rate_model.get_interest_rate(self.time - timedelta(30))", + "research-history": "historical_interest_rate = qb.risk_free_interest_rate_model.get_interest_rate(qb.time - timedelta(30))", + "usage": "interest_rate = self.risk_free_interest_rate_model.get_interest_rate(self.time)" + } + }, + { + "name": "Macroeconomics Indicators", + "shortDescription": "39 Macroeconomic Indicators data for 249 countries/regions, including the date, value, and frequency.", + "history": "January 1998", + "reach": "39 Indicators, 249 Countries/Regions", + "url": "eodhd-macro-indicators", + "examples": { + "init": "self._macro_indicator = self.add_data(EODHDMacroIndicators, EODHD.MacroIndicators.UnitedStates.GDP_CURRENT_USD).symbol", + "history": "history = self.history[EODHDMacroIndicators](self._macro_indicator, timedelta(365)))", + "research-history": "history = qb.history(macro_indicator, timedelta(365), flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._macro_indicator):\n data_point = slice[self._macro_indicator]\n self.log(f'{data_point.indicator} of {data_point.country} at {data_point.time}: {data_point.value}')" + } + }, + { + "name": "Upcoming Dividends", + "shortDescription": "Alert for upcoming dividend events of primary US Equities common shares with dividend important dates, and dividend per share.", + "history": "January 2015", + "reach": "27,500 US Equities", + "url": "eodhd-upcoming-dividends", + "examples": { + "init": "self._upcoming_dividends = self.add_data(EODHDUpcomingDividends, 'dividends').symbol", + "history": "history = self.history[EODHDUpcomingDividends](timedelta(100))", + "universe-init": "self._universe = self.add_universe(EODHDUpcomingDividends, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, dividends: List[EODHDUpcomingDividends]) -> List[Symbol]:\n return [d.symbol for d in dividends if d.dividend_date <= self.time + timedelta(1) and d.dividend > 0.05]", + "research-history": "qb.history(upcoming_dividends, timedelta(100))", + "research-universe-history": "history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n upcoming_dividends = slice.get(EODHDUpcomingDividends)\n if upcoming_dividends and self._upcoming_dividends in upcoming_dividends:\n data_point = upcoming_dividends[self._upcoming_dividends]\n self.log(f'{self._upcoming_dividends} dividend at {data_point.dividend_date} per share ${data_point.dividend}')" + } + }, + { + "name": "Commitments of Traders", + "shortDescription": "Weekly positions of commercial hedgers, large speculators, and small traders across US futures markets, published by the CFTC", + "history": "January 1998", + "reach": "942 Futures Markets", + "url": "cftc-cot", + "examples": { + "init": "self._legacy = self.add_data(CFTCLegacy, CFTC.Markets.E_MINI_SP_500, Resolution.DAILY).symbol", + "history": "history = self.history(self._legacy, 100, Resolution.DAILY)", + "research-history": "history = qb.history(legacy, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._legacy):\n data_point = slice[self._legacy]\n if data_point.non_commercial_net is not None:\n self.log(f'{self._legacy} non-commercial net at {slice.time}: {data_point.non_commercial_net}')" + } + }, + { + "name": "Regulation SHO", + "shortDescription": "Daily off-exchange short sale volume for US Equities, reported to FINRA under Regulation SHO.", + "history": "August 2018", + "reach": "22,073 US Equities", + "url": "finra-reg-sho", + "examples": { + "init": "equity.short_volume_symbol = self.add_data(FINRAShortSaleVolume, equity.symbol).symbol", + "history": "history = self.history(equity.short_volume_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(FINRAShortSaleVolumeUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[FINRAShortSaleVolumeUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.short_volume_ratio is not None and d.short_volume_ratio > 0.5]", + "research-history": "history = qb.history(equity.short_volume_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.short_volume_symbol):\n data_point = slice[equity.short_volume_symbol]\n self.log(f'{equity.short_volume_symbol} short volume at {slice.time}: {data_point.short_volume}')" + } + }, + { + "name": "OTC Transparency", + "shortDescription": "Off-exchange trading volume and short interest for US Equities, reported to FINRA.", + "history": "January 2017", + "reach": "59,712 US Equities", + "url": "finra-otc-transparency", + "examples": { + "init": "equity.short_interest_symbol = self.add_data(FINRAShortInterest, equity.symbol).symbol", + "history": "history = self.history(equity.short_interest_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(FINRAShortInterestUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[FINRAShortInterestUniverse]) -> List[Symbol]:\n return [d.symbol for d in alt_coarse\n if d.days_to_cover is not None and d.days_to_cover > 5]", + "research-history": "history = qb.history(equity.short_interest_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.short_interest_symbol):\n data_point = slice[equity.short_interest_symbol]\n self.log(f'{equity.short_interest_symbol} days to cover at {slice.time}: {data_point.days_to_cover}')" + } + }, + { + "name": "GDP by Industry", + "shortDescription": "Quarterly breakdown of US GDP by industry, published by the Bureau of Economic Analysis.", + "history": "January 2005", + "reach": "100 US Industries", + "url": "bea-gdp-by-industry", + "examples": { + "init": "self._manufacturing = self.add_data(BEAGDPByIndustry, BEA.Industries.MANUFACTURING, Resolution.DAILY).symbol", + "history": "history = self.history(self._manufacturing, 100, Resolution.DAILY)", + "research-history": "history = qb.history(manufacturing, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._manufacturing):\n data_point = slice[self._manufacturing]\n self.log(f'{self._manufacturing} value added at {slice.time}: {data_point.value_added}')" + } + }, + { + "name": "US Electricity", + "shortDescription": "Demand and generation information for the US power grid.", + "history": "January 2019", + "reach": "81 Balancing Authorities", + "url": "eia-us-electricity", + "examples": { + "init": "self._pjm = self.add_data(EIAElectricity, EIA.BalancingAuthorities.PJM, Resolution.DAILY).symbol", + "history": "history = self.history(self._pjm, 100, Resolution.DAILY)", + "research-history": "history = qb.history(pjm, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._pjm):\n data_point = slice[self._pjm]\n if data_point.demand is not None:\n self.log(f'{self._pjm} demand at {slice.time}: {data_point.demand}')" + } + }, + { + "name": "Euro Yield Curve", + "shortDescription": "Spot, par and forward euro area government bond yield curves at ten maturities, published daily by the European Central Bank", + "history": "September 2004", + "reach": "6 Yield Curves", + "url": "ecb-euro-yield-curve", + "examples": { + "init": "self._curve = self.add_data(ECBYieldCurve, ECB.YieldCurves.AAA_SPOT, Resolution.DAILY).symbol", + "history": "history = self.history(self._curve, timedelta(365), Resolution.DAILY)", + "research-history": "history = qb.history(curve, timedelta(365), Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._curve):\n data_point = slice[self._curve]\n if data_point.ten_year is not None:\n self.log(f'{self._curve} 10Y at {slice.time}: {data_point.ten_year}')" + } + }, + { + "name": "Policy Rates", + "shortDescription": "Daily ECB policy rates and the euro short-term rate for the euro area, published by the European Central Bank", + "history": "January 1999", + "reach": "1 Euro Area Series", + "url": "ecb-policy-rates", + "examples": { + "init": "self._rates = self.add_data(ECBPolicyRates, ECB.PolicyRates.EURO_AREA).symbol", + "history": "history = self.history(self._rates, timedelta(365), Resolution.DAILY)", + "research-history": "history = qb.history(rates, timedelta(365), Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._rates):\n data_point = slice[self._rates]\n self.log(f'{self._rates} deposit facility rate at {slice.time}: {data_point.deposit_facility_rate}')" + } + }, + { + "name": "Systemic Stress", + "shortDescription": "Composite indicator of systemic stress across 14 economies, published weekly by the European Central Bank", + "history": "January 1980", + "reach": "14 Economies", + "url": "ecb-systemic-stress", + "examples": { + "init": "self._euro_area = self.add_data(ECBSystemicStress, ECB.StressAreas.EURO_AREA).symbol", + "history": "history = self.history(self._euro_area, timedelta(365), Resolution.DAILY)", + "research-history": "history = qb.history(euro_area, timedelta(365), Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._euro_area):\n data_point = slice[self._euro_area]\n self.log(f'{self._euro_area} composite stress at {slice.time}: {data_point.composite}')" + } + }, + { + "name": "Patent Maintenance", + "shortDescription": "Patent renewals and abandonments for listed companies, recorded by the US Patent and Trademark Office and published weekly", + "history": "April 1985", + "reach": "2,896 US Equities", + "url": "uspto-patent-maintenance", + "examples": { + "init": "equity.patents_symbol = self.add_data(USPTOPatentMaintenance, equity.symbol).symbol", + "history": "history = self.history(equity.patents_symbol, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(USPTOPatentMaintenanceUniverse, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, alt_coarse: List[USPTOPatentMaintenanceUniverse]) -> List[Symbol]:\n renewing = [d for d in alt_coarse if d.net_maintenance_change is not None and d.net_maintenance_change > 0]\n return [d.symbol for d in sorted(renewing, key=lambda d: d.net_maintenance_change)[-10:]]", + "research-history": "history = qb.history(equity.patents_symbol, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(equity.patents_symbol):\n data_point = slice[equity.patents_symbol]\n self.log(f'{equity.patents_symbol} patents expired at {slice.time}: {data_point.patents_expired}')" + } + }, + { + "name": "US Energy Information Administration (EIA)", + "shortDescription": "Supply and demand information for US Crude Products.", + "history": "January 1991", + "reach": "190 Datasets", + "url": "quantconnect-us-energy-information-agency", + "examples": { + "init": "self._us_energy = self.add_data(USEnergy, USEnergy.Petroleum.UnitedStates.WEEKLY_NET_IMPORTS_OF_TOTAL_PETROLEUM_PRODUCTS).symbol", + "history": "history = self.history(self._us_energy, 100, Resolution.DAILY)", + "research-history": "history = qb.history(us_energy, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._us_energy):\n data_point = slice[self._us_energy]\n self.log(f'{self._us_energy} value at {slice.time}: {data_point.value}')" + } + }, + { + "name": "US Treasury Yield Curve", + "shortDescription": "Yield curve rates for US Government bonds over all common maturity dates. The data is scraped from the US Treasury website.", + "history": "January 1990", + "reach": "US Daily Treasury Yield Rates", + "url": "us-treasury-yield-curve", + "examples": { + "init": "self._yield_curve = self.add_data(USTreasuryYieldCurveRate, 'USTYCR').symbol", + "history": "history = self.history(self._yield_curve, 100, Resolution.DAILY)", + "research-history": "history = qb.history(yield_curve, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._yield_curve):\n data_point = slice[self._yield_curve]\n self.log(f'{self._yield_curve} one month at {slice.time}: {data_point.one_month}')" + } + }, + { + "name": "VIX Central Contango", + "shortDescription": "Contango rates over time for the VIX Contract. The data is provided by VIXCentral and cached by QuantConnect.", + "history": "June 2010", + "reach": "1 Dataset", + "url": "quantconnect-vixcentral-contango", + "examples": { + "init": "self._vix_contango = self.add_data(VIXCentralContango, 'VX', Resolution.DAILY).symbol", + "history": "history = self.history(self._vix_contango, 100, Resolution.DAILY)", + "research-history": "history = self.history(vix_contango, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._vix_contango):\n data_point = slice[self._vix_contango]\n self.log(f'{self._vix_contango} front month at {slice.time}: {data_point.front_month}')" + } + }, + { + "name": "Cash Indices", + "shortDescription": "Price data for 125 US Cash indices and 2 international indices (HSI and SX5E). This data provides the underlying price for Index Options of NDX, SPX, RUT, and VIX.", + "history": "January 1998", + "reach": "125 US and 3 International Indices", + "url": "quantconnect-cash-indices", + "examples": { + "init": "self._index = self.add_index('VIX')", + "history": "history = self.history(self._index.symbol, 100, Resolution.DAILY)", + "research-history": "history = qb.history(index, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._index.symbol in slice.bars:\n trade_bar = slice.bars[self._index.symbol]\n self.log(f'{self._index.symbol} close at {slice.time}: {trade_bar.close}')" + } + }, + { + "name": "Bitcoin Metadata", + "shortDescription": "Bitcoin processing fundamental data such as hash rate, miner revenue, and number of transactions.", + "history": "Jan 2009", + "reach": "Bitcoin Blockchain", + "url": "bitcoin-metadata", + "examples": { + "init": "self._btcusd.metadata = self.add_data(BitcoinMetadata, self._btcusd.symbol).symbol", + "history": "history = self.history(self._btcusd.metadata, 100, Resolution.DAILY)", + "research-history": "history = qb.history(bitcoin_metadata, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._btcusd.metadata):\n data_point = slice[self._btcusd.metadata]\n self.log(f'{self._btcusd.metadata} miner revenue at {slice.time}: {data_point.miners_revenue}')" + } + }, + { + "name": "Crypto Market Cap", + "shortDescription": "Cryptocurrencies market cap data is provided by CoinGecko and cached by QuantConnect.", + "history": "28 April 2013", + "reach": "620 Cryptocurrencies", + "url": "coingecko-crypto-marketcap", + "examples": { + "init": "self._coin_gecko = self.add_data(CoinGecko, 'BTC').symbol", + "history": "history = self.history(self._coin_gecko, 100, Resolution.DAILY)", + "universe-init": "self._universe = self.add_universe(CoinGeckoUniverse, 'CoinGeckoUniverse', Resolution.DAILY, self._select_assets)", + "universe-history": "history = self.history(self._universe, 30, Resolution.DAILY, flatten=True)", + "universe-filter": "def _select_assets(self, data: List[CoinGecko]) -> List[Symbol]:\n for datum in data:\n self.debug(f'{datum.coin},{datum.market_cap},{datum.price}')\n\n # Select the coins that our brokerage supports and have a quote currency that matches\n # our account currency.\n tradable_coins = [d for d in data if d.coin + self.account_currency in self._market_pairs]\n # Select the largest coins and create their Symbol objects.\n return [\n c.create_symbol(self._market, self.account_currency)\n for c in sorted(tradable_coins, key=lambda x: x.market_cap)[-10:]\n ]", + "research-history": "history = self.history(coin_gecko, 100, Resolution.DAILY)", + "research-universe-history": "history = qb.universe_history(universe, qb.time-timedelta(30), qb.time, flatten=True)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._coin_gecko):\n data_point = slice[self._coin_gecko]\n self.log(f'{self._coin_gecko} market cap at {slice.time}: {data_point.market_cap}')" + } + }, + { + "name": "USDA Fruit And Vegetables", + "shortDescription": "Retail price estimates for 75+ commonly consumed fresh and processed fruits and vegetables", + "history": "January 2014", + "reach": "75 Agricultural Products", + "url": "usda-fruit-and-vegetables", + "examples": { + "init": "self._usda_apples = self.add_data(USDAFruitAndVegetables, USDAFruitAndVegetable.Symbols.Apples, Resolution.DAILY).symbol", + "history": "history = self.history(self._usda_apples, datetime(2013, 1, 1), self.time, Resolution.DAILY)", + "research-history": "history = qb.history(usda_apples, datetime(2013, 1, 1), self.time, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if slice.contains_key(self._usda_apples):\n collection = slice[self._usda_apples]\n for data in collection.data:\n self.log(f'{self._usda_apples} [{data.form}]: ${data.price_per_cup_equivalent}')" + } + }, + { + "name": "US Bureau of Labor Statistics (BLS)", + "shortDescription": "Statistical results of many surveys conducted and released by the US government.", + "history": "2000", + "reach": "4 Surveys, 50 Series", + "url": "us-bureau-of-labor-statistics", + "examples": { + "init": "self._cpi = self.add_data(BLSEconomicSurveysCpi, 'CPI').symbol", + "history": "history = self.history(self._cpi, 100, Resolution.DAILY)", + "research-history": "history = qb.history(cpi, 100, Resolution.DAILY)", + "usage": "def on_data(self, slice: Slice) -> None:\n if self._cpi in slice:\n cpi = slice[self._cpi]\n self.log(f'{self._cpi} all items at {slice.time}: {cpi.all_items}')" + } + } + ] } \ No newline at end of file