diff --git a/03 Writing Algorithms/14 Datasets/02 QuantConnect/06 Bybit Crypto Future Margin Rate Data/08 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/02 QuantConnect/06 Bybit Crypto Future Margin Rate Data/08 Remove Subscriptions.html index 9cac3a1a4a..455d186009 100644 --- a/03 Writing Algorithms/14 Datasets/02 QuantConnect/06 Bybit Crypto Future Margin Rate Data/08 Remove Subscriptions.html +++ b/03 Writing Algorithms/14 Datasets/02 QuantConnect/06 Bybit Crypto Future Margin Rate Data/08 Remove Subscriptions.html @@ -6,4 +6,4 @@
RemoveSecurity(_symbol);-
TheRemoveSecurityremove_security method cancels your open orders for the security and liquidates your holdings in the virtual pair.
The RemoveSecurityremove_security method cancels your open orders for the security and liquidates your holdings in the virtual pair.
private Universe _universe;
public override void Initialize()
{
diff --git a/03 Writing Algorithms/14 Datasets/08 Brain/03 Brain Sentiment Indicator/09 Universe History.html b/03 Writing Algorithms/14 Datasets/08 Brain/03 Brain Sentiment Indicator/09 Universe History.html
index 7097529d04..5b4e0cce89 100644
--- a/03 Writing Algorithms/14 Datasets/08 Brain/03 Brain Sentiment Indicator/09 Universe History.html
+++ b/03 Writing Algorithms/14 Datasets/08 Brain/03 Brain Sentiment Indicator/09 Universe History.html
@@ -19,7 +19,7 @@ Historical Universe Data in Algorithms
universe_history = self.history(self._universe, 30, Resolution.DAILY)
for (_, time), sentiments in universe_history.items():
for sentiment in sentiments:
- self.log(f"{sentiment.symbol} 7-day sentiment at {sentiment.end_time}: {sentiment.sentiment7_days}")
+ self.log(f"{sentiment.symbol} 7-day sentiment at {sentiment.end_time}: {sentiment.sentiment_7_days}")
You can call the Historyhistory method in Research.
To add Brain Wikipedia Page Views Indicator data to your algorithm, call the AddDataadd_data method. Save a reference to the dataset Symbol so you can access the data later in your algorithm.
-
class BrainWikipediaPageViews(QCAlgorithm): +class BrainWikipediaPageViewsAlgorithm(QCAlgorithm): def initialize(self) -> None: self.set_start_date(2021, 1, 1) self.set_end_date(2021, 7, 8) @@ -7,7 +7,7 @@ self.aapl = self.add_equity("AAPL", Resolution.DAILY).symbol self.dataset_symbol = self.add_data(BrainWikipediaPageViews, self.aapl).symbol-public class BrainWikipediaPageViews: QCAlgorithm +public class BrainWikipediaPageViewsAlgorithm: QCAlgorithm { private Symbol _symbol; public override void Initialize() diff --git a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/06 Accessing Data.html b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/06 Accessing Data.html index 4b8a9a13a9..a9de79a40c 100644 --- a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/06 Accessing Data.html +++ b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/06 Accessing Data.html @@ -3,7 +3,7 @@def on_data(self, slice: Slice) -> None: if slice.contains_key(self.dataset_symbol): data_point = slice[self.dataset_symbol] - self.log(f"{self.dataset_symbol} sentiments at {slice.time}: {data_point.NumberViews1}, {data_point.Buzz1}"+ self.log(f"{self.dataset_symbol} sentiments at {slice.time}: {data_point.number_views_1}, {data_point.buzz_1}")public override void OnData(Slice slice) { @@ -18,7 +18,7 @@def on_data(self, slice: Slice) -> None: for dataset_symbol, data_point in slice.get(BrainWikipediaPageViews).items(): - self.log(f"{dataset_symbol} metric at {slice.time}: {data_point.NumberViews1} , {data_point.Buzz1}")+ self.log(f"{dataset_symbol} metric at {slice.time}: {data_point.number_views_1} , {data_point.buzz_1}")public override void OnData(Slice slice) { diff --git a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/07 Historical Data.html b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/07 Historical Data.html index 877eb76c42..23b8fd3a87 100644 --- a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/07 Historical Data.html +++ b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/07 Historical Data.html @@ -1,5 +1,5 @@To get historical Brain Wikipedia Page Views data, call the
Historyhistorymethod with the datasetSymbol. If there is no data in the period you request, the history result is empty.-\ No newline at end of file diff --git a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/98 Example Applications.html b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/98 Example Applications.html index 9e9221d595..6e7ab74c6f 100644 --- a/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/98 Example Applications.html +++ b/03 Writing Algorithms/14 Datasets/08 Brain/04 Brain Wikipedia Page Views/98 Example Applications.html @@ -29,7 +29,7 @@history_df = self.history(self.dataset_symbol, 100, Resolution.DAILY)-var history = History<BrainWikipediaPageViews>(_datasetSymbol, 100, Resolution.Daily);+history_df = self.history(self.dataset_symbol, 252, Resolution.DAILY)+var history = History<BrainWikipediaPageViews>(_datasetSymbol, 252, Resolution.Daily);Classic Algorithm Example
equity.dataset_symbol = self.add_data(BrainWikipediaPageViews, equity.symbol).symbol # Historical data - history = self.history(equity.dataset_symbol, 365, Resolution.DAILY) + history = self.history(equity.dataset_symbol, 252, Resolution.DAILY) self.debug(f"We got {len(history)} items from our history request for {equity.symbol}") def on_data(self, slice: Slice) -> None: @@ -40,10 +40,10 @@Classic Algorithm Example
scores = {} - for point in points.Values: + for point in points.values(): # Example composite signal: - number_of_views = point.NumberViews1 if point.NumberViews1 else 0 - buzz1day = point.Buzz1 if point.Buzz1 else 0 + number_of_views = point.number_views_1 if point.number_views_1 else 0 + buzz1day = point.buzz_1 if point.buzz_1 else 0 symbol = point.symbol.underlying scores[symbol] = buzz1day * math.sqrt(number_of_views) @@ -85,7 +85,7 @@Classic Algorithm Example
var datasetSymbol = AddData<BrainWikipediaPageViews>(symbol).Symbol; // Historical data (request dataset symbol) - var history = History(datasetSymbol, 365, Resolution.Daily); + var history = History(datasetSymbol, 252, Resolution.Daily); Debug($"We got {history.Count()} items from our history request for {symbol}"); } } diff --git a/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/07 Historical Data.html b/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/07 Historical Data.html index 308021f1b9..6c777bbfb9 100644 --- a/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/07 Historical Data.html +++ b/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/07 Historical Data.html @@ -1,4 +1,4 @@ -To get historical BLS data, call the
+Historymethod with the datasetSymbol. If there is no data in the period you request, the history result is empty.To get historical BLS data, call the
Historyhistorymethod with the datasetSymbol. If there is no data in the period you request, the history result is empty.# DataFrame diff --git a/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/08 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/08 Remove Subscriptions.html index f5b36a0cf4..a2268dfefe 100644 --- a/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/08 Remove Subscriptions.html +++ b/03 Writing Algorithms/14 Datasets/09 Bureau of Labor Statistics/01 US Bureau of Labor Statistics (BLS)/08 Remove Subscriptions.html @@ -1,4 +1,4 @@ -To remove your subscription to BLS data, call the
+RemoveSecuritymethod.To remove your subscription to BLS data, call the
RemoveSecurityremove_securitymethod.self.remove_security(self._cpi)diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/02 Macroeconomics Indicators/98 Example Applications.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/02 Macroeconomics Indicators/98 Example Applications.html index 82917c04ca..e419f44695 100644 --- a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/02 Macroeconomics Indicators/98 Example Applications.html +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/02 Macroeconomics Indicators/98 Example Applications.html @@ -16,10 +16,10 @@Classic Algorithm Example
class EODHDMacroIndicatorsAlgorithm(QCAlgorithm): def initialize(self): - self.set_start_date(2024, 9, 1) + self.set_start_date(2024, 1, 1) self.set_end_date(2024, 12, 31) self.equity_symbol = self.add_equity("SPY", Resolution.DAILY).symbol - + ticker = EODHD.MacroIndicators.UnitedStates.GDP_GROWTH_ANNUAL self.dataset_symbol = self.add_data(EODHDMacroIndicators, ticker).symbol @@ -34,7 +34,7 @@Classic Algorithm Example
public override void Initialize() { - SetStartDate(2024, 9, 1); + SetStartDate(2024, 1, 1); SetEndDate(2024, 12, 31); _equitySymbol = AddEquity("SPY", Resolution.Daily).Symbol; var ticker = EODHD.MacroIndicators.UnitedStates.GdpGrowthAnnual; @@ -61,7 +61,7 @@Framework Algorithm Example
class EODHDMacroIndicatorsAlgorithm(QCAlgorithm): def initialize(self) -> None: - self.set_start_date(2024, 9, 1) + self.set_start_date(2024, 1, 1) self.set_end_date(2024, 12, 31) # Use market ETF as a vehicle to trade. symbol = Symbol.create("SPY", SecurityType.EQUITY, Market.USA) @@ -98,7 +98,7 @@Framework Algorithm Example
{ public override void Initialize() { - SetStartDate(2024, 9, 1); + SetStartDate(2024, 1, 1); SetEndDate(2024, 12, 31); // Use market ETF as a vehicle to trade. var symbol = QuantConnect.Symbol.Create("SPY", SecurityType.Equity, Market.USA); diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/06 Requesting Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/05 Requesting Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/06 Requesting Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/05 Requesting Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/07 Accessing Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/06 Accessing Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/07 Accessing Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/06 Accessing Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/08 Historical Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/07 Historical Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/08 Historical Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/07 Historical Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/05 Universe Selection.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/08 Universe Selection.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/05 Universe Selection.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/08 Universe Selection.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/09 Universe History.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/09 Universe History.html new file mode 100644 index 0000000000..cf0157c01c --- /dev/null +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/09 Universe History.html @@ -0,0 +1,39 @@ +You can get historical universe data in an algorithm and in the Research Environment.
+ +Historical Universe Data in Algorithms
+To get historical universe data in an algorithm, call the
+ +Historyhistorymethod with theUniverseobject and the lookback period. If there is no data in the period you request, the history result is empty.++ +var universeHistory = History(_universe, 30, Resolution.Daily); +foreach (var dividends in universeHistory) +{ + foreach (EODHDUpcomingDividends dividend in dividends) + { + Log($"{dividend.Symbol} dividend on {dividend.DividendDate}: {dividend.dividend}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingDividends attributes: +history_df = self.history(self._universe, 30, Resolution.DAILY, flatten=True) + +# Series example where the values are lists of EODHDUpcomingDividends objects: +universe_history = self.history(self._universe, 30, Resolution.DAILY) +for (_, time), dividends in universe_history.items(): + for dividend in dividends: + self.log(f"{dividend.symbol} dividend on {dividend.dividend_date}: {dividend.dividend}")+Historical Universe Data in Research
+To get historical universe data in research, call the
+ +Historyhistorymethod with theUniverseobject, a start date, and an end date. This method returns the filtered universe. If there is no data in the period you request, the history result is empty.+\ No newline at end of file diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/09 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/10 Remove Subscriptions.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/09 Remove Subscriptions.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/03 Upcoming Dividends/10 Remove Subscriptions.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/06 Requesting Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/05 Requesting Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/06 Requesting Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/05 Requesting Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Accessing Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/06 Accessing Data.html similarity index 89% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Accessing Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/06 Accessing Data.html index 29385bc4b2..5cd92f4fb6 100644 --- a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Accessing Data.html +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/06 Accessing Data.html @@ -3,8 +3,8 @@var universeHistory = qb.History(universe, qb.Time.AddDays(-30), qb.Time); +foreach (var dividends in universeHistory) +{ + foreach (EODHDUpcomingDividends dividend in dividends) + { + Console.WriteLine($"{dividend.Symbol} dividend on {dividend.DividendDate}: {dividend.dividend}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingDividends attributes: +history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)+def on_data(self, slice: Slice) -> None: upcomings_earnings_for_symbol = slice.get(EODHDUpcomingEarnings).get(self._symbol) - if upcomings_earnings_for_symbol: - self.log(f"{self._symbol} will report earnings at {upcomings_earnings_for_symbol.report_date} {upcomings_earnings_for_symbol.report_time} with estimated EPS {upcomings_earnings_for_symbol.estimate}")+ if upcomings_earnings_for_symbol: + self.log(f"{self._symbol} will report earnings at {upcomings_earnings_for_symbol.report_date} {upcomings_earnings_for_symbol.report_time} with estimated EPS {upcomings_earnings_for_symbol.estimate}")public override void OnData(Slice slice) { var upcomingEarnings = slice.Get<EODHDUpcomingEarnings>(); diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/08 Historical Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Historical Data.html similarity index 94% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/08 Historical Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Historical Data.html index e0ce58de11..0c4db90f05 100644 --- a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/08 Historical Data.html +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/07 Historical Data.html @@ -1,4 +1,4 @@ -To get historical Upcoming Earnings for the universe, call the
+Historyhistorymethod with the typeEODHDUpcomingEarning.To get historical Upcoming Earnings for the universe, call the
Historyhistorymethod with the typeEODHDUpcomingEarnings.history = self.history(EODHDUpcomingEarnings, timedelta(100), Resolution.DAILY)diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/05 Universe Selection.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/08 Universe Selection.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/05 Universe Selection.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/08 Universe Selection.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/09 Universe History.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/09 Universe History.html new file mode 100644 index 0000000000..c801336163 --- /dev/null +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/09 Universe History.html @@ -0,0 +1,39 @@ +You can get historical universe data in an algorithm and in the Research Environment.
+ +Historical Universe Data in Algorithms
+To get historical universe data in an algorithm, call the
+ +Historyhistorymethod with theUniverseobject and the lookback period. If there is no data in the period you request, the history result is empty.++ +var universeHistory = History(_universe, 30, Resolution.Daily); +foreach (var earnings in universeHistory) +{ + foreach (EODHDUpcomingEarnings earning in earnings) + { + Log($"{earning.Symbol} estimate at {earning.EndTime}: {earning.Estimate}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingEarnings attributes: +history_df = self.history(self._universe, 30, Resolution.DAILY, flatten=True) + +# Series example where the values are lists of EODHDUpcomingEarnings objects: +universe_history = self.history(self._universe, 30, Resolution.DAILY) +for (_, time), earnings in universe_history.items(): + for earning in earnings: + self.log(f"{earning.symbol} estimate at {earning.end_time}: {earning.estimate}")+Historical Universe Data in Research
+To get historical universe data in research, call the
+ +Historyhistorymethod with theUniverseobject, a start date, and an end date. This method returns the filtered universe. If there is no data in the period you request, the history result is empty.+\ No newline at end of file diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/09 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/10 Remove Subscriptions.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/09 Remove Subscriptions.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/04 Upcoming Earnings/10 Remove Subscriptions.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/06 Requesting Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/05 Requesting Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/06 Requesting Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/05 Requesting Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/07 Accessing Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/06 Accessing Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/07 Accessing Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/06 Accessing Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/08 Historical Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/07 Historical Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/08 Historical Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/07 Historical Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/05 Universe Selection.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/08 Universe Selection.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/05 Universe Selection.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/08 Universe Selection.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/09 Universe History.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/09 Universe History.html new file mode 100644 index 0000000000..d235a15635 --- /dev/null +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/09 Universe History.html @@ -0,0 +1,39 @@ +var universeHistory = qb.History(universe, qb.Time.AddDays(-30), qb.Time); +foreach (var earnings in universeHistory) +{ + foreach (EODHDUpcomingEarnings earning in earnings) + { + Console.WriteLine($"{earning.Symbol} estimate at {earning.EndTime}: {earning.Rank2Days}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingEarnings attributes: +history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)+You can get historical universe data in an algorithm and in the Research Environment.
+ +Historical Universe Data in Algorithms
+To get historical universe data in an algorithm, call the
+ +Historyhistorymethod with theUniverseobject and the lookback period. If there is no data in the period you request, the history result is empty.++ +var universeHistory = History(_universe, 30, Resolution.Daily); +foreach (var ipos in universeHistory) +{ + foreach (EODHDUpcomingIPOs ipo in ipos) + { + Log($"{ipo.Symbol} offer price at {ipo.IpoDate}: {ipo.OfferPrice}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingIPOs attributes: +history_df = self.history(self._universe, 30, Resolution.DAILY, flatten=True) + +# Series example where the values are lists of EODHDUpcomingIPOs objects: +universe_history = self.history(self._universe, 30, Resolution.DAILY) +for (_, time), ipos in universe_history.items(): + for ipo in ipos: + self.log(f"{ipo.symbol} offer price at {ipo.ipo_date}: {ipo.offer_price}")+Historical Universe Data in Research
+To get historical universe data in research, call the
+ +Historyhistorymethod with theUniverseobject, a start date, and an end date. This method returns the filtered universe. If there is no data in the period you request, the history result is empty.+\ No newline at end of file diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/09 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/10 Remove Subscriptions.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/09 Remove Subscriptions.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/05 Upcoming IPOs/10 Remove Subscriptions.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/06 Requesting Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/05 Requesting Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/06 Requesting Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/05 Requesting Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/07 Accessing Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/06 Accessing Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/07 Accessing Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/06 Accessing Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/08 Historical Data.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/07 Historical Data.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/08 Historical Data.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/07 Historical Data.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/05 Universe Selection.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/08 Universe Selection.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/05 Universe Selection.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/08 Universe Selection.html diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/09 Universe History.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/09 Universe History.html new file mode 100644 index 0000000000..7057f4dcb7 --- /dev/null +++ b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/09 Universe History.html @@ -0,0 +1,39 @@ +var universeHistory = qb.History(universe, qb.Time.AddDays(-30), qb.Time); +foreach (var ipos in universeHistory) +{ + foreach (EODHDUpcomingIPOs ipo in ipos) + { + Console.WriteLine($"{ipo.Symbol} offer price at {ipo.IpoDate}: {ipo.OfferPrice}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingIPOs attributes: +history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)+You can get historical universe data in an algorithm and in the Research Environment.
+ +Historical Universe Data in Algorithms
+To get historical universe data in an algorithm, call the
+ +Historyhistorymethod with theUniverseobject and the lookback period. If there is no data in the period you request, the history result is empty.++ +var universeHistory = History(_universe, 30, Resolution.Daily); +foreach (var splits in universeHistory) +{ + foreach (EODHDUpcomingSplits split in splits) + { + Log($"{split.Symbol} split factor on {split.SplitDate}: {split.SplitFactor}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingSplits attributes: +history_df = self.history(self._universe, 30, Resolution.DAILY, flatten=True) + +# Series example where the values are lists of EODHDUpcomingSplits objects: +universe_history = self.history(self._universe, 30, Resolution.DAILY) +for (_, time), splits in universe_history.items(): + for split in splits: + self.log(f"{split.symbol} split factor on {split.split_factor}: {split.split_factor}")+Historical Universe Data in Research
+To get historical universe data in research, call the
+ +Historyhistorymethod with theUniverseobject, a start date, and an end date. This method returns the filtered universe. If there is no data in the period you request, the history result is empty.+\ No newline at end of file diff --git a/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/09 Remove Subscriptions.html b/03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/10 Remove Subscriptions.html similarity index 100% rename from 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/09 Remove Subscriptions.html rename to 03 Writing Algorithms/14 Datasets/11 EOD Historical Data/06 Upcoming Splits/10 Remove Subscriptions.html diff --git a/03 Writing Algorithms/14 Datasets/17 Nasdaq/01 Data Link/98 Example Applications.html b/03 Writing Algorithms/14 Datasets/17 Nasdaq/01 Data Link/98 Example Applications.html index 202e5b022b..13786919e0 100644 --- a/03 Writing Algorithms/14 Datasets/17 Nasdaq/01 Data Link/98 Example Applications.html +++ b/03 Writing Algorithms/14 Datasets/17 Nasdaq/01 Data Link/98 Example Applications.html @@ -126,7 +126,7 @@var universeHistory = qb.History(universe, qb.Time.AddDays(-30), qb.Time); +foreach (var splits in universeHistory) +{ + foreach (EODHDUpcomingSplits split in splits) + { + Console.WriteLine($"{split.Symbol} split factor on {split.SplitDate}: {split.SplitFactor}"); + } +}+# DataFrame example where the columns are the EODHDUpcomingSplits attributes: +history = qb.history(universe, qb.time-timedelta(30), qb.time, flatten=True)+Framework Algorithm Example
insights = [] # Trade only based on updated NASDAQ data link data - for dataset_symbol, data_point in slice.get(NasdaqCustomColumns).items(): + for dataset_symbol, data_point in slice.Get(NasdaqCustomColumns).items(): if dataset_symbol != self.bitfinex_exchange_rate_symbol or algorithm.portfolio[dataset_symbol].invested: continue insights.append(Insight.price(dataset_symbol, timedelta(days=6*22), InsightDirection.UP)) diff --git a/03 Writing Algorithms/14 Datasets/18 Quiver Quantitative/02 Corporate Lobbying/03 Getting Started.html b/03 Writing Algorithms/14 Datasets/18 Quiver Quantitative/02 Corporate Lobbying/03 Getting Started.html index 6923a8c163..b68d391bb6 100644 --- a/03 Writing Algorithms/14 Datasets/18 Quiver Quantitative/02 Corporate Lobbying/03 Getting Started.html +++ b/03 Writing Algorithms/14 Datasets/18 Quiver Quantitative/02 Corporate Lobbying/03 Getting Started.html @@ -1,6 +1,6 @@The following snippet demonstrates how to request data from the Corporate Lobbying dataset:
-self.aapl = self.add_equity("AAPL", Resolution.DAILY).symbol ++ self.log(f"{self.report_10q_symbol} report count at {slice.Time}: {len(data_point.report.documents)}")self.symbol = self.add_equity("AAPL", Resolution.DAILY).symbol self.dataset_symbol = self.add_data(QuiverLobbyings, self.symbol).symbol self._universe = self.add_universe(QuiverLobbyingUniverse, self.universe_selection_filter)diff --git a/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/06 Accessing Data.html b/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/06 Accessing Data.html index 8eb1a0eef2..f1f96517d6 100644 --- a/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/06 Accessing Data.html +++ b/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/06 Accessing Data.html @@ -10,9 +10,9 @@ data_point = slice[self.report_10k_symbol] self.log(f"{self.report_10k_symbol} report count at {slice.time}: {len(data_point.report.documents)}") - if slice.contains_key(self.report_10q_symbol): + if slice.ContainsKey(self.report_10q_symbol): data_point = slice[self.report_10q_symbol] - self.log(f"{self.report_10q_symbol} report count at {slice.time}: {len(data_point.report.documents)}")public override void OnData(Slice slice) { diff --git a/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/98 Example Applications.html b/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/98 Example Applications.html index eb57c27384..994de83999 100644 --- a/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/98 Example Applications.html +++ b/03 Writing Algorithms/14 Datasets/20 Securities and Exchange Commission/01 US SEC Filings/98 Example Applications.html @@ -40,7 +40,7 @@Classic Algorithm Example
def on_data(self, slice: Slice) -> None: # Trade from SEC data - for report in slice.get(SECReport8K).values(): + for report in slice.Get(SECReport8K).Values: underlying_symbol = report.symbol.underlying # Skip the Symbol if it's no longer in the universe (insuffucient popularity to reach market efficiency of fundamental factor) if underlying_symbol not in self.dataset_symbol_by_symbol: diff --git a/03 Writing Algorithms/14 Datasets/21 Smart Insider/01 Corporate Buybacks/98 Example Applications.html b/03 Writing Algorithms/14 Datasets/21 Smart Insider/01 Corporate Buybacks/98 Example Applications.html index ed7d6feb2b..d1508a33b2 100644 --- a/03 Writing Algorithms/14 Datasets/21 Smart Insider/01 Corporate Buybacks/98 Example Applications.html +++ b/03 Writing Algorithms/14 Datasets/21 Smart Insider/01 Corporate Buybacks/98 Example Applications.html @@ -19,9 +19,9 @@Classic Algorithm Example
self._smart_insider_intention_data = self.add_data(SmartInsiderIntention, self._equity).symbol self._smart_insider_transaction_data = self.add_data(SmartInsiderTransaction, self._equity).symbol # Warm up custom data subscriptions with historical data. - history = self.history(self._smart_insider_intention_data, 365, Resolution.DAILY) + history = self.history(self._smart_insider_intention_data, timedelta(365), Resolution.DAILY) self.debug(f"We got {len(history)} items from our history request for intentions") - history = self.history(self._smart_insider_transaction_data, 365, Resolution.DAILY) + history = self.history(self._smart_insider_transaction_data, timedelta(365), Resolution.DAILY) self.debug(f"We got {len(history)} items from our history request for transactions") def on_data(self, data: Slice) -> None: diff --git a/Resources/datasets/market-hours/futures-market-hours.js b/Resources/datasets/market-hours/futures-market-hours.js index 336c0b22ce..08032c42b9 100644 --- a/Resources/datasets/market-hours/futures-market-hours.js +++ b/Resources/datasets/market-hours/futures-market-hours.js @@ -50099,6 +50099,122 @@ const DATA = { ], "holidays": [] }, + "Future-cfe-VXM": { + "exchangeTimeZone": "America/Chicago", + "sunday": [ + { + "start": "17:00:00", + "end": "1.00:00:00", + "state": "premarket" + } + ], + "monday": [ + { + "start": "00:00:00", + "end": "08:30:00", + "state": "premarket" + }, + { + "start": "08:30:00", + "end": "15:00:00", + "state": "market" + }, + { + "start": "15:00:00", + "end": "16:00:00", + "state": "postmarket" + }, + { + "start": "17:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "tuesday": [ + { + "start": "00:00:00", + "end": "08:30:00", + "state": "premarket" + }, + { + "start": "08:30:00", + "end": "15:00:00", + "state": "market" + }, + { + "start": "15:00:00", + "end": "16:00:00", + "state": "postmarket" + }, + { + "start": "17:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "wednesday": [ + { + "start": "00:00:00", + "end": "08:30:00", + "state": "premarket" + }, + { + "start": "08:30:00", + "end": "15:00:00", + "state": "market" + }, + { + "start": "15:00:00", + "end": "16:00:00", + "state": "postmarket" + }, + { + "start": "17:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "thursday": [ + { + "start": "00:00:00", + "end": "08:30:00", + "state": "premarket" + }, + { + "start": "08:30:00", + "end": "15:00:00", + "state": "market" + }, + { + "start": "15:00:00", + "end": "16:00:00", + "state": "postmarket" + }, + { + "start": "17:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "friday": [ + { + "start": "00:00:00", + "end": "08:30:00", + "state": "premarket" + }, + { + "start": "08:30:00", + "end": "15:00:00", + "state": "market" + }, + { + "start": "15:00:00", + "end": "16:00:00", + "state": "postmarket" + } + ], + "holidays": [] + }, "Future-cme-E3G": { "exchangeTimeZone": "America/New_York", "sunday": [ @@ -70038,6 +70154,7 @@ const NAMES = { "RTY": "E-mini Russell 2000 Index Futures", "YM": "E-mini Dow ($5) Futures", "VX": "VIX futures", + "VXM": "VIX Mini Futures", "E3G": "E-mini FTSE 100 GBP Futures", "ENY": "E-mini Nikkei YEN Futures", "NIY": "Nikkei/YEN Futures", diff --git a/Resources/datasets/supported-alternative-dataset-universe.html b/Resources/datasets/supported-alternative-dataset-universe.html index d3ed7062ea..d894bc8a5f 100644 --- a/Resources/datasets/supported-alternative-dataset-universe.html +++ b/Resources/datasets/supported-alternative-dataset-universe.html @@ -4,10 +4,10 @@Brain ML Stock Ranking Brain Sentiment Indicator Crypto Market Cap -Upcoming Dividends -Upcoming Earnings -Upcoming IPOs -Upcoming Splits +Upcoming Dividends +Upcoming Earnings +Upcoming IPOs +Upcoming Splits CNBC Trading Corporate Lobbying Insider Trading