{"id":152355,"date":"2022-08-22T11:28:00","date_gmt":"2022-08-22T15:28:00","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=152355"},"modified":"2022-11-21T09:57:32","modified_gmt":"2022-11-21T14:57:32","slug":"retrieving-historical-data-from-ibkr","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/","title":{"rendered":"Retrieving Historical Data from IBKR"},"content":{"rendered":"\n<p class=\"has-text-align-center has-background wp-block-paragraph\" style=\"background-color:#d7dcdc\"><strong>This is a follow up from PART 1: <a href=\"\/campus\/ibkr-quant-news\/back-testing-on-ibkr-with-backtrader-part-i\/\">Back Testing with IBKR with Backtrader<\/a>, where we setup the Backtrader and the IBKR TWS API.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-ibkr-tws-api\">The IBKR TWS API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Although the Interactive Brokers TWS API is mainly used for trading, it can also be used to retrieve historical data from Interactive Brokers. This data can either be written into files and used in subsequent analysis or used without saving to back test a strategy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note, that data will only be available for the markets and securities that have been enabled for the account.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-historical-data-types\">Historical Data Types<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The IB data feed can also supply market data at different resolutions (if it is available). In these examples we will retrieve historical data in the form of candlesticks (OHLCV). Note that different data types can also be accessed by using the \u201cwhat=\u201d parameter, see that table below for further details. (Reference: <a href=\"https:\/\/interactivebrokers.github.io\/tws-api\/historical_bars.html\">https:\/\/interactivebrokers.github.io\/tws-api\/historical_bars.html<\/a>)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"952\" height=\"375\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-49.png\" alt=\"\" class=\"wp-image-152635 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-49.png 952w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-49-700x276.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-49-300x118.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-49-768x303.png 768w\" data-sizes=\"(max-width: 952px) 100vw, 952px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 952px; aspect-ratio: 952\/375;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Details:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TRADES<\/strong> data is adjusted for splits, but not dividends.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ADJUSTED_LAST<\/strong> data is adjusted for splits and dividends.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SCHEDULE<\/strong> returns historical trading schedule only with no information about OHLCV<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using Backtrader with Historical Data<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Backtrader has extensive support for retrieving and analysing data. To display the data we must first create a TestPrinter and register it with the framework so that it prints the market data as it arrives.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create A Test Printer<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"865\" height=\"469\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-50.png\" alt=\"\" class=\"wp-image-152637 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-50.png 865w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-50-700x380.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-50-300x163.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-50-768x416.png 768w\" data-sizes=\"(max-width: 865px) 100vw, 865px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 865px; aspect-ratio: 865\/469;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Retrieving Simple BID_ASK Historical Data<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"485\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-51.png\" alt=\"\" class=\"wp-image-152639 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-51.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-51-700x393.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-51-300x169.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-51-768x432.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/485;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Note the use of the <strong>historical=True<\/strong> and <strong>what=BID_ASK<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Output<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"865\" height=\"192\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-52.png\" alt=\"\" class=\"wp-image-152641 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-52.png 865w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-52-700x155.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-52-300x67.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-52-768x170.png 768w\" data-sizes=\"(max-width: 865px) 100vw, 865px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 865px; aspect-ratio: 865\/192;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Fetch TRADES for a Time Range (2016\/01\/01 \u2013 2018\/01\/01)<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"598\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-53.png\" alt=\"\" class=\"wp-image-152643 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-53.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-53-700x485.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-53-300x208.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-53-768x532.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/598;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Output<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"865\" height=\"225\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-54.png\" alt=\"\" class=\"wp-image-152645 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-54.png 865w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-54-700x182.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-54-300x78.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-54-768x200.png 768w\" data-sizes=\"(max-width: 865px) 100vw, 865px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 865px; aspect-ratio: 865\/225;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How is the Data Presented in the Strategy?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The data retrieved from IB is presented in the strategy as the variable self.datas[0].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The latest close price is available at index 0, and progressively earlier prices are stored using a negative index. (See diagram below)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large img-twothird\"><img decoding=\"async\" width=\"544\" height=\"251\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/data-presented-strategy.png\" alt=\"\" class=\"wp-image-152593 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/data-presented-strategy.png 544w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/data-presented-strategy-300x138.png 300w\" data-sizes=\"(max-width: 544px) 100vw, 544px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 544px; aspect-ratio: 544\/251;\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"402\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-56.png\" alt=\"\" class=\"wp-image-152649 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-56.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-56-700x326.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-56-300x140.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-56-768x358.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/402;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Using IB Historical Data to Drive a Strategy with what=MIDPOINT<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The data retrieved from IB is presented in the strategy as self.datas[0].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The latest close price is available at index 0, and progressively earlier prices are stored using a negative index. (See diagram below)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"865\" height=\"571\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-57.png\" alt=\"\" class=\"wp-image-152651 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-57.png 865w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-57-700x462.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-57-300x198.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-57-768x507.png 768w\" data-sizes=\"(max-width: 865px) 100vw, 865px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 865px; aspect-ratio: 865\/571;\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Naming Datasources and using them in a Strategy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Datasources can be given logical data names (i.e. based on the &#8220;what&#8221; parameter), the logical name can then be accessed using the _name variable. In the strategy below the logical name is stored in the self.name0 and self.name1 variables, and can be used to identify the buy for each symbol.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"621\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-58.png\" alt=\"\" class=\"wp-image-152653 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-58.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-58-700x504.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-58-300x216.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-58-768x553.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/621;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">See the name parameter being used to tag each data source in the example below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"869\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-48.png\" alt=\"\" class=\"wp-image-152632 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-48.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-48-700x705.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-48-300x302.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-48-768x773.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/869;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Output<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"863\" height=\"194\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-47.png\" alt=\"\" class=\"wp-image-152630 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-47.png 863w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-47-700x157.png 700w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-47-300x67.png 300w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/image-47-768x173.png 768w\" data-sizes=\"(max-width: 863px) 100vw, 863px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 863px; aspect-ratio: 863\/194;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em><em>Stay tuned for the next installment in this series to learn&nbsp;about&nbsp;various types of real-time data that can be used to run trading strategies.<\/em><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Visit Atreyu Trading Services <a href=\"https:\/\/www.atreyutrading.com\/\">https:\/\/www.atreyutrading.com\/<\/a> for additional insight on Backtrader.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Although the Interactive Brokers TWS API is mainly used for trading, it can also be used to retrieve historical data from Interactive Brokers. <\/p>\n","protected":false},"author":890,"featured_media":152358,"comment_status":"closed","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[339,340,343,349,338,350,341,351,352,344,2197],"tags":[4873,11809,865,575,595],"contributors-categories":[13853],"class_list":["post-152355","post","type-post","status-publish","format-standard","has-post-thumbnail","category-data-science","category-api-development","category-programing-languages","category-python-development","category-ibkr-quant-news","category-quant-asia-pacific","category-quant-development","category-quant-europe","category-quant-north-america","category-quant-regions","category-quant-south-america","tag-backtesting","tag-backtrader","tag-github","tag-ibkr-api","tag-python","contributors-categories-atreyu-trading-services"],"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Retrieving Historical Data from IBKR | IBKR Quant<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/152355\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Retrieving Historical Data from IBKR | IBKR Quant Blog\" \/>\n<meta property=\"og:description\" content=\"Although the Interactive Brokers TWS API is mainly used for trading, it can also be used to retrieve historical data from Interactive Brokers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-22T15:28:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-21T14:57:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"563\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jogi Narain\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jogi Narain\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\\\/\\\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"NewsArticle\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Jogi Narain\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/8085974e98027a34d1ab53a986c2033e\"\n\t            },\n\t            \"headline\": \"Retrieving Historical Data from IBKR\",\n\t            \"datePublished\": \"2022-08-22T15:28:00+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:57:32+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/\"\n\t            },\n\t            \"wordCount\": 464,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/08\\\/api-circle.jpg\",\n\t            \"keywords\": [\n\t                \"backtesting\",\n\t                \"Backtrader\",\n\t                \"GitHub\",\n\t                \"IBKR API\",\n\t                \"Python\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Data Science\",\n\t                \"IBKR API Development\",\n\t                \"Programming Languages\",\n\t                \"Python Development\",\n\t                \"Quant\",\n\t                \"Quant Asia Pacific\",\n\t                \"Quant Development\",\n\t                \"Quant Europe\",\n\t                \"Quant North America\",\n\t                \"Quant Regions\",\n\t                \"Quant South America\"\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/\",\n\t            \"name\": \"Retrieving Historical Data from IBKR | IBKR Quant Blog\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/08\\\/api-circle.jpg\",\n\t            \"datePublished\": \"2022-08-22T15:28:00+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:57:32+00:00\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/retrieving-historical-data-from-ibkr\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/08\\\/api-circle.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/08\\\/api-circle.jpg\",\n\t            \"width\": 1000,\n\t            \"height\": 563,\n\t            \"caption\": \"Quant\"\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"name\": \"IBKR Campus US\",\n\t            \"description\": \"Financial Education from Interactive Brokers\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\",\n\t            \"name\": \"Interactive Brokers\",\n\t            \"alternateName\": \"IBKR\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\",\n\t                \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"width\": 669,\n\t                \"height\": 669,\n\t                \"caption\": \"Interactive Brokers\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\"\n\t            },\n\t            \"publishingPrinciples\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/about-ibkr-campus\\\/\",\n\t            \"ethicsPolicy\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/cyber-security-notice\\\/\"\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/8085974e98027a34d1ab53a986c2033e\",\n\t            \"name\": \"Jogi Narain\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/jogi-narain\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Retrieving Historical Data from IBKR | IBKR Quant","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/152355\/","og_locale":"en_US","og_type":"article","og_title":"Retrieving Historical Data from IBKR | IBKR Quant Blog","og_description":"Although the Interactive Brokers TWS API is mainly used for trading, it can also be used to retrieve historical data from Interactive Brokers.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/","og_site_name":"IBKR Campus US","article_published_time":"2022-08-22T15:28:00+00:00","article_modified_time":"2022-11-21T14:57:32+00:00","og_image":[{"width":1000,"height":563,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","type":"image\/jpeg"}],"author":"Jogi Narain","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jogi Narain","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/#article","isPartOf":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/"},"author":{"name":"Jogi Narain","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/8085974e98027a34d1ab53a986c2033e"},"headline":"Retrieving Historical Data from IBKR","datePublished":"2022-08-22T15:28:00+00:00","dateModified":"2022-11-21T14:57:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/"},"wordCount":464,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","keywords":["backtesting","Backtrader","GitHub","IBKR API","Python"],"articleSection":["Data Science","IBKR API Development","Programming Languages","Python Development","Quant","Quant Asia Pacific","Quant Development","Quant Europe","Quant North America","Quant Regions","Quant South America"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/","url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/","name":"Retrieving Historical Data from IBKR | IBKR Quant Blog","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","datePublished":"2022-08-22T15:28:00+00:00","dateModified":"2022-11-21T14:57:32+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/retrieving-historical-data-from-ibkr\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","width":1000,"height":563,"caption":"Quant"},{"@type":"WebSite","@id":"https:\/\/ibkrcampus.com\/campus\/#website","url":"https:\/\/ibkrcampus.com\/campus\/","name":"IBKR Campus US","description":"Financial Education from Interactive Brokers","publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ibkrcampus.com\/campus\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ibkrcampus.com\/campus\/#organization","name":"Interactive Brokers","alternateName":"IBKR","url":"https:\/\/ibkrcampus.com\/campus\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","width":669,"height":669,"caption":"Interactive Brokers"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/"},"publishingPrinciples":"https:\/\/www.interactivebrokers.com\/campus\/about-ibkr-campus\/","ethicsPolicy":"https:\/\/www.interactivebrokers.com\/campus\/cyber-security-notice\/"},{"@type":"Person","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/8085974e98027a34d1ab53a986c2033e","name":"Jogi Narain","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/jogi-narain\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2022\/08\/api-circle.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/152355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/890"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=152355"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/152355\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/152358"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=152355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=152355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=152355"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=152355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}