{"id":175871,"date":"2020-09-25T15:46:00","date_gmt":"2020-09-25T19:46:00","guid":{"rendered":"https:\/\/ibkrcampus.com\/trading-lessons\/market-data-functions\/"},"modified":"2026-06-29T09:40:14","modified_gmt":"2026-06-29T13:40:14","slug":"market-data-functions","status":"publish","type":"trading-lessons","link":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/","title":{"rendered":"Market Data Functions"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>New to Interactive Brokers?<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-50\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/ndcdyn.interactivebrokers.com\/mkt\/?src=taRAcc&amp;url=%2FUniversal%2FApplication\" target=\"_blank\" rel=\"noreferrer noopener\">Open Account<\/a><\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\nIn the previous lesson, we learned about the IBrokers package and some of the basic API methods like establishing connection with TWS, getting account details, and creating contracts for use in API calls. In this lesson, we will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data from the Trader Workstation.\n<h4>In this lesson, you would:<\/h4>\n<ul>\n \t<li>Different types of market data and market data lines<\/li>\n \t<li>Learn to fetch streaming and historical market data<\/li>\n<\/ul>\n<h3>Types of Market Data<\/h3>\nIt is possible to fetch different kinds of market data from the TWS. A live market data subscription is required to have market data for the requested instruments in TWS.\n\nTypes of market data include:\n<ul>\n \t<li>Top Market Data (Level 1)<\/li>\n \t<li>Market Depth (Level II)<\/li>\n \t<li>Real Time Bars<\/li>\n<\/ul>\n<h3>Market Data Lines<\/h3>\nMarket data lines represent the active market data requests which a user has made. By default, every user has a maximum ticker Limit of 100 market data lines. Thus, the user can get real time market data of up to 100 instruments simultaneously. An error message is thrown if it has reached the maximum number of simultaneous requests.\n<h3>Streaming Market Data Functions &#8211; The reqMktData function<\/h3>\nStreaming level 1 market data can be obtained from the TWS via the reqMktData function.\n\nThe function takes arguments like:\n\nconn &#8211; a valid twsConnection or twsPlayback connection\n\nContract &#8211; twsContract object(s) requested data for\n\ntickGenerics &#8211; comma delimited string of generic tick types\n\nsnapshot &#8211; should snapshot data be returned\n\ntickerId &#8211; ticker id to associate with the returned data\n\ntimeStamp &#8211; include R time stamps\n\nfile &#8211; passed to internal cat calls\n\neventWrapper &#8211; eWrapper object\n\nCALLBACK &#8211; main receiver callback\n\n<strong>Example: <\/strong>\n\nThe image below illustrates how the streaming data function works. We first define the contract for which we want to pull the streaming data on line 8.\n\nOn line 11, we use the function with the TWS connection, and the security objects as the arguments. Upon execution a continuous stream of market data is returned by the TWS.\n\n<img decoding=\"async\" class=\"size-medium wp-image-3364 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/Screen-Shot-2020-09-25-at-3.19.34-PM.png\" alt=\"\" width=\"884\" height=\"540\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 884px; aspect-ratio: 884\/540;\">\n\nBy default, there are certain \u2018default tick types\u2019 that are returned. Additional data types are available that can be requested by specifying certain \u2018generic tick types\u2019 in the market data request.\n\nCallbacks, via CALLBACK and eventWrapper are designed to allow for R level processing of the real-time data stream and provide for more control over the incoming results. We will see how to do this in the next lesson.\n<h3>Streaming Market Data Functions \u2013 The reqMktDepth function<\/h3>\nThis function allows for streaming market depth i.e. order book data to be handled in R.\n\nThe function takes the following arguments:\n\nconn &#8211; a valid twsConnection or twsPlayback connection\n\nContract &#8211; twsContract object(s) requested data for\n\ntickerId &#8211; ticker id to associate with the returned data\n\ntimeStamp &#8211; include R time stamps\n\nplayback \u2013 playback speed adjustment\n\nfile &#8211; passed to internal cat calls\n\neventWrapper &#8211; eWrapper object\n\nCALLBACK &#8211; main receiver callback\n\n<strong>Example: <\/strong>\n\nThe image below illustrates how the streaming market depth function works. We first define the contract for which we want to pull the data on line 8. On line 11, we use the function with the TWS connection, and the security objects as the arguments.\n\n<img decoding=\"async\" class=\"size-medium wp-image-3365 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/Screen-Shot-2020-09-25-at-3.22.32-PM.png\" alt=\"\" width=\"894\" height=\"540\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 894px; aspect-ratio: 894\/540;\">\n\nThe output can be seen in the console. We can see the market depth data up to 5 best bid and ask prices.\n<h3>Streaming Market Data Functions \u2013 reqRealTimeBars Function<\/h3>\nThis function allows for streaming real-time bars to be handled in R.\n\nThe function takes the following arguments:\n\nconn &#8211; a valid twsConnection or twsPlayback connection\n\nContract &#8211; twsContract object(s) requested data for\n\ntickerId &#8211; ticker id to associate with the returned data\n\nwhatToShow &#8211; type of data to be extracted\n\nbar size &#8211; bar size to retrieve\n\nfile &#8211; passed to internal cat calls\n\neventWrapper &#8211; eWrapper object\n\nCALLBACK &#8211; main receiver callback\n\n<strong>Example: <\/strong>\n\nLet us now see how the real time bars function works. We first define the contract on line 8. We construct the function on line 11 with tws connection, security object, and the whatToShow as the arguments. Upon execution, a continuous stream of real time bars data is returned by the TWS.\n\n<img decoding=\"async\" class=\"size-medium wp-image-3366 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/Screen-Shot-2020-09-25-at-3.25.50-PM.png\" alt=\"\" width=\"960\" height=\"540\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 960px; aspect-ratio: 960\/540;\">\n<h3>Historical Market Data Function &#8211; reqHistoricalData Function<\/h3>\nHistorical market data is obtained from the TWS via the reqHistoricalData function. The data is delivered in the form of candlesticks.\n\nThe function takes the following arguments:\n\ntickerId &#8211; a unique identifier which will serve to identify the incoming data\n\nContract &#8211; a twsContract you are interested in\n\nendDateTime &#8211; request\u2019s end date and time\n\nduration &#8211; time span that the request will cover\n\nbarSize &#8211; bar size to retrieve\n\nwhatToShow &#8211; type of data to be extracted\n\nTimeformat &#8211; format in which the incoming bar\u2019s data should be presented\n\neventHistoricalData &#8211; callback function to process data\n\nfile &#8211; file to write data to\n\n<strong>Valid Duration String Units<\/strong> &#8211; The duration string must be of the form \u2018n unit\u2019 where the unit string can be any of strings shown in the table below.\n\n<img decoding=\"async\" class=\"half aligncenter wp-image-3369 size-full lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/11\/Screen-Shot-2020-09-25-at-3.33.15-PM.png\" alt=\"\" width=\"332\" height=\"330\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 332px; aspect-ratio: 332\/330;\">\n\n<strong>Valid Bar Sizes<\/strong> &#8211; The valid bar sizes must be specified exactly as shown in the below table. However, there is no guarantee from the API that all will work for all securities or durations.\n\n<img decoding=\"async\" class=\"size-full wp-image-3372 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/11\/Screen-Shot-2020-09-25-at-3.35.53-PM.png\" alt=\"\" width=\"888\" height=\"352\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 888px; aspect-ratio: 888\/352;\">\n\n<strong>Valid whatToShow values<\/strong> &#8211; The whatToShow values can be any one of the following type: Trades, Midpoint, Bid, Ask, and Bid_Ask\n\n<img decoding=\"async\" class=\"half wp-image-3373 size-full aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2022\/11\/Screen-Shot-2020-09-25-at-3.37.03-PM.png\" alt=\"\" width=\"384\" height=\"276\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 384px; aspect-ratio: 384\/276;\">\n\n<strong>Example: <\/strong>\n\nLet us now see how the historical data function works. We first define the contract for which we want to pull the historical data on line 8. On line 11, we use the function with the TWS connection, and the security objects as the arguments. Upon execution the output can be seen in the console.\n\n<img decoding=\"async\" class=\"size-medium wp-image-3375 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/Screen-Shot-2020-09-25-at-3.38.48-PM.png\" alt=\"\" width=\"831\" height=\"540\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 831px; aspect-ratio: 831\/540;\">\n\nIn the next example, we pull the 1 minute data for the duration of 1 week by specifying the respective arguments. Upon execution the 1 minute data can be seen in the console.\n\n<img decoding=\"async\" class=\"size-medium wp-image-3376 aligncenter lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/Screen-Shot-2020-09-25-at-3.39.50-PM.png\" alt=\"\" width=\"907\" height=\"540\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 907px; aspect-ratio: 907\/540;\">\n<h3>Summary<\/h3>\nIn this lesson, we covered the types of market data, learnt about market data lines and saw the working of the various streaming and historical market data functions. In the next lesson, we will learn how to customize these market data functions.\n\nNote \u2013 The IBrokers package provides native R access to Interactive Brokers Trader Workstation API","protected":false},"excerpt":{"rendered":"<p>In this lesson, we will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data from the Trader Workstation.<\/p>\n","protected":false},"author":851,"featured_media":221441,"parent":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"contributors-categories":[13654],"traders-academy":[13126,13128,13132],"class_list":["post-175871","trading-lessons","type-trading-lessons","status-publish","has-post-thumbnail","contributors-categories-quantinsti","traders-academy-intermediate-trading","traders-academy-level","traders-academy-trading-lesson"],"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 v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Archives | Traders&#039; Academy | IBKR Campus<\/title>\n<meta name=\"description\" content=\"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.\" \/>\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\/trading-lessons\/175871\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Market Data Functions\" \/>\n<meta property=\"og:description\" content=\"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-29T13:40:14+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Market Data Functions\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 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\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/\",\n\t            \"name\": \"Market Data Functions\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/09\\\/mqdefault-8.jpg\",\n\t            \"datePublished\": \"2020-09-25T19:46:00+00:00\",\n\t            \"dateModified\": \"2026-06-29T13:40:14+00:00\",\n\t            \"description\": \"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/\"\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\\\/trading-lessons\\\/market-data-functions\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/09\\\/mqdefault-8.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/09\\\/mqdefault-8.jpg\",\n\t            \"width\": 320,\n\t            \"height\": 180,\n\t            \"caption\": \"Market Data Functions\"\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/trading-lessons\\\/market-data-functions\\\/#breadcrumb\",\n\t            \"itemListElement\": [\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 1,\n\t                    \"name\": \"Academy Lessons\",\n\t                    \"item\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 2,\n\t                    \"name\": \"Market Data Functions\"\n\t                }\n\t            ]\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}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Archives | Traders' Academy | IBKR Campus","description":"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.","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\/trading-lessons\/175871\/","og_locale":"en_US","og_type":"article","og_title":"Market Data Functions","og_description":"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/","og_site_name":"IBKR Campus US","article_modified_time":"2026-06-29T13:40:14+00:00","twitter_card":"summary_large_image","twitter_title":"Market Data Functions","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/","url":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/","name":"Market Data Functions","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/09\/mqdefault-8.jpg","datePublished":"2020-09-25T19:46:00+00:00","dateModified":"2026-06-29T13:40:14+00:00","description":"We will cover the different types of Market Data, learn about Market data lines and show how to fetch streaming and historical market data.","breadcrumb":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/09\/mqdefault-8.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/09\/mqdefault-8.jpg","width":320,"height":180,"caption":"Market Data Functions"},{"@type":"BreadcrumbList","@id":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/market-data-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Academy Lessons","item":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/"},{"@type":"ListItem","position":2,"name":"Market Data Functions"}]},{"@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\/"}]}},"_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/trading-lessons\/175871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/trading-lessons"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/trading-lessons"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/851"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=175871"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/trading-lessons\/175871\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/221441"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=175871"}],"wp:term":[{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=175871"},{"taxonomy":"traders-academy","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/traders-academy?post=175871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}