{"id":216089,"date":"2024-12-06T12:16:30","date_gmt":"2024-12-06T17:16:30","guid":{"rendered":"https:\/\/ibkrcampus.com\/campus\/?post_type=trading-lessons&#038;p=216089"},"modified":"2025-09-29T14:02:02","modified_gmt":"2025-09-29T18:02:02","slug":"running-the-donchian-channel","status":"publish","type":"trading-lessons","link":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/running-the-donchian-channel\/","title":{"rendered":"Running the Donchian Channel"},"content":{"rendered":"\n<p><strong>Starting the trading app<\/strong><\/p>\n\n\n\n<p>This snippet demonstrates how to set up and run an instance of a trading application (`TradingApp`) that connects to Interactive Brokers&#8217; paper trading account, manages the connection on a separate thread, and confirms when the connection is successful.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Step-by-Step Breakdown<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>1. <strong>Creating an Instance of the Trading App<\/strong>:<\/p>\n\n\n\n<p>&#8211; An instance of the `TradingApp` class is created, which handles interactions with the Interactive Brokers (IB) API, including data retrieval and order placement.<\/p>\n\n\n\n<p>2. <strong>Connecting to the IB Paper Trading Account<\/strong>:<\/p>\n\n\n\n<p>&#8211; The trading app is connected to the IB Gateway or Trader Workstation using the default local IP address and the port specific to paper trading. A unique client ID is used to distinguish this connection session from others.<\/p>\n\n\n\n<p>3. <strong>Starting the App on a Separate Thread<\/strong>:<\/p>\n\n\n\n<p>&#8211; The main loop of the trading app is started on a separate thread using Python\u2019s threading capabilities. This allows the app to run in the background, ensuring the main program can continue executing other tasks concurrently.<\/p>\n\n\n\n<p>4. <strong>Checking Connection Status<\/strong>:<\/p>\n\n\n\n<p>&#8211; A loop continuously checks the app\u2019s connection status by verifying if an order ID has been received from IB, which confirms the connection. If connected, it outputs a confirmation message; otherwise, it indicates that the app is still trying to establish the connection.<\/p>\n\n\n\n<p>This setup enables the trading application to connect to the Interactive Brokers API efficiently and non-blockingly. By running on a separate thread, the app remains responsive, allowing other code to execute without being blocked by the connection process. The connection status check provides real-time feedback, confirming when the app is ready to handle trading operations.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Create an instance of our trading app\napp = TradingApp()\n\n# Connect the trading app to our paper trading account\n# on port 7497 using client id 5\napp.connect(\"127.0.0.1\", 7497, clientId=5)\n\n# Start the app on a thread so code can continue to execute\nthreading.Thread(target=app.run, daemon=True).start()\n\n# Do a simple check to confirm we're connected\nwhile True:\n    if isinstance(app.nextOrderId, int):\n        print(\"connected\")\n        break\n    else:\n        print(\"waiting for connection\")\n        time.sleep(1)\n\n# Define a contract for use with the app\nnvda = TradingApp.get_contract(\"NVDA\")\n\n# Request 1 minute bars over the last trading day\n# for the contract we defined above. Use the\n# (arbitrary) request ID 99.\ndata = app.get_historical_data(99, nvda)\ndata.tail()\n\n# Using the acquired data, compute the Donchian\n# channels over a 30 minute window.\ndonchian = donchian_channel(data, period=30)\ndonchian.tail()\n\n<\/pre>\n\n\n\n<p><strong>Running the trading logic<\/strong><\/p>\n\n\n\n<p>This section of the code outlines a trading strategy using the Donchian Channel for Nvidia (NVDA) stock. The strategy involves requesting historical data, calculating the Donchian Channel, and executing trades based on price breakouts.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong> Step-by-Step Breakdown<\/strong><\/p>\n\n\n\n<p>1. <strong>Contract Setup<\/strong>:<\/p>\n\n\n\n<p>&#8211; The code specifies the period for the Donchian Channel calculation and creates a contract for Nvidia (NVDA) using the `TradingApp` class. This sets up the stock to be traded and the parameters for the indicator.<\/p>\n\n\n\n<p>2. <strong>Data Retrieval Loop<\/strong>:<\/p>\n\n\n\n<p>&#8211; The code enters a loop to continually request historical data for the NVDA contract from Interactive Brokers.<\/p>\n\n\n\n<p>&#8211; If the amount of data received is less than the specified period, the rest of the code is skipped, ensuring that sufficient data is available for calculating the Donchian Channel.<\/p>\n\n\n\n<p>3. <strong>Donchian Channel Calculation<\/strong>:<\/p>\n\n\n\n<p>&#8211; If there is enough data, the Donchian Channel is computed using the specified period. This channel helps identify potential breakouts by plotting the highest high and the lowest low over the given timeframe.<\/p>\n\n\n\n<p>4. <strong>Price and Channel Comparison<\/strong>:<\/p>\n\n\n\n<p>&#8211; The last traded price and the latest values of the upper and lower Donchian Channel bands are extracted.<\/p>\n\n\n\n<p>&#8211; The code checks whether the last price is outside the upper or lower bands, indicating a potential breakout.<\/p>\n\n\n\n<p>5. <strong>Trading Decisions<\/strong>:<\/p>\n\n\n\n<p>&#8211; <strong>Breakout to the Upside<\/strong>: If the last price is at or above the upper band, this signals a bullish breakout. The code responds by placing a market order to buy 10 shares of NVDA.<\/p>\n\n\n\n<p>&#8211; <strong>Breakout to the Downside<\/strong>: If the last price is at or below the lower band, this signals a bearish breakout. The code responds by placing a market order to sell 10 shares of NVDA.<\/p>\n\n\n\n<p>This trading strategy employs the Donchian Channel to identify breakouts and make trading decisions in real time. The approach involves continuously retrieving market data, calculating the channel, and executing trades when the price moves outside the established boundaries, aiming to capitalize on potential price momentum.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">period = 30\n\nwhile True:\n    \n    # Ask IB for data for our contract\n    print(\"Getting data for contract...\")\n    data = app.get_historical_data(99, nvda)\n\n    # We don't have enough data to compute the donchian\n    # channel for period so skip the rest of the code\n    if len(data) &lt; period:\n        print(f\"There are only {len(data)} bars of data, skipping...\")\n        continue\n\n    # Compute the donchian channel\n    print(\"Computing the Donchian Channel...\")\n    donchian = donchian_channel(data, period=period)\n\n    # Get the last traded price we have\n    last_price = data.iloc[-1].close\n\n    # Get the last channel values we have\n    upper, lower = donchian[[\"upper\", \"lower\"]].iloc[-1]\n\n    print(f\"Check if last price {last_price} is outside the channels {upper} and {lower}\")\n    \n    # Breakout to the upside\n    if last_price >= upper:\n        print(\"Breakout dedected, going long...\")\n        # Enter a buy market order for 10 shares\n        app.place_order(nvda, \"BUY\", \"MKT\", 10)\n    \n    # Breakout to the downside\n    elif last_price &lt;= lower:\n        print(\"Breakout dedected, going long...\")\n        # Enter a sell market order for 10 shares\n        app.place_order(nvda, \"SELL\", \"MKT\", 10)\n\napp.disconnect()<\/pre>\n\n\n\n<p><strong>Areas for Improvement in the Trading Logic<\/strong><\/p>\n\n\n\n<p><strong>1. Avoiding Repeated Data Requests in Tight Loops<\/strong><\/p>\n\n\n\n<p><strong>Current Issue<\/strong>: The code continuously requests historical data in a tight loop without any delay or checks for significant market changes, leading to excessive data requests that could overwhelm the API or violate rate limits.<\/p>\n\n\n\n<p><strong>Improvement<\/strong>: Implement a more strategic approach to data fetching, such as incorporating a reasonable time delay between requests or triggering data requests based on market events or specific intervals. This can help reduce unnecessary API calls and enhance system performance.<\/p>\n\n\n\n<p><strong>2. Improving Breakout Confirmation Logic<\/strong><\/p>\n\n\n\n<p><strong>Current Issue<\/strong>: The strategy triggers trades immediately upon detecting a breakout above or below the channel bands, which can lead to false signals, especially in volatile markets where prices frequently touch or briefly exceed the bands.<\/p>\n\n\n\n<p><strong>Improvement<\/strong>: Add breakout confirmation criteria, such as waiting for a candle close outside the bands, using additional indicators (e.g., volume, RSI), or checking if the breakout holds for a certain number of periods. This would help filter out false signals and improve trade accuracy.<\/p>\n\n\n\n<p><strong>3. Refining Trade Execution and Position Management**<\/strong><\/p>\n\n\n\n<p><strong>Current Issue<\/strong>: The current logic executes market orders immediately upon breakout detection without considering the existing position, risk limits, or trade size adjustments. This could lead to overtrading or violating risk management rules.<\/p>\n\n\n\n<p><strong>Improvement<\/strong>: Introduce position management logic that checks current positions before placing new trades, and incorporate risk management measures such as position sizing, stop-loss, and take-profit orders. This approach would help control risk, prevent overexposure, and enhance overall strategy robustness.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><em>This is a third-party open-source library. It is not associated, supported, or managed by Interactive Brokers, completely independent. And if you\u2019re using Pandas with your IB API or your trading apps, Interactive Brokers cannot help or offer support with Pandas specifically.<\/em><\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>PyQuant News Site:\u00a0<a href=\"https:\/\/www.pyquantnews.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.pyquantnews.com\/<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last lesson, we covered the basic scaffolding of a Donchian trading app using the Interactive Brokers API.  Now, let&#8217;s execute the sample trading app.<\/p>\n","protected":false},"author":1087,"featured_media":216094,"parent":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"contributors-categories":[17813],"traders-academy":[13117,13125,13128,13132],"class_list":{"0":"post-216089","1":"trading-lessons","2":"type-trading-lessons","3":"status-publish","4":"has-post-thumbnail","6":"contributors-categories-pyquantnews","7":"traders-academy-api","8":"traders-academy-beginner-trading","9":"traders-academy-level","10":"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.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Archives | Traders&#039; Academy | IBKR Campus<\/title>\n<meta name=\"description\" content=\"Running the Donchian Channel and see the results.\" \/>\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\/216089\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Running the Donchian Channel | IBKR Campus US\" \/>\n<meta property=\"og:description\" content=\"Running the Donchian Channel and see the results.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/running-the-donchian-channel\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-29T18:02:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/12\/DonChan-thumb-4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\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\\\/running-the-donchian-channel\\\/\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/running-the-donchian-channel\\\/\",\n\t            \"name\": \"Running the Donchian Channel | IBKR Campus US\",\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\\\/running-the-donchian-channel\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/running-the-donchian-channel\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/12\\\/DonChan-thumb-4.jpg\",\n\t            \"datePublished\": \"2024-12-06T17:16:30+00:00\",\n\t            \"dateModified\": \"2025-09-29T18:02:02+00:00\",\n\t            \"description\": \"Running the Donchian Channel and see the results.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/running-the-donchian-channel\\\/#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\\\/running-the-donchian-channel\\\/\"\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\\\/running-the-donchian-channel\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/12\\\/DonChan-thumb-4.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/12\\\/DonChan-thumb-4.jpg\",\n\t            \"width\": 1920,\n\t            \"height\": 1080,\n\t            \"caption\": \"Running the Donchian Channel\"\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/trading-lessons\\\/running-the-donchian-channel\\\/#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\": \"Running the Donchian Channel\"\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":"Running the Donchian Channel and see the results.","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\/216089\/","og_locale":"en_US","og_type":"article","og_title":"Running the Donchian Channel | IBKR Campus US","og_description":"Running the Donchian Channel and see the results.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/trading-lessons\/running-the-donchian-channel\/","og_site_name":"IBKR Campus US","article_modified_time":"2025-09-29T18:02:02+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/12\/DonChan-thumb-4.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/","url":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/","name":"Running the Donchian Channel | IBKR Campus US","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/#primaryimage"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/12\/DonChan-thumb-4.jpg","datePublished":"2024-12-06T17:16:30+00:00","dateModified":"2025-09-29T18:02:02+00:00","description":"Running the Donchian Channel and see the results.","breadcrumb":{"@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/12\/DonChan-thumb-4.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/12\/DonChan-thumb-4.jpg","width":1920,"height":1080,"caption":"Running the Donchian Channel"},{"@type":"BreadcrumbList","@id":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/running-the-donchian-channel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Academy Lessons","item":"https:\/\/ibkrcampus.com\/campus\/trading-lessons\/"},{"@type":"ListItem","position":2,"name":"Running the Donchian Channel"}]},{"@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\/216089","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\/1087"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=216089"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/trading-lessons\/216089\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/216094"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=216089"}],"wp:term":[{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=216089"},{"taxonomy":"traders-academy","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/traders-academy?post=216089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}