{"id":176000,"date":"2021-04-28T19:31:00","date_gmt":"2021-04-28T23:31:00","guid":{"rendered":"https:\/\/ibkrcampus.com\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/"},"modified":"2023-04-25T21:02:12","modified_gmt":"2023-04-26T01:02:12","slug":"the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet","status":"publish","type":"trading-lessons","link":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/","title":{"rendered":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet"},"content":{"rendered":"<p>In this lesson, we&#8217;re going to define Excel DDE, run the DdeSocketBridge batch file, access market data using a blank spreadsheet and walk-through a sample DDE spreadsheet exploring syntax.<\/p>\n<p><strong>What is DDE?<\/strong><\/p>\n<p>The Dynamic Data Exchange (DDE) protocol is another method provided by Microsoft that allows inter-process communication between Windows applications.<\/p>\n<p><strong>&nbsp;<\/strong>For the purposes of IBKR, this allows communication between TWS and Excel using standard DDE control strings.<\/p>\n<p><strong>Differences between legacy DDE connection and new DDE socket bridge<\/strong><\/p>\n<ul>\n<li>Beginning with TWS API 975, the new DDE socket bridge was rolled out to replace the legacy DDE connection, which had some limitations.<\/li>\n<li>Legacy DDE connects to TWS using a dynamic link library (dll) file, which only allowed one active connection per machine.<\/li>\n<li>While the new socket bridge allows you to connect up to 32 instances to the same TWS session.<\/li>\n<li>Plus, the DDE Socket Bridge utilizes Java.&nbsp; So ensure that Java is installed before running the batch file.<\/li>\n<li><strong style=\"font-size: 0.9rem;\">&nbsp;<\/strong><span style=\"font-size: 0.9rem;\">The legacy DDE connection requires 32-bit TWS, while the new socket bridge works in either 32 or 64-bit architecture.<\/span><\/li>\n<li>The available functions for the legacy DDE are limited while the new socket bridge brings all the same functions we offer with our other socket based programming languages such as news, tick data, histogram, streaming PnL.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"half aligncenter wp-image-4511 size-medium lazyload\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2023\/01\/compare-dde.png\" alt=\"\" width=\"960\" height=\"531\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 960px; aspect-ratio: 960\/531;\"><\/p>\n<p><strong>Running the new socket bridge and new sample<\/strong><\/p>\n<ul>\n<li>Full instructions on running the new socket bridge and sample can be found on the <a href=\"https:\/\/interactivebrokers.github.io\/tws-api\/dde_intro.html\" target=\"_blank\" rel=\"noopener\">GitHub page<\/a>.<\/li>\n<li>First launch TWS or IB Gateway.<\/li>\n<li>Then navigate to <strong>Global Configuration -&gt; API -&gt; Settings<\/strong> and ensure that &#8220;<strong>Enable ActiveX and Socket Clients<\/strong>&#8221; is checked.<\/li>\n<li>When using the IB Gateway, the socket connection is enabled automatically.<\/li>\n<li>By default, the socket bridge connects using port <strong>7496<\/strong>. Make sure your TWS is set to the same.<\/li>\n<li>The \u201c<strong>Enable DDE connections<\/strong>\u201d setting was used for the legacy DDE connection. <em>Starting with TWS Build 980 and above, it is deprecated.<\/em><\/li>\n<li>Make sure to leave this setting unchecked.<\/li>\n<li>Then, navigate to <strong>C:TWS APIsamplesDdeSocketBridge<\/strong> and double click on the batch file \u201c<strong>runDdeSocketBridge<\/strong>\u201d to run it.\n<ul>\n<li>If the socket bridge window does not open and appears to only flash momentarily, you may need a fresh install of Java. <em>See the Pre-requisites section listed in Lesson 1.<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Upon successful connection of the socket bridge, there should be a popup window that shows Connected!<\/li>\n<li>Now that the connection has been established, make sure to leave terminal running and now we can begin to use the sample spreadsheet. If terminal is closed, it will disconnect the socket bridge.<\/li>\n<\/ul>\n<h4>What if you want to connect using a <strong>different port<\/strong> or specify a different username?<\/h4>\n<p>This can be done by modifying the batch file: <strong>runDdeSocketBridge.bat<\/strong>.<\/p>\n<pre>Open runDdeSocketBridge.bat in Editor\/Notepad and modify to have: \n\necho off\nif not exist \"DdeSocketBridge.jar\" goto :error\njava -Djava.library.path=.srcmainresources -jar DdeSocketBridge.jar -myDDE -p7497 goto :end\n:error\necho DdeSocketBridge.jar is not found\n:end<\/pre>\n<h4><strong>Requesting data from a blank spreadsheet<\/strong><\/h4>\n<p>Lets start with a <strong>blank<\/strong> spreadsheet and subscribe to ticker symbol AMZN and request the bid, ask and last price.<\/p>\n<p>As defined previously \u2013 <strong>make sure that the runDdeSocketBridge is running by double clicking on the .bat (batch) file<\/strong>.<\/p>\n<p>Market Data retrieval requires at least two different DDE links:<\/p>\n<ul>\n<li>one &#8211;&nbsp; to start the market data subscription and<\/li>\n<li>two &#8211;&nbsp; specifies the returning tick type.<\/li>\n<\/ul>\n<p>The formula to start the request will need to provide TWS with enough information so that TWS can identify which instrument we are interested in.<\/p>\n<p>I am going to specify the stock AMZN with this formula:<br \/>\n<strong>twsuser<\/strong><br \/>\nThe user name with which you logged into the TWS<br \/>\n<strong>requestId<\/strong><br \/>\nThe request unique identifier (any positive integer)<br \/>\n<strong>symbol<\/strong><br \/>\nThe contract symbol<br \/>\n<strong>sectype<\/strong><br \/>\nThe asset class of the contract<br \/>\n<strong>exchange <\/strong><br \/>\nthe listing exchange or venue we want to query the data from<br \/>\n<strong>currency<\/strong><br \/>\nThe contract currency<\/p>\n<pre>=Stwsserver|tik!'id2?req?AMZN_STK_SMART_USD_~\/'<\/pre>\n<p>Now for the second request to receive the bid price:<br \/>\n<strong>twsuser<\/strong><br \/>\nThe user name used in the first request &#8211; twsserver<br \/>\n<strong>requestId<\/strong><br \/>\nThe request identifier used in the first request \u2013 2<br \/>\n<strong>Tick type<\/strong> \u2013 bid price<br \/>\nNow \u2013 I\u2019ll also request the ask and last price.<\/p>\n<p>This is how you request market data from TWS using Excel DDE. Next, we\u2019ll open a sample spreadsheet provided in the TWS API download which contains a variety of examples.<\/p>\n<pre>=Stwsserver|tik!id2?bid<\/pre>\n<p>Now let\u2019s navigate to the samples folder to open the new sample DDE spreadsheet, NewTwsDde.xls.<br \/>\nAs you can see, the sample spreadsheet\/workbook consists of multiple tabs which for the different API functionalities.<\/p>\n<ul>\n<li>In the tickers tab, you may request streaming market data.<\/li>\n<li>This tab pulls the TWS watch list data, like RTD.<br \/>\nTo begin to stream data, you will first need to fill in the contract description section for your instrument.<\/li>\n<li>There are already a few sample contracts that have been filled out.<\/li>\n<li>A stock contract would typically consist of a symbol, secType, exchange, currency, and primaryExchange as shown in row 19.<\/li>\n<li>These parameters for any instrument type can be found in the TWS contract description window.<\/li>\n<\/ul>\n<p>In <strong>TWS<\/strong> you can right click on the instrument of interest, then go to \u201cFinancial Instrument Info\u201d, then \u201cDescription\u201d.<\/p>\n<ul>\n<li>For more information on contract definitions, check out the <a href=\"https:\/\/interactivebrokers.github.io\/tws-api\/contracts.html#Overview\" target=\"_blank\" rel=\"noopener\">API documentation<\/a>.<\/li>\n<li>As with RTD, you can also request generic ticks.<\/li>\n<li>Once you have your request ready, click on the symbol column of interest.<\/li>\n<li>If requesting data for multiple symbols, you may highlight multiple rows by pressing the <strong>Ctrl key<\/strong> as you click on row.<\/li>\n<li>Click on \u201cReq Mkt Data\u201d on the top left of the sheet.<\/li>\n<li>The quotes for different tick types will begin to stream to Excel from TWS.<\/li>\n<li>When you want data to stop streaming click on \u201cCancel Mkt Data\u201d<\/li>\n<\/ul>\n<p><strong>Functionality for the rest of the spreadsheet<\/strong><\/p>\n<p>There is a lot of functionality throughout in the Excel tabs and it would take some time to go through each and everyone one of them during this lesson.<\/p>\n<p>We encourage you to review the corresponding documentation for each tab of interest on our github guide. For example, for the \u201chistoricalData\u201d tab, and the \u201cAccount\u201d tab.<\/p>\n<p><strong>How to port legacy DDE sheets and formulas<\/strong><\/p>\n<p>The new socket bridge is backwards compatible with legacy DDE Excel sheets and formulas. You only need to change the username in the DDE formulas to the socket bridge username, whether this is entered by a macro button like in the sample spreadsheets or directly in the formula bar.<\/p>\n<ul>\n<li>For example, a client with IBKR username \u201csample123\u201d may have the following DDE control string to request market data from an old spreadsheet.<\/li>\n<\/ul>\n<pre>=Ssample123|tik!'id1?req?EUR_CASH_IDEALPRO_USD_~\/'<\/pre>\n<ul>\n<li>After the socket bridge is connected, the client would only need to ensure the formulas reference the socket bridge username, which is \u201ctwsserver\u201d by default.<\/li>\n<\/ul>\n<pre>=Stwsserver|tik!'id1?req?EUR_CASH_IDEALPRO_USD_~\/'<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This lesson will show you how to use DDE in Excel with TWS.<\/p>\n","protected":false},"author":851,"featured_media":221401,"parent":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"contributors-categories":[13576],"traders-academy":[13125,13128,13132],"class_list":{"0":"post-176000","1":"trading-lessons","2":"type-trading-lessons","3":"status-publish","4":"has-post-thumbnail","6":"contributors-categories-interactive-brokers","7":"traders-academy-beginner-trading","8":"traders-academy-level","9":"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 v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Archives | Traders&#039; Academy | IBKR Campus<\/title>\n<meta name=\"description\" content=\"This lesson will show you how to use DDE in Excel with TWS.\" \/>\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\/176000\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet\" \/>\n<meta property=\"og:description\" content=\"This lesson will show you how to use DDE in Excel with TWS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-26T01:02:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" 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\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/\",\n\t            \"name\": \"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2021\\\/04\\\/mqdefault-1.jpg\",\n\t            \"datePublished\": \"2021-04-28T23:31:00+00:00\",\n\t            \"dateModified\": \"2023-04-26T01:02:12+00:00\",\n\t            \"description\": \"This lesson will show you how to use DDE in Excel with TWS.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2021\\\/04\\\/mqdefault-1.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2021\\\/04\\\/mqdefault-1.jpg\",\n\t            \"width\": 320,\n\t            \"height\": 180,\n\t            \"caption\": \"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet\"\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\\\/#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\": \"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet\"\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":"This lesson will show you how to use DDE in Excel with TWS.","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\/176000\/","og_locale":"en_US","og_type":"article","og_title":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet","og_description":"This lesson will show you how to use DDE in Excel with TWS.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/","og_site_name":"IBKR Campus US","article_modified_time":"2023-04-26T01:02:12+00:00","twitter_card":"summary_large_image","twitter_title":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/","url":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/","name":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/#primaryimage"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2021\/04\/mqdefault-1.jpg","datePublished":"2021-04-28T23:31:00+00:00","dateModified":"2023-04-26T01:02:12+00:00","description":"This lesson will show you how to use DDE in Excel with TWS.","breadcrumb":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2021\/04\/mqdefault-1.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2021\/04\/mqdefault-1.jpg","width":320,"height":180,"caption":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet"},{"@type":"BreadcrumbList","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/the-dynamic-data-exchange-dde-in-excel-using-a-sample-spreadsheet\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Academy Lessons","item":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/"},{"@type":"ListItem","position":2,"name":"The Dynamic Data Exchange (DDE) in Excel using a sample spreadsheet"}]},{"@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\/176000","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=176000"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/trading-lessons\/176000\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/221401"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=176000"}],"wp:term":[{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=176000"},{"taxonomy":"traders-academy","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/traders-academy?post=176000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}