PageSourceSearch

https://ninjatrader.com/about-ninjatrader/

html ninjatrader.com collected 2026-10-02 04:57:21 UTC 86,052 bytes, 853 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>About NinjaTrader</title> <link rel="canonical" href="https://ninjatrader.com/about-ninjatrader/"> <meta property="og:type" content="website"> <meta property="og:title" content="About NinjaTrader"> <meta property="og:description" content> <meta property="og:image" itemprop="image" content="https://ninjatrader.com/assets/dist/images/favicons/apple-touch-icon.png"> <meta property="og:site_name" content="NinjaTrader"> <meta property="og:url" content="https://ninjatrader.com/about-ninjatrader/"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@NinjaTrader"> <meta name="twitter:title" content="About NinjaTrader"> <meta name="twitter:description" content> <meta name="twitter:image" content="https://ninjatrader.com/assets/dist/images/favicons/apple-touch-icon.png"> <meta name="twitter:image:alt" content="@NinjaTrader"> <link rel="apple-touch-icon" sizes="180x180" href="/assets/dist/images/favicons/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/dist/images/favicons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/dist/images/favicons/favicon-16x16.png"><link rel="manifest" href="/assets/dist/images/favicons/site.webmanifest"><link rel="mask-icon" href="/assets/dist/images/favicons/safari-pinned-tab.svg" color="#ff4200"><meta name="msapplication-TileColor" content="#da532c"><meta name="theme-color" content="#ffffff"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap">
1<script type="text/javascript">window.dataLayer = window.dataLayer || [];
2function gtag(){dataLayer.push(arguments);}
3gtag('consent', 'default', {
4    'analytics_storage': 'denied',
5    'ad_storage': 'denied',
6    'ad_user_data': 'denied',
7    'ad_personalization': 'denied',
8    'wait_for_update': 500
9});</script>
9<script type="text/javascript">(function () {
10    var hosts = ["ninjatrader.com","www.ninjatrader.com","nt-temp.ninjatrader.com","prop.ninjatrader.com","connect.ninjatrader.com","connect-temp.ninjatrader.com"];
11    if (hosts.indexOf(location.hostname.toLowerCase()) === -1) return;
12    var s = document.createElement('script');
13    s.type = 'text/javascript';
14    s.charset = 'UTF-8';
15    s.src = 'https://cdn.cookielaw.org/scripttemplates/otSDKStub.js';
16    s.setAttribute('data-domain-script', '019bbcec-5a61-77ca-ac17-4d8a0c83a1c4');
17    document.head.appendChild(s);
18})();</script>
18<script type="text/javascript">function OptanonWrapper() {
19    window.dataLayer = window.dataLayer || [];
20    window.dataLayer.push({
21        'event': 'OneTrustGroupsUpdated',
22        'OnetrustActiveGroups': window.OnetrustActiveGroups || ''
23    });
24}</script>
24<script>
vendor: 398 bytes, lines 24-30
24(function (w, d, s, l, i) {
25    w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
26    var f = d.getElementsByTagName(s)[0],
27        j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
28    j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
29    f.parentNode.insertBefore(j, f);
30})(window, document, 'script', 'dataLayer', '
30GTM-5H2422D
vendor: 3 bytes, line 30
30');
30</script>
30<link rel="stylesheet" href="/vendor/slick.css"><link rel="stylesheet" href="/assets/dist/css/main.css">
30<script id="__ada" data-handle="ninjatrader-eap" src="https://static.ada.support/embed2.js"></script>
30<script src="https://cdn.optimizely.com/js/24396460556.js"></script>
30<style>.hero-slider-wrapper .slider-button{display:-ms-flexbox;display:flex}.margin-table__as-of{color:#6b7280;white-space:nowrap;margin:0;font-size:.875rem}
31</style></head> <body> <!--08.18.26 cutover -->  <div class="site-container"> <header id="site-header" class="site-header site-header sticky-header sticky-header-desktop sticky-header-mobile" role="banner">  <a class="visually-hidden focusable" href="#site-main">Skip to Main Content</a> <div class="header-container container"> <div class="header-container__top"> <a href="/" class="header-logo"> <img class="header-logo__icon" src="/media/getmedia/790ee587-3856-4caa-829d-1c219ebb1d4e/NinjaTrader-Payward-logo-white-alt.svg" alt="NinjaTrader by Payward"> </a> <div class="header-container__col2"> <div class="js-culture-selector culture-selector"> <button class="culture-select-btn" aria-label="NT.Expand.Culture.Select"> <svg class="culture-select__icon culture-select__globe"> <use xlink:href="/assets/dist/images/svg-legend.svg#globe2"></use> </svg> </button> </div> <div class="cultureModal-overlay" id="cultureModal"> <div class="cultureModal"> <div class="cultureModal-header"> <p class="cultureModal-title">Change language and country/region</p> <button class="close-button" id="cultureModal-close"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 16 15" fill="none"> <path d="M1.66675 0.833328L15.0001 14.1667M1.66675 14.1667L15.0001 0.833328" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </button> </div> <div class="cultureModal-body"> <div class="cultureModal-countrySelector cultureModal-selector"> <div class="cultureModal-dropdown"> <label>Country</label> <button id="cultureModal-countryDropdown" class="cultureModal-dropdown-toggle"> <span id="countrySelection">United States</span> <span class="dropdown-arrow"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none"> <path d="M7.99996 10.6667C7.93426 10.667 7.86917 10.6542 7.8085 10.629C7.74782 10.6038 7.69279 10.5667 7.64662 10.52L4.31329 7.18666C4.24681 7.0894 4.21681 6.97178 4.22858 6.85455C4.24035 6.73733 4.29314 6.62802 4.37763 6.54592C4.46213 6.46382 4.5729 6.41419 4.69042 6.40578C4.80793 6.39738 4.92464 6.43075 5.01996 6.5L7.99996 9.46L10.98 6.5C11.0739 6.43907 11.1856 6.41145 11.2972 6.42158C11.4087 6.4317 11.5136 6.47898 11.5951 6.55583C11.6765 6.63269 11.7298 6.73466 11.7464 6.84542C11.763 6.95618 11.742 7.0693 11.6866 7.16666L8.35329 10.5C8.30885 10.5504 8.25458 10.5911 8.19382 10.6198C8.13307 10.6485 8.0671 10.6644 7.99996 10.6667Z" fill="black"></path> </svg> </span> </button> <ul id="countryMenu" class="cultureModal-dropdown-menu"></ul> </div> </div> <div class="cultureModal-languageSelector cultureModal-selector"> <div class="cultures-modal" hidden> <a href="/" hreflang="en-US"> English </a><a href="/fr-fr/" hreflang="fr-FR"> French </a><a href="/de-de/" hreflang="de-DE"> German </a><a href="/it-it/" hreflang="it-IT"> Italian </a><a href="/pt-pt/" hreflang="pt-PT"> Portuguese </a><a href="/ru-ru/" hreflang="ru-RU"> Russian </a><a href="/es-es/" hreflang="es-ES"> Spanish </a> </div> <div class="cultureModal-dropdown"> <label>Language</label> <button id="cultureModal-languageDropdown" class="cultureModal-dropdown-toggle"> <span id="languageSelection">English</span> <span class="dropdown-arrow"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none"> <path d="M7.99996 10.6667C7.93426 10.667 7.86917 10.6542 7.8085 10.629C7.74782 10.6038 7.69279 10.5667 7.64662 10.52L4.31329 7.18666C4.24681 7.0894 4.21681 6.97178 4.22858 6.85455C4.24035 6.73733 4.29314 6.62802 4.37763 6.54592C4.46213 6.46382 4.5729 6.41419 4.69042 6.40578C4.80793 6.39738 4.92464 6.43075 5.01996 6.5L7.99996 9.46L10.98 6.5C11.0739 6.43907 11.1856 6.41145 11.2972 6.42158C11.4087 6.4317 11.5136 6.47898 11.5951 6.55583C11.6765 6.63269 11.7298 6.73466 11.7464 6.84542C11.763 6.95618 11.742 7.0693 11.6866 7.16666L8.35329 10.5C8.30885 10.5504 8.25458 10.5911 8.19382 10.6198C8.13307 10.6485 8.0671 10.6644 7.99996 10.6667Z" fill="black"></path> </svg> </span> </button> <ul id="languageMenu" class="cultureModal-dropdown-menu"></ul> </div> </div> </div> <div class="cultureModal-footer"> <button id="cultureModal-continue">Continue</button> </div> </div> </div> <a href="https://account.ninjatrader.com/welcome?locale=en" class="header-container__login">Log In</a> <a href="https://account.ninjatrader.com/register?locale=en" class="header-container__cta">Open account</a> </div> <button class="header-mobile-btn hamburger" data-expander="header-nav" data-expander-css data-expander-nofocus aria-label="NT.Expand.Mobile.Menu"> <svg class="header-menu--open"> <use xlink:href="/assets/dist/images/svg-legend.svg#mobile-menu-icon"></use> </svg> <div class="header-menu-close"> <svg class="header-menu--close"> <use xlink:href="/assets/dist/images/svg-legend.svg#cross2"></use> </svg> </div> </button> </div> <div class="header-container__bottom"> <div id="header-nav" class="header-bottom"> <div class="header-bottom__top"> <nav id="main-navigation" class="main-navigation" role="navigation" aria-label="Site Navigation"> <ul> <li> <a href="/single-stock-futures/" target="_self" data-top-nav> <span>Single Stock Futures</span> </a> </li><li data-expander data-expander-css data-expander-nofocus> <button type="button" data-expander-toggle data-top-nav="toggle-Futures"> <span>Futures</span> <svg class="nav-direction nav-down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg class="nav-direction nav-up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <ul data-expander-target> <li> <a href="/futures/" target="_self" data-top-nav> <span>Intro to futures</span> </a> </li><li> <a href="/futures/futures-contracts/" target="_self" data-top-nav> <span>Futures contracts</span> </a> </li><li> <a href="/futures/why-trade-futures/" target="_self" data-top-nav> <span>Why trade futures?</span> </a> </li><li> <a href="/futures/futures-trading-basics/" target="_self" data-top-nav> <span>Futures trading basics</span> </a> </li><li> <a href="/futures/futures-trading-basics/futures-trading-plan/" target="_self" data-top-nav> <span>Futures trading plan</span> </a> </li><li> <a href="/futures/futures-trading-basics/risk-management/" target="_self" data-top-nav> <span>Futures risk management</span> </a> </li><li> <a href="/futures/why-trade-futures/futures-vs-stocks/" target="_self" data-top-nav> <span>Compare to stocks</span> </a> </li> </ul> </li><li data-expander data-expander-css data-expander-nofocus> <button type="button" data-expander-toggle data-top-nav="toggle-Platforms"> <span>Platforms</span> <svg class="nav-direction nav-down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg class="nav-direction nav-up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <ul data-expander-target> <li> <a href="/trading-platform/" target="_self" data-top-nav> <span>Platform overview</span> </a> </li><li> <a href="/learn/platform-training/" target="_self" data-top-nav> <span>Platform training</span> </a> </li><li> <a href="/trading-platform/free-trading-charts/" target="_self" data-top-nav> <span>Free trading charts</span> </a> </li><li> <a href="/trading-platform/trading-simulator/" target="_self" data-top-nav> <span>
31Trading simulator</span> </a> </li><li> <a href="/trading-platform/mobile-trading/" target="_self" data-top-nav> <span>Mobile app</span> </a> </li><li> <a href="/trading-platform/customize/" target="_self" data-top-nav> <span>Customization</span> </a> </li><li> <a href="/trading-platform/customize/market-data-brokerage-options/" target="_self" data-top-nav> <span>Market data &amp; brokerage options</span> </a> </li><li> <a href="/trading-platform/ninjatrader-pulse/" target="_self" data-top-nav> <span>NinjaTrader Pulse</span> </a> </li><li> <a href="/trading-platform/ninjascript-tutorial/" target="_self" data-top-nav> <span>NinjaScript</span> </a> </li><li> <a href="https://prop.ninjatrader.com/" target="_self" data-top-nav> <span>Prop trading</span> </a> </li> </ul> </li><li> <a href="/pricing/" target="_self" data-top-nav> <span>Pricing</span> </a> </li><li data-expander data-expander-css data-expander-nofocus> <button type="button" data-expander-toggle data-top-nav="toggle-Learn"> <span>Learn</span> <svg class="nav-direction nav-down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg class="nav-direction nav-up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <ul data-expander-target> <li> <a href="/learn/" target="_self" data-top-nav> <span>How to start futures trading</span> </a> </li><li> <a href="/learn/livestreams/" target="_self" data-top-nav> <span>Daily livestreams</span> </a> </li><li> <a href="/learn/how-to-trade-futures/" target="_self" data-top-nav> <span>How to trade futures</span> </a> </li><li> <a href="/learn/technical-analysis/" target="_self" data-top-nav> <span>Technical analysis basics</span> </a> </li><li> <a href="/ninjatrader-arena/" target="_self" data-top-nav> <span>Arena: Futures Competitions</span> </a> </li><li> <a href="/learn/day-trading-strategy-leaders/" target="_self" data-top-nav> <span>Day trading leaders</span> </a> </li> </ul> </li><li> <a href="/futures/blogs/" target="_self" data-top-nav> <span>Blog</span> </a> </li><li data-expander data-expander-css data-expander-nofocus> <button type="button" data-expander-toggle data-top-nav="toggle-Company"> <span>Company</span> <svg class="nav-direction nav-down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg class="nav-direction nav-up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <ul data-expander-target> <li> <a href="/about-ninjatrader/" target="_self" data-top-nav> <span>About NinjaTrader</span> </a> </li><li> <a href="/careers/" target="_self" data-top-nav> <span>Careers</span> </a> </li><li> <a href="/contact-us/" target="_self" data-top-nav> <span>Contact Us</span> </a> </li><li> <a href="/news/" target="_self" data-top-nav> <span>Newsroom</span> </a> </li> </ul> </li><li> <a href="/support/" target="_self" data-top-nav> <span>Support</span> </a> </li> </ul> </nav> <div class="header-bottom__top-utility"> <a href="https://apps.apple.com/us/app/ninjatrader-trade-futures/id6473653053" class="header-bottom__download"> <svg class="header-bottom__download-svg"> <use xlink:href="/assets/dist/images/svg-legend.svg#download"></use> </svg> <span>Download The App</span> </a> <div class="js-culture-selector culture-selector"> <button class="culture-select-btn" aria-label="NT.Expand.Culture.Select"> <svg class="culture-select__icon culture-select__globe"> <use xlink:href="/assets/dist/images/svg-legend.svg#globe2"></use> </svg> </button> </div> <div class="cultureModal-overlay" id="cultureModal"> <div class="cultureModal"> <div class="cultureModal-header"> <p class="cultureModal-title">Change language and country/region</p> <button class="close-button" id="cultureModal-close"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 16 15" fill="none"> <path d="M1.66675 0.833328L15.0001 14.1667M1.66675 14.1667L15.0001 0.833328" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </button> </div> <div class="cultureModal-body"> <div class="cultureModal-countrySelector cultureModal-selector"> <div class="cultureModal-dropdown"> <label>Country</label> <button id="cultureModal-countryDropdown" class="cultureModal-dropdown-toggle"> <span id="countrySelection">United States</span> <span class="dropdown-arrow"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none"> <path d="M7.99996 10.6667C7.93426 10.667 7.86917 10.6542 7.8085 10.629C7.74782 10.6038 7.69279 10.5667 7.64662 10.52L4.31329 7.18666C4.24681 7.0894 4.21681 6.97178 4.22858 6.85455C4.24035 6.73733 4.29314 6.62802 4.37763 6.54592C4.46213 6.46382 4.5729 6.41419 4.69042 6.40578C4.80793 6.39738 4.92464 6.43075 5.01996 6.5L7.99996 9.46L10.98 6.5C11.0739 6.43907 11.
311856 6.41145 11.2972 6.42158C11.4087 6.4317 11.5136 6.47898 11.5951 6.55583C11.6765 6.63269 11.7298 6.73466 11.7464 6.84542C11.763 6.95618 11.742 7.0693 11.6866 7.16666L8.35329 10.5C8.30885 10.5504 8.25458 10.5911 8.19382 10.6198C8.13307 10.6485 8.0671 10.6644 7.99996 10.6667Z" fill="black"></path> </svg> </span> </button> <ul id="countryMenu" class="cultureModal-dropdown-menu"></ul> </div> </div> <div class="cultureModal-languageSelector cultureModal-selector"> <div class="cultures-modal" hidden> <a href="/" hreflang="en-US"> English </a><a href="/fr-fr/" hreflang="fr-FR"> French </a><a href="/de-de/" hreflang="de-DE"> German </a><a href="/it-it/" hreflang="it-IT"> Italian </a><a href="/pt-pt/" hreflang="pt-PT"> Portuguese </a><a href="/ru-ru/" hreflang="ru-RU"> Russian </a><a href="/es-es/" hreflang="es-ES"> Spanish </a> </div> <div class="cultureModal-dropdown"> <label>Language</label> <button id="cultureModal-languageDropdown" class="cultureModal-dropdown-toggle"> <span id="languageSelection">English</span> <span class="dropdown-arrow"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="17" viewBox="0 0 16 17" fill="none"> <path d="M7.99996 10.6667C7.93426 10.667 7.86917 10.6542 7.8085 10.629C7.74782 10.6038 7.69279 10.5667 7.64662 10.52L4.31329 7.18666C4.24681 7.0894 4.21681 6.97178 4.22858 6.85455C4.24035 6.73733 4.29314 6.62802 4.37763 6.54592C4.46213 6.46382 4.5729 6.41419 4.69042 6.40578C4.80793 6.39738 4.92464 6.43075 5.01996 6.5L7.99996 9.46L10.98 6.5C11.0739 6.43907 11.1856 6.41145 11.2972 6.42158C11.4087 6.4317 11.5136 6.47898 11.5951 6.55583C11.6765 6.63269 11.7298 6.73466 11.7464 6.84542C11.763 6.95618 11.742 7.0693 11.6866 7.16666L8.35329 10.5C8.30885 10.5504 8.25458 10.5911 8.19382 10.6198C8.13307 10.6485 8.0671 10.6644 7.99996 10.6667Z" fill="black"></path> </svg> </span> </button> <ul id="languageMenu" class="cultureModal-dropdown-menu"></ul> </div> </div> </div> <div class="cultureModal-footer"> <button id="cultureModal-continue">Continue</button> </div> </div> </div> </div> </div> <div class="header-utility__bottom" id="mobile-header-utility"> <a href="https://account.ninjatrader.com/welcome?locale=en" class="mobile-login">Log In</a> <a href="https://account.ninjatrader.com/register?locale=en" class="mobile-account__cta">Open account</a> </div> </div> </div> </div> </header>  <main id="site-main" class="site-main" role="main"> <section id="about-hero" class="ntabhero">
32  <div class="ntabhero-media">
33    <video id="ntabheroVideo" autoplay muted loop playsinline>
34      <source src="/media/NT/media/images/Animated-and-videos/About-NinjaTrader_Chicago-River.mp4" type="video/mp4">
35    </video>
36    <div class="ntabhero-overlay-scrim"></div>
37    <div class="ntabhero-overlay-bottom"></div>
38  </div>
39
40  <div class="ntabhero-content">
41    <div class="ntabhero-inner">
42      <h1 class="ntabhero-h1">About NinjaTrader</h1>
43      <p class="ntabhero-lead">
44        Building better futures for all traders through innovation, technology and bold thinking.
45      </p>
46      <div class="ntabhero-body">
47        <p>
48          NinjaTrader is a pioneer in futures trading, defining the industry standard for technology, innovation and thought leadership for over two decades. Since our founding in 2003, we've operated with a singular vision: to build better futures for all traders.
49        </p>
50        <p>
51          As a company, we're built on bold thinking and a commitment to continuous evolution. We've led the charge in transforming complex markets into intuitive experiences, setting the pace for a dynamic and quickly growing industry.
52        </p>
53        <p>
54          Our award-winning platform* and brokerage services^, and developer community (NinjaTrader Ecosystem) reflect our deep belief in the power of design, data and education to shape the future of trading.
55        </p>
56      </div>
57    </div>
58  </div>
59</section>
60
61<style>
62  .ntabhero {
63    position: relative;
64    min-height: 70vh;
65    display: flex;
66    align-items: center;
67    justify-content: center;
68    text-align: center;
69    overflow: hidden;
70    background: none;
71  }
72  .ntabhero-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
73  .ntabhero-media video { width: 100%; height: 100%; object-fit: cover; animation: ntabheroPanZoom 36s ease-in-out infinite; will-change: transform; }
74
75  /* Darker, even scrim across the whole image — no more fade-to-transparent behind the text */
76  .ntabhero-overlay-scrim {
77    position: absolute;
78    inset: 0;
79    background: linear-gradient(
80      180deg,
81      rgba(10,10,10,0.65) 0%,
82      rgba(10,10,10,0.55) 40%,
83      rgba(10,10,10,0.65) 100%
84    );
85  }
86  .ntabhero-overlay-bottom { position: absolute; left: 0; right: 0; bottom: 0; height: 8rem; background: linear-gradient(to bottom, transparent, #FFFFFF); }
87
88  .ntabhero-content { position: relative; z-index: 1; width: 100%; padding: 0 1.5rem; }
89  .ntabhero-inner { max-width: 64rem; margin: 0 auto; padding: 3.5rem 2rem; }
90  .ntabhero-h1 {
91    font-family: 'Montserrat', sans-serif;
92    font-weight: 700;
93    font-size: 48px;
94    letter-spacing: -0.01em;
95    color: #FFFFFF;
96    margin: 0 0 2rem;
97    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
98  }
99  .ntabhero-lead {
100    font-size: 20px;
101    font-weight: 600;
102    line-height: 1.5;
103    color: #FFFFFF;
104    max-width: 48rem;
105    margin: 0 auto 2.5rem;
106    text-shadow: 0 1px 8px rgba(0,0,0,0.4);
107  }
108  .ntabhero-body { font-size: 18px; line-height: 1.6; color: #FFFFFF; max-width: 48rem; margin: 0 auto; text-shadow: 0 1px 6px rgba(0,0,0,0.35); }
109  .ntabhero-body p { margin: 0 0 1.5rem; }
110  .ntabhero-body p:last-child { margin-bottom: 0; }
111  @keyframes ntabheroPanZoom {
112    0% { transform: scale(1.08) translate3d(-2%, 0, 0); }
113    50% { transform: scale(1.12) translate3d(2%, 0, 0); }
114    100% { transform: scale(1.08) translate3d(-2%, 0, 0); }
115  }
116  @media (prefers-reduced-motion: reduce) {
117    .ntabhero-media video { animation: none !important; }
118  }
119</style><div class="section-container section-container--white section-container section-container--padding-both"> <div class="container"><section id="what-we-do" class="ntwwd">
120  <header class="ntwwd-header">
121    <h2 class="ntwwd-h2">What We Do</h2>
122    <p class="ntwwd-lead">
123      Headquartered in Chicago's thriving fintech scene, NinjaTrader is more than a world-class trading platform. With a global team and a passion for innovation, we're imagining what's possible and defining what comes next in futures.
124    </p>
125    <div class="ntwwd-progress-track">
126      <div id="ntwwd-progress-fill" class="ntwwd-progress-fill"></div>
127    </div>
128  </header>
129
130  <div class="ntwwd-grid">
131    <article class="ntwwd-card">
132      <div class="ntwwd-icon-wrap">
133        <div class="ntwwd-ring"></div>
134        <img src="/media/NT/media/images/Icons/ORNG_Empower.svg" alt="Empower icon" width="96" height="96" loading="lazy" class="ntwwd-icon" />
135      </div>
136      <h3 class="ntwwd-h3">We Empower</h3>
137      <p class="ntwwd-p">
138        Futures traders to take control of their financial destiny with cutting-edge education and products to inform and enhance their trading journey.
139      </p>
140    </article>
141
142    <article class="ntwwd-card">
143      <div class="ntwwd-icon-wrap">
144        <div class="ntwwd-ring"></div>
145        <img src="/media/NT/media/images/Icons/ORNG_Encourage.svg" alt="Encourage icon" width="96" height="96" loading="lazy" class="ntwwd-icon" />
146      </div>
147      <h3 class="ntwwd-h3">We Encourage</h3>
148      <p class="ntwwd-p">
149        Creativity, collaboration and camaraderie to deliver the best futures trading experience possible to our more than 2 million users worldwide.
150      </p>
151    </article>
152
153    <article class="ntwwd-card">
154      <div class="ntwwd-icon-wrap">
155        <div class="ntwwd-ring"></div>
156        <img src="/media/NT/media/images/Icons/ORNG_Equip.svg" alt="Equip icon" width="96" height="96" loading="lazy" class="ntwwd-icon" />
157      </div>
158      <h3 class="ntwwd-h3">We Equip</h3>
159      <p class="ntwwd-p">
160        Futures traders, from seasoned pros to beginners, with powerful expertise, software and brokerage services to navigate markets confidently.
161      </p>
162    </article>
163  </div>
164</section>
165
166<style>
167  .ntwwd { background: none; max-width: 1200px; margin: 0 auto; padding: 5rem 1.5rem; }
168  .ntwwd-header { text-align: center; max-width: 56rem; margin: 0 auto 2.5rem; }
169  .ntwwd-h2 {
170    font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 36px; line-height: 1.2;
171    color: #0A0A0A; margin: 0 0 1.5rem;
172  }
173  .ntwwd-lead { font-size: 20px; line-height: 1.6; color: #0A0A0A; margin: 0 0 1.5rem; }
174  .ntwwd-progress-track { width: 100%; height: 1rem; background: #E5E5E5; border-radius: 9999px; overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); }
175  .ntwwd-progress-fill { height: 100%; width: 0%; background-color: #FF4200; border-radius: 9999px; transition: width 0.1s linear; }
176  .ntwwd-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
177  .ntwwd-card {
178    background: #FFFFFF; border-radius: 1.5rem; padding: 2rem; text-align: center;
179    box-shadow: 0 10px 25px rgba(0,0,0,0.08); transition: transform 0.2s ease, box-shadow 0.2s ease;
180  }
181  .ntwwd-card:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(0,0,0,0.12); }
182  .ntwwd-icon-wrap {
183    position: relative; margin: 0 auto 1.5rem; width: 10rem; height: 10rem; border-radius: 9999px;
184    border: 1px solid rgba(10,10,10,0.1); display: flex; align-items: center; justify-content: center;
185  }
186  .ntwwd-ring { position: absolute; inset: 0; border-radius: 9999px; border: 2px solid rgba(255,255,255,0.4); }
187  .ntwwd-card:hover .ntwwd-ring { animation: ntwwdRingPulse 1.8s ease-out infinite; }
188  .ntwwd-icon { width: 6rem; height: 6rem; object-fit: contain; user-select: none; }
189  .ntwwd-h3 { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 24px; color: #0A0A0A; margin: 0 0 0.75rem; }
190  .ntwwd-p { font-size: 18px; line-height: 1.6; color: #0A0A0A; margin: 0; }
191  @keyframes ntwwdRingPulse {
192    0% { box-shadow: 0 0 0 0 rgba(255,255,255,.35); }
193    70% { box-shadow: 0 0 0 22px rgba(255,255,255,0); }
194    100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
195  }
196  @media (min-width: 768px) {
197    .ntwwd-grid { grid-template-columns: repeat(3, 1fr); }
198  }
199  @media (prefers-reduced-motion: reduce) {
200    .ntwwd-ring, .ntwwd-card { transition: none; animation: none; }
201  }
202</style>
203
204<script>
205(function(){
206  var section = document.getElementById('what-we-do');
207  var fill = document.getElementById('ntwwd-progress-fill');
208  if (!section || !fill) return;
209  function update(){
210    var rect = section.getBoundingClientRect();
211    var total = rect.height + window.innerHeight;
212    var scrolled = window.innerHeight - rect.top;
213    var pct = Math.min(100, Math.max(0, (scrolled / total) * 100));
214    fill.style.width = pct + '%';
215  }
216  window.addEventListener('scroll', update, { passive: true });
217  window.addEventListener('resize', update);
218  update();
219})();
220</script>
220</div> </div><section id="what-we-believe" class="ntwwb">
221  <div class="ntwwb-media">
222    <img src="/media/NT/media/images/About/NinjaTrader_Office_9.jpg" alt="NinjaTrader team collaborating" />
223    <div class="ntwwb-gradient"></div>
224  </div>
225
226  <div class="ntwwb-inner">
227    <header class="ntwwb-header">
228      <span class="ntwwb-label-box">What We Believe</span>
229      <h2 class="ntwwb-h2">We Believe In Looking To The Future And Living Our Values In The Present</h2>
230      <p class="ntwwb-lead">
231        Our five core values guide our actions every day and are key to our ongoing thought leadership and success in the retail futures brokerage space.
232      </p>
233      <div class="ntwwb-progress-track">
234        <div id="ntwwb-progress-fill" class="ntwwb-progress-fill"></div>
235      </div>
236    </header>
237
238    <div class="ntwwb-grid">
239      <div class="ntwwb-col">
240        <section class="ntwwb-box">
241          <h3 class="ntwwb-label-box ntwwb-box-label">Our Core Values</h3>
242          <ul class="ntwwb-list">
243            <li><span class="ntwwb-check"></span><span class="ntwwb-item">Do the right thing.</span></li>
244            <li><span class="ntwwb-check"></span><span class="ntwwb-item">Keep our focus.</span></li>
245            <li><span class="ntwwb-check"></span><span class="ntwwb-item">Find a way.</span></li>
246            <li><span class="ntwwb-check"></span><span class="ntwwb-item">Push forward together.</span></li>
247            <li><span class="ntwwb-check"></span><span class="ntwwb-item">Commit to customer success.</span></li>
248          </ul>
249        </section>
250
251        <section class="ntwwb-box">
252          <h3 class="ntwwb-label-box ntwwb-box-label">Our Purpose</h3>
253          <p class="ntwwb-purpose">Our purpose is to build better futures for all traders.</p>
254        </section>
255      </div>
256    </div>
257  </div>
258</section>
259
260<style>
261  .ntwwb { position: relative; overflow: hidden; background: none; }
262  .ntwwb-media { position: absolute; inset: 0; z-index: -1; }
263  .ntwwb-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
264  .ntwwb-gradient {
265    position: absolute; inset: 0;
266    background: linear-gradient(90deg,
267      rgba(255,255,255,1) 0%, rgba(255,255,255,1) 48%, rgba(255,255,255,0.95) 56%,
268      rgba(255,255,255,0.70) 63%, rgba(255,255,255,0.35) 70%, rgba(255,255,255,0.10) 78%, rgba(255,255,255,0) 86%);
269  }
270  .ntwwb-inner { max-width: 1200px; margin: 0 auto; padding: 5rem 1.5rem; }
271  .ntwwb-header { max-width: 48rem; margin: 0 0 2.5rem; }
272  .ntwwb-label-box {
273    background: #F4F4F4; border: 2px solid #FF4200; color: #FF4200;
274    padding: 0.35rem 0.75rem; font-family: 'Montserrat', sans-serif; font-weight: 700;
275    letter-spacing: 0.08em; text-transform: uppercase; display: inline-block; font-size: 14px;
276  }
277  .ntwwb-h2 {
278    font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 36px; line-height: 1.2;
279    color: #0A0A0A; margin: 1rem 0 1.5rem;
280  }
281  .ntwwb-lead { font-size: 20px; line-height: 1.6; color: #0A0A0A; margin: 0 0 1.5rem; }
282  .ntwwb-progress-track { width: 100%; height: 1rem; background: #E5E5E5; overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); }
283  .ntwwb-progress-fill { height: 100%; width: 0%; background-color: #FF4200; transition: width 0.1s linear; }
284  .ntwwb-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: start; }
285  .ntwwb-col { display: flex; flex-direction: column; gap: 1.5rem; }
286  .ntwwb-box { background: #F4F4F4; box-shadow: inset 0 0 0 2px rgba(255,66,0,0.3); border-radius: 1rem; padding: 1.5rem; }
287  .ntwwb-box-label { margin-bottom: 1rem; }
288  .ntwwb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
289  .ntwwb-list li { display: flex; align-items: flex-start; }
290  .ntwwb-check {
291    width: 28px; height: 28px; border-radius: 9999px; border: 2px solid #FF4200; flex-shrink: 0;
292    display: inline-flex; align-items: center; justify-content: center; margin-right: 0.75rem;
293  }
294  .ntwwb-check::after { content: '\2713'; font-weight: 700; color: #FF4200; }
295  .ntwwb-item { font-size: 18px; color: #0A0A0A; }
296  .ntwwb-purpose {
297    font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 24px; line-height: 1.3;
298    color: #0A0A0A; margin: 0;
299  }
300  @media (min-width: 1024px) {
301    .ntwwb-grid { grid-template-columns: 1fr 1fr; }
302  }
303</style>
304
305<script>
306(function(){
307  var section = document.getElementById('what-we-believe');
308  var fill = document.getElementById('ntwwb-progress-fill');
309  if (!section || !fill) return;
310  function update(){
311    var rect = section.getBoundingClientRect();
312    var total = rect.height + window.innerHeight;
313    var scrolled = window.innerHeight - rect.top;
314    var pct = Math.min(100, Math.max(0, (scrolled / total) * 100));
315    fill.style.width = pct + '%';
316  }
317  window.addEventListener('scroll', update, { passive: true });
318  window.addEventListener('resize', update);
319  update();
320})();
321</script>
321<div class="section-container section-container--white section-container section-container"> <div class="container"><section id="our-reach" class="ntreach">
322  <header class="ntreach-header">
323    <h2 class="ntreach-h2">Our Reach</h2>
324    <p class="ntreach-lead">
325      As a technology-first company and registered futures broker, we provide the tools, infrastructure and support that power one of the most dynamic segments in the financial markets. Together, we're building better futures for over 2 million users (and growing) worldwide.
326    </p>
327    <div class="ntreach-progress-track">
328      <div id="ntreach-progress-fill" class="ntreach-progress-fill"></div>
329    </div>
330  </header>
331
332  <div class="ntreach-box">
333    <div class="ntreach-row ntreach-row-3">
334      <div class="ntreach-stat">
335        <div class="ntreach-num">Trillions of $s</div>
336        <div class="ntreach-caption">in annual futures volume</div>
337      </div>
338      <div class="ntreach-stat">
339        <div class="ntreach-num"><span data-count data-suffix="MM+" data-target="154">0</span></div>
340        <div class="ntreach-caption">contracts traded in 2025</div>
341      </div>
342      <div class="ntreach-stat">
343        <div class="ntreach-num"><span data-count data-target="130">0</span></div>
344        <div class="ntreach-caption">unique contract types to trade</div>
345      </div>
346    </div>
347
348    <div class="ntreach-row ntreach-row-2">
349      <div class="ntreach-stat">
350        <div class="ntreach-num"><span data-count data-target="1000" data-suffix="+">0</span></div>
351        <div class="ntreach-caption">developer community vendors</div>
352      </div>
353      <div class="ntreach-stat">
354        <div class="ntreach-num"><span data-count data-target="99.9" data-decimals="1" data-suffix="%+">0</span></div>
355        <div class="ntreach-caption">platform uptime</div>
356      </div>
357    </div>
358  </div>
359</section>
360
361<style>
362  .ntreach { background: none; max-width: 1200px; margin: 0 auto; padding: 5rem 1.5rem; }
363  .ntreach-header { text-align: center; margin: 0 auto 3rem; }
364  .ntreach-h2 {
365    font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 36px; line-height: 1.2;
366    color: #0A0A0A; margin: 0 0 1.5rem;
367  }
368  .ntreach-lead { font-size: 20px; line-height: 1.6; color: #0A0A0A; margin: 0 0 1.5rem; }
369  .ntreach-progress-track { width: 100%; height: 1rem; background: #E5E5E5; border-radius: 9999px; overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); }
370  .ntreach-progress-fill { height: 100%; width: 0%; background-color: #FF4200; border-radius: 9999px; transition: width 0.1s linear; }
371  .ntreach-box { border: 2px solid #FF4200; border-radius: 1.5rem; padding: 2rem; }
372  .ntreach-row { display: grid; grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
373  .ntreach-row-2 { margin-top: 2.5rem; }
374  .ntreach-num { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 32px; line-height: 1; color: #0A0A0A; }
375  .ntreach-caption { margin-top: 0.75rem; font-size: 16px; color: #0A0A0A; }
376  @media (min-width: 768px) {
377    .ntreach-row-3 { grid-template-columns: repeat(3, 1fr); }
378    .ntreach-row-2 { grid-template-columns: repeat(2, 1fr); }
379  }
380</style>
381
382<script>
383(function(){
384  var section = document.getElementById('our-reach');
385  var fill = document.getElementById('ntreach-progress-fill');
386  if (section && fill) {
387    function updateBar(){
388      var rect = section.getBoundingClientRect();
389      var total = rect.height + window.innerHeight;
390      var scrolled = window.innerHeight - rect.top;
391      var pct = Math.min(100, Math.max(0, (scrolled / total) * 100));
392      fill.style.width = pct + '%';
393    }
394    window.addEventListener('scroll', updateBar, { passive: true });
395    window.addEventListener('resize', updateBar);
396    updateBar();
397  }
398
399  var els = document.querySelectorAll('#our-reach [data-count]');
400  function formatNumber(value, decimals) {
401    return value.toLocaleString(undefined, { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
402  }
403  function animate(el){
404    var target = parseFloat(el.getAttribute('data-target') || '0');
405    var decimals = parseInt(el.getAttribute('data-decimals') || '0', 10);
406    var suffix = el.getAttribute('data-suffix') || '';
407    var duration = 1400;
408    var start = performance.now();
409    function tick(now){
410      var p = Math.min(1, (now - start) / duration);
411      var eased = 1 - Math.pow(1 - p, 3);
412      el.textContent = formatNumber(target * eased, decimals) + suffix;
413      if (p < 1) requestAnimationFrame(tick);
414    }
415    requestAnimationFrame(tick);
416  }
417  if (els.length) {
418    var io = new IntersectionObserver(function(entries){
419      entries.forEach(function(e){ if (e.isIntersecting) { animate(e.target); io.unobserve(e.target); } });
420    }, { threshold: 0.35 });
421    els.forEach(function(el){ io.observe(el); });
422  }
423})();
424</script>
424</div> </div><section class="section-container section-container--white section-container--no-padding section-container--padding-both">  <div class="container">  <div class="row"> <div class="col-md-12"> <div class="fr-view"><p><span style="font-size: 48px"><strong>Frequently Asked Questions about NinjaTrader</strong></span></p></div> </div> </div> </div> </section><section class="section-container section-container--white section-container section-container">  <div class="container"> <div class="qna-section"> <div class="qna-container"> <div class="faqs-tab" data-expander-nofocus data-expander data-expander-css data-expander-hold="true"> <button class="faqs-tab__btn" type="button" data-expander-toggle> <span>Is NinjaTrader legal in the U.S.?</span> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <div class="faqs-tab__content" data-expander-target>Yes. NinjaTrader is a U.S.-based futures broker that operates in accordance with U.S. regulatory requirements. Futures trading in the U.S. is regulated at the federal level, and registered firms must comply with rules established by the Commodity Futures Trading Commission (CFTC) and the National Futures Association (NFA).<br />
425<br />
426As a registered futures commission merchant (FCM), NinjaTrader operates within this regulatory framework, which is designed to promote market integrity and customer protection.</div> </div><div class="faqs-tab" data-expander-nofocus data-expander data-expander-css data-expander-hold="true"> <button class="faqs-tab__btn" type="button" data-expander-toggle> <span>Is NinjaTrader a regulated broker?</span> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <div class="faqs-tab__content" data-expander-target>Yes. NinjaTrader is a registered futures commission merchant (FCM). FCMs are firms that solicit or accept orders to buy or sell futures contracts and accept money or other assets from customers to support those trades.<br />
427<br />
428All FCMs doing business with the public in the U.S. must register with the CFTC and become members of the NFA, the industry&rsquo;s self-regulatory organization (<a href="https://www.nfa.futures.org/registration-membership/index.html">NFA Registration Requirements</a>; <a href="https://www.cftc.gov/IndustryOversight/Intermediaries/FCMs/fcmib">CFTC Oversight of FCMs</a>).<br />
429&nbsp;</div> </div><div class="faqs-tab" data-expander-nofocus data-expander data-expander-css data-expander-hold="true"> <button class="faqs-tab__btn" type="button" data-expander-toggle> <span>Who regulates NinjaTrader?</span> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <div class="faqs-tab__content" data-expander-target>NinjaTrader is regulated by the Commodity Futures Trading Commission (CFTC) and is a member of the National Futures Association (NFA).<br />
430<br />
431The CFTC is the independent federal agency that oversees U.S. derivatives markets, including futures, options on futures, and swaps. The NFA is a CFTC-designated self-regulatory organization responsible for enforcing compliance rules, conducting audits, and helping safeguard market participants.<br />
432<br />
433You can verify a firm&rsquo;s registration status at any time using <a href="https://www.nfa.futures.org/basicnet/" target="_blank">
433NFA BASIC (Background Affiliation Status Information Center</a>).<br />
434&nbsp;</div> </div><div class="faqs-tab" data-expander-nofocus data-expander data-expander-css data-expander-hold="true"> <button class="faqs-tab__btn" type="button" data-expander-toggle> <span>Is NinjaTrader safe to use?</span> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <div class="faqs-tab__content" data-expander-target>Futures brokers registered as FCMs are required to meet strict financial, reporting, and compliance standards set by the CFTC and NFA. These requirements include maintaining minimum capital levels, segregating customer funds, and submitting to ongoing audits and oversight.<br />
435<br />
436As a registered FCM and NFA member, NinjaTrader is subject to these regulatory standards. Traders can review public registration and disciplinary history through official NFA and CFTC resources.</div> </div><div class="faqs-tab" data-expander-nofocus data-expander data-expander-css data-expander-hold="true"> <button class="faqs-tab__btn" type="button" data-expander-toggle> <span>Is NinjaTrader a real broker or just a trading platform?</span> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--down"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-down2"></use> </svg> <svg aria-hidden="true" focusable="false" class="faqs-tab__svg faqs-tab__svg--up"> <use xlink:href="/assets/dist/images/svg-legend.svg#chev-up2"></use> </svg> </button> <div class="faqs-tab__content" data-expander-target>NinjaTrader is both a futures broker and a trading platform provider.<br />
437<br />
438As a registered FCM, NinjaTrader can accept and execute futures orders and hold customer funds in accordance with regulatory requirements. In addition, NinjaTrader offers powerful desktop, web, and mobile trading platforms designed to support active futures traders.</div> </div> </div> </div> </div> </section><section class="section-container section-container--white section-container section-container">  <div class="container">  <div class="row"> <div class="col-md-12"> <div class="fr-view"><p><br></p><div class="disclosure-box"><em id="isPasted"><em>*</em></em>NinjaTrader was recognized as the 2024 Best Trading Software by Technical Analysis of STOCKS &amp; COMMODITIES Magazine for 2024. The magazine determines the award based on its annual Readers’ Choice Awards survey, in which readers vote on their favorite or most useful trading products and services across various categories. Products are nominated by the magazine’s editors, with write-in voting also available, and winners are selected based on the compiled reader survey results. NinjaTrader paid no application fee to participate.<br> <em><em><em data-renderer-mark="true"><span data-renderer-mark="true" data-text-custom-color="#6554c0" class="fabric-text-color-mark"><br></span></em></em></em>^NinjaTrader was recognized as the “Best Futures Broker” by BrokerChooser for 2026 and 2025. <span draggable="true" id="isPasted"><a target="_blank" href="http://BrokerChooser.com" rel="noopener noreferrer">BrokerChooser.com</a></span> determines the ratings based on evaluation and real-account testing of brokers and investment platforms. NinjaTrader has a paid marketing relationship with BrokerChooser, but paid no application fee to earn this rating or otherwise participate in BrokerChooser's independent methodology.&nbsp;</div></div> </div> </div> </div> </section>  </main> <footer id="site-footer" class="site-footer" role="contentinfo"> <div class="container"> <div class="footer-top"> <ul class="footer__nav"> <li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">Futures</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus">
438 <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/futures/" target="_self" class="footer__nav-item small"> <span>Overview</span> </a> </li><li> <a href="/futures/why-trade-futures/" target="_self" class="footer__nav-item small"> <span>Why Trade Futures?</span> </a> </li><li> <a href="/futures/futures-contracts/" target="_self" class="footer__nav-item small"> <span>Futures Contracts</span> </a> </li><li> <a href="/futures/futures-contracts/index/e-mini-s-p-500/" target="_self" class="footer__nav-item small"> <span>E-mini S&amp;P Futures</span> </a> </li><li> <a href="/futures/futures-contracts/micro-emini-futures/" target="_self" class="footer__nav-item small"> <span>Micro E-Mini Futures</span> </a> </li><li> <a href="/futures/learn/futures-trading-basics/" target="_self" class="footer__nav-item small"> <span>Futures Basics</span> </a> </li><li> <a href="/futures/blogs/" target="_self" class="footer__nav-item small"> <span>Blog</span> </a> </li> </ul>  </li><li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">Learn</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus"> <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/learn/" target="_self" class="footer__nav-item small"> <span>Overview</span> </a> </li><li> <a href="/futures/livestreams/" target="_self" class="footer__nav-item small"> <span>Daily Livestreams</span> </a> </li><li> <a href="/learn/platform-training/" target="_self" class="footer__nav-item small"> <span>Platform Training</span> </a> </li><li> <a href="/learn/how-to-trade-futures/" target="_self" class="footer__nav-item small"> <span>How to Trade Futures</span> </a> </li><li> <a href="/learn/how-to-trade-futures/place-a-futures-order/" target="_self" class="footer__nav-item small"> <span>Futures Order Types</span> </a> </li><li> <a href="/learn/how-to-trade-futures/place-a-futures-order/" target="_self" class="footer__nav-item small"> <span>Place a Futures Order</span> </a> </li><li> <a href="/learn/how-to-trade-futures/using-margin/" target="_self" class="footer__nav-item small"> <span>Margin in Futures</span> </a> </li><li> <a href="/learn/technical-analysis/" target="_self" class="footer__nav-item small"> <span>Technical Analysis</span> </a> </li><li> <a href="/learn/building-a-trading-strategy/" target="_self" class="footer__nav-item small"> <span>Building a Trading Strategy</span> </a> </li> </ul>  </li><li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">Platform</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus"> <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/platform/" target="_self" class="footer__nav-item small"> <span>Overview</span> </a> </li><li> <a href="/platform/mobile-trading/" target="_self" class="footer__nav-item small"> <span>Mobile Apps</span> </a> </li><li> <a href="/platform/charting/" target="_self" class="footer__nav-item small"> <span>Charting</span> </a> </li><li> <a href="/platform/simulation/" target="_self" class="footer__nav-item small"> <span>Simulation</span> </a> </li><li> <a href="https://prop.ninjatrader.com" target="_self" class="footer__nav-item small"> <span>NinjaTrader Prop</span> </a> </li><li> <a href="https://connect.ninjatrader.com" target="_self" class="footer__nav-item small"> <span>NinjaTrader Connect</span> </a> </li> </ul>  </li><li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">Pricing</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus">
438 <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/pricing/" target="_self" class="footer__nav-item small"> <span>Overview</span> </a> </li><li> <a href="/pricing/margins-position-management/" target="_self" class="footer__nav-item small"> <span>Margins</span> </a> </li> </ul>  </li><li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">Support</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus"> <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/support/" target="_self" class="footer__nav-item small"> <span>Overview</span> </a> </li><li> <a href="https://support.ninjatrader.com/" target="_blank" class="footer__nav-item small"> <span>Contact Support</span> </a> </li><li> <a href="https://discourse.ninjatrader.com/" target="_self" class="footer__nav-item small"> <span>Support Forum</span> </a> </li> </ul>  </li><li class="footer__nav-box" data-expander data-expander-css> <button type="button" data-expander-toggle role="button" aria-expanded="true" class="footer__nav-button"> <h2 class="footer__nav-heading">About us</h2> <div class="footer__status-icon"> <svg class="footer__status-icon--plus"> <use xlink:href="/assets/dist/images/svg-legend.svg#plus2"></use> </svg> <svg class="footer__status-icon--minus"> <use xlink:href="/assets/dist/images/svg-legend.svg#minus2"></use> </svg> </div> </button> <ul data-expander-target> <li> <a href="/about-ninjatrader/" target="_self" class="footer__nav-item small"> <span>About NinjaTrader</span> </a> </li><li> <a href="/news/" target="_self" class="footer__nav-item small"> <span>Newsroom</span> </a> </li><li> <a href="/careers/" target="_self" class="footer__nav-item small"> <span>Careers</span> </a> </li><li> <a href="/homepage/contact-us/" target="_self" class="footer__nav-item small"> <span>Contact Us</span> </a> </li> </ul>  </li> </ul> <div class="footer-contact"> <h2 class="footer-contact__title">Connect with us</h2> <div class="footer-contact__phone"><p class="footer-contact__phone-title">Support:</p>
439<a href="tel:+1-800-496-1683" target="_blank">800-496-1683</a><br>
440<a href="http://account.ninjatrader.com/support" target="_blank">Open a support request here</a></div><div class="footer-contact__phone"><p class="footer-contact__phone-title">Trade Desk:</p>
441<a class="footer-contact__phone-number" href="tel:+1-312-423-2234" target="_blank">312-423-2234</a></div> <p>Follow Us on Social</p> <ul class="footer-socials"> <li class="footer-socials__item"> <a class="footer-socials__link" href="https://x.com/NinjaTrader" target="_blank"> <svg class="social-list__icon" aria-hidden="true" focusable="false"> <use xlink:href="/assets/dist/images/svg-legend.svg#icon-twitter"></use> </svg> <span class="visually-hidden">X</span> </a> </li><li class="footer-socials__item"> <a class="footer-socials__link" href="https://www.facebook.com/NinjaTraderGroup/" target="_blank"> <svg class="social-list__icon" aria-hidden="true" focusable="false"> <use xlink:href="/assets/dist/images/svg-legend.svg#icon-facebook"></use> </svg> <span class="visually-hidden">Facebook</span> </a> </li><li class="footer-socials__item"> <a class="footer-socials__link" href="https://www.youtube.com/user/NinjaTraderLLC" target="_blank"> <svg class="social-list__icon" aria-hidden="true" focusable="false"> <use xlink:href="/assets/dist/images/svg-legend.svg#icon-youtube"></use> </svg> <span class="visually-hidden">Youtube</span> </a> </li><li class="footer-socials__item"> <a class="footer-socials__link" href="https://www.linkedin.com/company/ninjatrader-group-llc" target="_blank"> <svg class="social-list__icon" aria-hidden="true" focusable="false"> <use xlink:href="/assets/dist/images/svg-legend.svg#icon-linkedin"></use> </svg> <span class="visually-hidden">LinkedIn</span> </a> </li><li class="footer-socials__item"> <a class="footer-socials__link" href="https://www.instagram.com/ninjatrader/?hl=en" target="_blank"> <svg class="social-list__icon" aria-hidden="true" focusable="false"> <use xlink:href="/assets/dist/images/svg-legend.svg#icon-instagram"></use> </svg> <span class="visually-hidden">Instagram</span> </a> </li> </ul> <div class="footer-contact__seal"><iframe title="Better Business Bureau accredited business seal" border="0" frameborder="0" sandbox="" scrolling="no" src="https://seal-chicago.bbb.org/frame/black-seal-293-61-whitetxt-bbb-88648744.png?chk=DC16977C8E" style="border: 0; height:61px; width:293px;"></iframe><br />
442<br />
443<img alt="NinjaTrader by Payward logo" src="/media/getattachment/86b9fb91-107f-4c1d-8658-47f2ee325110/NinjaTrader-Payward-Wordmark-Logo-1.svg" style="width:270px; max-width:100%; height:auto;" title="NinjaTrader by Payward logo" /><br />
444&nbsp;</div> </div> </div> <div class="footer-bottom"> <div class="container"> <div style="background-color:#000000; padding:24px 0; font-family:'Montserrat', Arial, Helvetica, sans-serif; color:#cccccc;">
445<div style="margin-bottom:16px; font-family:Arial, Helvetica, sans-serif;"><span style="font-size:14px; font-weight:500; color:#999999;">by</span> <a href="https://payward.com/" style="font-size:17px; font-weight:800; color:#ffffff; letter-spacing:0.5px; margin-left:5px; text-decoration:none;" target="_blank">PAYWARD</a> <span style="font-size:14px; font-weight:500; color:#999999; margin-left:14px;">&copy; 2011&ndash;2026 Payward, Inc.</span></div>
446
447<hr style="border:none; border-top:1px solid #333333; margin:0 0 18px 0;" />
448<div style="font-size:14px; font-weight:500; line-height:2.1;"><strong style="color:#ffffff; font-weight:800;">Trading</strong> <a href="https://www.kraken.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Kraken</a> <a href="https://pro.kraken.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Kraken Pro</a> <a href="/" style="color:#cccccc; text-decoration:none; margin-left:10px;">NinjaTrader</a> <a href="https://breakoutprop.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Breakout</a> <a href="https://www.kraken.com/vip" style="color:#cccccc; text-decoration:none; margin-left:10px;">VIP</a> <a href="https://docs.kraken.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">API trading</a> <span style="color:#555555; margin:0 12px;">|</span> <strong style="color:#ffffff; font-weight:800;">Services</strong> <a href="https://services.payward.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Payward Services</a> <a href="https://xstocks.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">xStocks</a> <a href="https://www.cfbenchmarks.com/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">CF Benchmarks</a> <a href="https://reap.global/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Reap</a> <span style="color:#555555; margin:0 12px;">|</span> <strong style="color:#ffffff; font-weight:800;">Banking</strong> <a href="https://krak.app/" style="color:#cccccc; text-decoration:none; margin-left:10px;" target="_blank">Krak</a> <a href="https://www.kraken.com/institutions/prime" style="color:#cccccc; text-decoration:none; margin-left:10px;">Prime</a> <a href="https://www.kraken.com/institutions/otc" style="color:#cccccc; text-decoration:none; margin-left:10px;">OTC</a> <a href="https://www.kraken.com/institutions/custody" style="color:#cccccc; text-decoration:none; margin-left:10px;">Custody</a> <span style="color:#555555; margin:0 12px;">|</span> <strong style="color:#ffffff; font-weight:800;">Asset Management</strong></div>
449</div>
450
451<hr style="background-color: #3498db; height: 2px; border: none;" />
452<p data-local-id="082cdba1-380f-409c-9621-85aeb5b2f6c4" data-renderer-start-pos="4970"><a href="/customer-funds/"><strong data-renderer-mark="true">Disclosures</strong></a> | <a href="/privacy-policy-clearing/"><strong data-renderer-mark="true">Privacy Policy</strong></a> | <a href="/privacy-policy-eu/"><strong data-renderer-mark="true">GDPR</strong></a> | <a href="/sitemap/"><strong data-renderer-mark="true">Sitemap</strong></a><br />
453<br />
454&copy; 2026 NinjaTrader Group, LLC. All rights reserved. <a href="https://payward.com/" target="_blank"><strong>By Payward</strong></a>.<br />
455<br />
456NinjaTrader is a group of affiliated companies operating under NinjaTrader Group, LLC (&ldquo;NTG&rdquo;), including NinjaTrader, LLC (&ldquo;NT&rdquo;) and NinjaTrader Clearing, LLC d/b/a NinjaTrader, Kraken Derivatives US, and Tradovate (&ldquo;NTC&rdquo;). NT owns and supports the proprietary NinjaTrader trading platform as a software development company, while NTC provides brokerage services. <a href="/customer-funds/"><strong data-renderer-mark="true">View Disclosures</strong>.</a><br />
457<br />
458NTC is registered with the Commodity Futures Trading Commission (&ldquo;CFTC&rdquo;) as a futures commission merchant (&ldquo;FCM&rdquo;) and is a National Futures Association (&ldquo;NFA&rdquo;) Member (NFA ID: 0309379). Questions related to brokerage accounts should be directed to your broker.<br />
459<br />
460Futures, security futures, options, foreign currency, digital asset, and event contract trading involves substantial risk and is not suitable for everyone. An investor may lose all or more than the initial investment. Trading should be undertaken only with risk capital&mdash;funds that can be lost without jeopardizing one&rsquo;s financial security or lifestyle&mdash;and only by those who can afford such losses. Past performance is not necessarily indicative of future results. Prior to trading digital assets, review the CFTC and NFA advisories for additional information regarding the significant risks involved. <a href="/risk/"><strong data-renderer-mark="true">View Risk Disclosure Statement</strong>,</a>&nbsp;including the <strong><a href="/ssf-risk/" target="_blank">Risk Disclosure Statement for Security Futures Products</a></strong>.<br />
461<br />
462Any trading symbols, company names, logos, or trademarks displayed are used for illustrative purposes only and remain the property of their respective owners. Their use does not imply affiliation with, endorsement by, or sponsorship of NinjaTrader, nor do any trading symbols displayed constitute investment advice or recommendations.
462<br />
463<br />
464<strong>Simulated trading does not represent actual trading and is based on hypothetical conditions. Actual trading results may differ significantly due to factors such as market conditions, liquidity, execution, and the emotional and psychological impact of risking real money. Simulated trading is provided for educational and platform-familiarization purposes only and should not be relied upon as an indication or expectation of results in a live trading environment.</strong><br />
465<br />
466This website is provided by NinjaTrader on an &ldquo;as-is&rdquo; basis for informational purposes only and does not constitute investment advice, a recommendation, or an offer or solicitation to buy, sell, or hold any commodity interest or financial product or engage in any investment strategy. Content may include statements or opinions of NTG and its affiliates or third-party information; no representation or warranty, express or implied, is made as to the accuracy or completeness of the information herein. NinjaTrader disclaims all liability arising from use of or reliance on such information.</p> </div> </div> </div> <svg aria-hidden="true" focusable="false" class="footer__dots--mobile"> <use xlink:href="/assets/dist/images/svg-legend.svg#footer-dots-mobile"></use> </svg> <svg aria-hidden="true" focusable="false" class="footer__dots--desktop" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="355" viewBox="0 0 1920 355" fill="none"> <mask id="mask0_3761_441" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="1920" height="355"> <path d="M5.5043 109.421V0H31.0242V42.5802H64.05V74.2678H99.0774V42.5802H134.105V74.2678H168.632V109.421H99.0774V146.06H202.658V183.194H73.0571V213.891H238.686V288.159H345.27V251.025H416.325V187.65H519.906V109.421H555.434V146.06H589.461V245.579H728.069V288.159H944.238V251.025H981.267V217.852H1046.82V181.709H1155.4V146.06H1256.48V213.891H1364.57V74.2678H1501.67V109.421H1610.76V213.891H1640.28V280.237H1678.31V181.709H1749.87V109.421H1786.4V181.709H1859.45V109.421H1892.48V42.5802H1920V355H1501.67V280.237H1466.15V217.852H1434.12V288.159H1400.09V355H1155.4V319.847H1046.82V355H0V174.282H34.0266V109.421H5.5043Z" fill="#D9D9D9"></path> </mask> <g mask="url(#mask0_3761_441)"> <mask id="mask1_3761_441" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="13" y="22" width="1893" height="319"> <rect x="13" y="22.5" width="1893" height="318" fill="url(#pattern0)"></rect> </mask> <g mask="url(#mask1_3761_441)"> <rect x="13" y="22.5" width="1893" height="318" fill="#FF4200"></rect> </g> </g> <defs> <pattern id="pattern0" patternContentUnits="objectBoundingBox" width="0.0369783" height="0.220126"> <use xlink:href="#image0_3761_441" transform="scale(0.000528262 0.00314465)"></use> </pattern> <image id="image0_3761_441" width="70" height="70" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABJSURBVHgB7dqxDQAhEANB35f2hdMaJIQQg8RMBZbjrf6nZ6qWykE3bfnCkmMAAAAAAAAAAOBBJTVbU1RtOAYAAAAAAAAAAB40AKZdDAtpztX9AAAAAElFTkSuQmCC"></image> </defs> </svg> </footer> </div>
vendor: 70 bytes, line 466
466  <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=
466GTM-5H2422D
vendor: 85 bytes, line 466
466" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript>  
466<script src="/vendor/jquery-3.7.1.min.js"></script>
466<script src="/vendor/slick.min.js"></script>
466 
466<script src="/vendor/jquery-matchheight.min.js"></script>
466 
466<script src="/vendor/modaal.min.js"></script>
466 
466<script src="/vendor/utils.js"></script>
466 
466<script>(function(){const cultures = {"English":[{"country":"United States","url":"/"},{"country":"Europe - Germany","url":"/eu/en-de/"},{"country":"Europe - Netherlands","url":"/eu/en-nl/"},{"country":"Europe","url":"/eu/"},{"country":"Europe - France","url":"/eu/en-fr/"},{"country":"Europe - Italy","url":"/eu/en-it/"},{"country":"Europe - Spain","url":"/eu/en-es/"}],"French":[{"country":"United States","url":"/fr-fr/"},{"country":"Europe - France","url":"/eu/fr-fr/"}],"German":[{"country":"United States","url":"/de-de/"},{"country":"Europe - Germany","url":"/eu/de-de/"}],"Italian":[{"country":"United States","url":"/it-it/"},{"country":"Europe - Italy","url":"/eu/it-it/"}],"Portuguese":[{"country":"United States","url":"/pt-pt/"}],"Russian":[{"country":"United States","url":"/ru-ru/"}],"Spanish":[{"country":"United States","url":"/es-es/"},{"country":"Europe - Spain","url":"/eu/es-es/"}],"Dutch":[{"country":"Europe - Netherlands","url":"/eu/nl-nl/"}],"Simplified Chinese":[{"country":"United States","url":"/zh-hans/"}],"Traditional Chinese":[{"country":"United States","url":"/zh-hant/"}]};
467
468      window.cultures = cultures;
469    })();</script>
469<script src="/vendor/culture-modal.js"></script>
469   
469<script src="/vendor/geo-banner.js"></script>
469 
469<script>
470      (function () {
471        function initHero() {
472          const $ = window.jQuery;
473          if (!$) return;
474          // Ported from the live CMS source (Accelerator .../globals/functions.js):
475          // a FADE carousel, autoplay from data-rotation-speed, the custom prev/next
476          // buttons passed as slick arrows (bound in place since they're elements, not
477          // HTML), dots into [data-slider-dots], plus a manual play/pause toggle.
478          $("[data-hero-slider-container]").each(function () {
479            const container = this; // eslint-disable-line @typescript-eslint/no-this-alias -- jQuery .each() pattern
480            const sliderBox = container.querySelector("[data-hero-slider]");
481            if (!sliderBox || $(sliderBox).hasClass("slick-initialized")) return;
482            const prevBtn = container.querySelector("[data-slider-previous]");
483            const nextBtn = container.querySelector("[data-slider-next]");
484            const dots = container.querySelector("[data-slider-dots]");
485            const autoplayBtn = container.querySelector("[data-slider-autoplay]");
486            const srAnnouncer = container.querySelector("[data-carousel-announcer]");
487            const rotationSpeed = ($(container).data("rotation-speed") || 5) * 1000;
488
489            $(sliderBox).slick({
490              mobileFirst: true,
491              prevArrow: prevBtn,
492              nextArrow: nextBtn,
493              adaptiveHeight: false,
494              autoplay: true,
495              dots: true,
496              arrows: true,
497              dotsClass: "slider-dots",
498              appendDots: dots,
499              autoplaySpeed: rotationSpeed,
500              fade: true,
501              speed: 200,
502            });
503
504            if (autoplayBtn) {
505              autoplayBtn.addEventListener("click", function () {
506                if ($(autoplayBtn).hasClass("playing")) {
507                  $(sliderBox).slick("slickPause");
508                  $(autoplayBtn).addClass("paused").removeClass("playing");
509                } else {
510                  $(sliderBox).slick("slickPlay");
511                  $(autoplayBtn).addClass("playing").removeClass("paused");
512                }
513              });
514            }
515
516            $(sliderBox).on("beforeChange", function (event, slick, currentSlide, nextSlide) {
517              if (srAnnouncer)
518                srAnnouncer.innerHTML =
519                  "now showing slide " + (nextSlide + 1) + " of " + slick.slideCount;
520            });
521          });
522        }
523        // Basic Carousel widget slider. Ported verbatim from the live CMS source
524        // (functions.js initiateBasicCarousel + handleCarouselItemWidth): each
525        // .basic-carousel .slider becomes an infinite 4-up slick carousel (responsive
526        // 1024→3, 600→2, 480→1) driven by the sibling .slider-btn--prev/--next arrows.
527        // handleCarouselItemWidth pins each .slider__item's max-width to its slick width
528        // (live keeps items from over-stretching) and reruns on slick's breakpoint event.
529        function initBasicCarousel() {
530          const $ = window.jQuery;
531          if (!$) return;
532          $(".basic-carousel .slider").each(function () {
533            const slider = this; // eslint-disable-line @typescript-eslint/no-this-alias -- jQuery .each() pattern
534            if ($(slider).hasClass("slick-initialized")) return;
535            function handleCarouselItemWidth() {
536              $(slider)
537                .find(".slider__item")
538                .each(function () {
539                  $(this).css("max-width", this.style.width);
540                });
541            }
542            $(slider).slick({
543              dots: true,
544              infinite: true,
545              speed: 300,
546              slidesToShow: 4,
547              slidesToScroll: 1,
548              prevArrow: $(slider).parent().find(".slider-btn--prev"),
549              nextArrow: $(slider).parent().find(".slider-btn--next"),
550              responsive: [
551                {
552                  breakpoint: 1024,
553                  settings: { slidesToShow: 3, slidesToScroll: 1, infinite: true },
554                },
555                { breakpoint: 600, settings: { slidesToShow: 2, slidesToScroll: 1 } },
556                { breakpoint: 480, settings: { slidesToShow: 1, slidesToScroll: 1 } },
557              ],
558            });
559            handleCarouselItemWidth();
560            $(slider).on("breakpoint", function () {
561              handleCarouselItemWidth();
562            });
563          });
564        }
565        function initBlogSlider() {
566          const $ = window.jQuery;
567          if (!$) return;
568          const $slider = $("#blog-listing-slider");
569          if (!$slider.length || $slider.hasClass("slick-initialized")) return;
570          const $wrap = $slider.closest(".blog-listing-slider");
571          // Ported from the live CMS source (functions.js blogSliderSettings):
572          // variable-width, mobile-first, responsive slidesToShow 1/2/3/4, dots into
573          // #blog-listing-slider__dots, custom .slider-button arrows scoped to this
574          // slider. (Upstream's `inifinite:false` is a typo, so slick keeps infinite:true.)
575          $slider.slick({
576            dots: true,
577            arrows: false,
578            autoplay: false,
579            slidesToShow: 1,
580            slidesToScroll: 1,
581            mobileFirst: true,
582            speed: 600,
583            adaptiveHeight: true,
584            variableWidth: true,
585            dotsClass: "slider-dots",
586            appendDots: $("#blog-listing-slider__dots"),
587            prevArrow: $wrap.find(".slider-button--left"),
588            nextArrow: $wrap.find(".slider-button--right"),
589            responsive: [
590              { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 2, arrows: false } },
591              { breakpoint: 1439, settings: { arrows: true, slidesToShow: 3, slidesToScroll: 3 } },
592              { breakpoint: 1560, settings: { arrows: true, slidesToShow: 4, slidesToScroll: 4 } },
593            ],
594            rows: 0,
595          });
596        }
597        // Related-posts slider on the NewsPage detail (#posts-listing-slider). Ported from
598        // the live CMS source (functions.js relatedSliderSettings + initiateReslicking): it's
599        // a slick slider only on mobile (≤1000px) and "unslick" on desktop (>1000px), with a
600        // resize handler that re-slicks/un-slicks across the breakpoint. Dots go into
601        // #blog-listing-slider__dots. Guarded so non-news pages skip it entirely.
602        function initRelatedSlider() {
603          const $ = window.jQuery;
604          if (!$) return;
605          const $slider = $("#posts-listing-slider");
606          if (!$slider.length || $slider.hasClass("slick-initialized")) return;
607          // (Upstream's `inifinite:false` is a typo, so live slick keeps infinite:true —
608          //  omit the key here to match, like initBlogSlider above.)
609          const settings = {
610            dots: true,
611            arrows: false,
612            autoplay: false,
613            slidesToShow: 1,
614            slidesToScroll: 1,
615            mobileFirst: true,
616            speed: 300,
617            adaptiveHeight: true,
618            variableWidth: true,
619            dotsClass: "slider-dots",
620            appendDots: $("#blog-listing-slider__dots"),
621            responsive: [{ breakpoint: 1000, settings: "unslick" }],
622            rows: 0,
623          };
624          const breakpoint = settings.responsive[0].breakpoint;
625          $slider.slick(settings);
626          $(window).on("resize", function () {
627            if ($(window).width() > breakpoint) {
628              if ($slider.hasClass("slick-initialized")) $slider.slick("unslick");
629              return;
630            }
631            if (!$slider.hasClass("slick-initialized")) $slider.slick(settings);
632          });
633        }
634        // Header/nav (+ tabs/accordions): the site's data-expander system handles
635        // mega-menu dropdowns, the mobile menu overlay, the culture modal, and the
636        // homepage tabs — all via [data-expander]. One unified system, as on live.
637        function initNav() {
638          const t = window.talonUtil;
639          if (t && typeof t.setupToggles === "function") t.setupToggles();
640        }
641        // Sticky header (inlined from utils.js vendorPlugins, minus the lazy-loader):
642        // toggle sticky-header-up/down on body as the user scrolls past the header.
643        function initStickyHeader() {
644          const hdr = document.querySelector(".site-header");
645          if (!hdr || !hdr.classList.contains("sticky-header")) return;
646          const body = document.body;
647          let lastScroll = 0;
648          const debounce = window.talonUtil && window.talonUtil.debounce;
649          const handler = function () {
650            const cur = window.pageYOffset,
651              h = hdr.offsetHeight;
652            if (cur <= h) {
653              body.classList.remove("sticky-header-up", "sticky-header-down");
654              lastScroll = cur;
655              return;
656            }
657            if (cur > lastScroll && !body.classList.contains("sticky-header-down")) {
658              body.classList.remove("sticky-header-up");
659              body.classList.add("sticky-header-down");
660            } else if (cur < lastScroll && body.classList.contains("sticky-header-down")) {
661              body.classList.remove("sticky-header-down");
662              body.classList.add("sticky-header-up");
663            }
664            lastScroll = cur;
665          };
666          window.addEventListener("scroll", debounce ? debounce(handler, 0) : handler);
667        }
668        // Video/livestream modal trigger. Ported verbatim from the live CMS source
669        // (functions.js): a delegated click on any [data-toggle="modal"] opens the element
670        // whose id matches data-target as a modaal dialog (content_source + start_open).
671        // Drives the FeaturedVideoPlayer widget's play button (.featured-livestream__button).
672        function initVideoModal() {
673          const $ = window.jQuery;
674          if (!$ || !$.fn || typeof $.fn.modaal !== "function") return;
675          $(document).on("click", '[data-toggle="modal"]', function (e) {
676            const target = "#" + $(this).attr("data-target");
677            $(this).modaal({
678              content_source: target,
679              start_open: true,
680              overlay_opacity: 0.9,
681            });
682            e.preventDefault();
683          });
684        }
685        // NT.NewsListing (.news-section2) + NT.EventListing (.events-section) +
686        // NT.BlogPostListing (.blogs-section) client-side pagination. All three live widgets page
687        // server-side via ?page=N; we render ALL items (each tagged data-news-page /
688        // data-event-page / data-blog-page) plus page 1's control markup, and swap the visible
689        // window + rebuild the numbered controls here. The chunk algorithm mirrors
690        // _Pagination.cshtml exactly so the rendered controls match live for every page. Guarded +
691        // scoped to each listing wrapper (the item class comes from the root's data-item-selector),
692        // so non-listing pages no-op.
693        function initNewsPagination() {
694          const roots = document.querySelectorAll(
695            "[data-news-listing],[data-event-listing],[data-blog-listing]",
696          );
697          if (!roots.length) return;
698          Array.prototype.forEach.call(roots, function (root) {
699            const pageSize = parseInt(root.getAttribute("data-page-size"), 10) || 9;
700            const chunkSize = parseInt(root.getAttribute("data-chunk-size"), 10) || 3;
701            const totalPages = parseInt(root.getAttribute("data-total-pages"), 10) || 1;
702            const list = root.querySelector(".pagination__list");
703            const itemSelector = root.getAttribute("data-item-selector") || ".news-listing3__item";
704            const items = root.querySelectorAll(itemSelector);
705            if (totalPages <= 1 || !list) return;
706
707            function svgLink(hash, srText) {
708              return (
709                '<a href="#" class="pagination__link pagination__link--svg">' +
710                '<svg aria-hidden="true" focusable="false"><use xlink:href="/assets/dist/images/svg-legend.svg#' +
711                hash +
712                '"></use></svg><span class="sr-only">' +
713                srText +
714                "</span></a>"
715              );
716            }
717
718            // Mirror _Pagination.cshtml's chunk window for the given current page.
719            function controlsFor(current) {
720              let startPage = Math.max(1, current - Math.floor((chunkSize - 1) / 2));
721              const endPage = Math.min(startPage + chunkSize - 1, totalPages);
722              if (endPage === totalPages) startPage = Math.max(1, totalPages - chunkSize + 1);
723              const out = [];
724              if (current > 1) out.push({ k: "prev", p: current - 1 });
725              if (startPage !== 1) out.push({ k: "first", p: 1 });
726              if (current > Math.floor((chunkSize - 1) / 2) && startPage !== 1)
727                out.push({ k: "prevChunk", p: Math.max(current - chunkSize, 1) });
728              for (let n = startPage; n <= endPage; n++)
729                out.push({ k: "page", p: n, active: n === current });
730              if (current < totalPages - Math.floor((chunkSize - 1) / 2) && endPage !== totalPages)
731                out.push({ k: "nextChunk", p: Math.min(current + chunkSize, totalPages) });
732              if (endPage < totalPages) out.push({ k: "last", p: totalPages });
733              if (current < totalPages) out.push({ k: "next", p: current + 1 });
734              return out;
735            }
736
737            function render(current) {
738              // Toggle the visible item window.
739              Array.prototype.forEach.call(items, function (li, i) {
740                li.hidden = Math.floor(i / pageSize) + 1 !== current;
741              });
742              // Rebuild the numbered controls for the new current page.
743              let html = "";
744              controlsFor(current).forEach(function (c) {
745                if (c.k === "prev")
746                  html +=
747                    '<li class="PagedList-skipToPrevious pagination__list-item" data-page-number="' +
748                    c.p +
749                    '">' +
750                    svgLink("arrow-left-slider", "Previous page") +
751                    "</li>";
752                else if (c.k === "first")
753                  html +=
754                    '<li class="pagination__list-item" data-page-number="1"><a href="#" class="pagination__link">1</a></li>';
755                else if (c.k === "prevChunk")
756                  html +=
757                    '<li class="PagedList-skipToPrevious pagination__list-item" data-page-number="' +
758                    c.p +
759                    '"><a href="#" class="pagination__link">...<span class="sr-only">Previous chunk</span></a></li>';
760                else if (c.k === "page")
761                  html += c.active
762                    ? '<li class="pagination__list-item active"><span class="pagination__link pagination__link--active">' +
763                      c.p +
764                      "</span></li>"
765                    : '<li class="pagination__list-item" data-page-number="' +
766                      c.p +
767                      '"><a href="#" class="pagination__link">' +
768                      c.p +
769                      "</a></li>";
770                else if (c.k === "nextChunk")
771                  html +=
772                    '<li class="PagedList-skipToNext pagination__list-item" data-page-number="' +
773                    c.p +
774                    '"><a href="#" class="pagination__link">...<span class="sr-only">Next chunk</span></a></li>';
775                else if (c.k === "last")
776                  html +=
777                    '<li class="pagination__list-item" data-page-number="' +
778                    c.p +
779                    '"><a href="#" class="pagination__link">' +
780                    c.p +
781                    "</a></li>";
782                else if (c.k === "next")
783                  html +=
784                    '<li class="PagedList-skipToNext pagination__list-item" data-page-number="' +
785                    c.p +
786                    '">' +
787                    svgLink("arrow-right-slider", "Next page") +
788                    "</li>";
789              });
790              list.innerHTML = html;
791            }
792
793            list.addEventListener("click", function (e) {
794              const li =
795                e.target && e.target.closest ? e.target.closest("[data-page-number]") : null;
796              if (!li || !list.contains(li)) return;
797              e.preventDefault();
798              const target = parseInt(li.getAttribute("data-page-number"), 10);
799              if (!target || target < 1 || target > totalPages) return;
800              render(target);
801              root.scrollIntoView({ behavior: "smooth", block: "start" });
802            });
803          });
804        }
805        function initAll() {
806          initHero();
807          initBlogSlider();
808          initRelatedSlider();
809          initBasicCarousel();
810          initNav();
811          initStickyHeader();
812          initVideoModal();
813          initNewsPagination();
814        }
815        if (document.readyState !== "loading") initAll();
816        else document.addEventListener("DOMContentLoaded", initAll);
817      })();
818    </script>
818 
818<script>(function(){const sb = {"title":"Attention!","continueLabel":"Continue","message":"You are now leaving a NinjaTrader website and will be redirected to a third-party site. Neither NinjaTrader nor its affiliated entities has endorsed or recommended for use any product, service, or statement offered or presented on the site you are about to visit. Third-party vendors and their websites, products, and services are independent and not affiliated with NinjaTrader or its affiliated entities.\u003cbr />\u003cbr />By clicking the button below, I confirm to have read and understood the statement above.","blacklistedDomains":["ninjatraderecosystem.com","youtube.com","anthonycrudele.com","daytradetowin.com","thelabtrading.com","livestreamtrading.com","moneylinetradingco.com","thepaxgroup.org","stratalerts.ai","x.com","vipertradingsystems.com","crowdedmarketsreport.com","idta.com.au","jtrader.co","microefutures.wordpress.com","crowdedmarketreport.com","try.takeprofittrader.com","blusky.pro","emergeprofit.com","elitetraderfunding.com","fundedfuturesfamily.com","checkout.fundingfutures.com","app.fundingticks.com","tradefundrr.com","fxifyfutures.com","ninjatrader.thelegendstrading.com","lifeuptrading.com","myfundedfutures.com","purdia.com","client-area.thetradingpit.com","tickticktrader.com","tradeday.com","fundingtrading.com","tradeify.co","apextraderfunding.com","fundednext.com","goatfundedfutures.com","thelegendstrading.com","lucidtrading.com","takeprofittrader.com","fundingfutures.com","thetradingpit.com","app.fxifyfutures.com","facebook.com","x.com","linkedin.com","instagram.com","phidiaspropfirm.com","tradingview.com"]};
819
820  (function () {
821    function init() {
822      const $ = window.jQuery;
823      if (!$ || !$.fn || typeof $.fn.modaal !== "function") return;
824      const cancelBtn =
825        '<svg aria-hidden="true" focusable="false"><use xlink:href="/assets/dist/images/svg-legend.svg#x-cross"></use></svg>';
826
827      Array.prototype.forEach.call(document.getElementsByTagName("a"), function (el) {
828        const domain = (el.host || "").replace(/^www\./, "").toLowerCase();
829        const match =
830          sb.blacklistedDomains.indexOf(domain) !== -1 ||
831          el.classList.contains("js-globalspeedbump");
832        if (!match || el.classList.contains("js-noglobalspeedbump")) return;
833
834        // Capture the destination, then let modaal own the click (it preventDefaults +
835        // opens the confirm; Continue runs the callback). Idiomatic modaal binding —
836        // re-opens correctly on repeat clicks, unlike the live start_open href-rewrite.
837        const url = el.href;
838        $(el).modaal({
839          type: "confirm",
840          confirm_title: sb.title,
841          confirm_content: sb.message,
842          confirm_button_text: sb.continueLabel,
843          confirm_cancel_button_text: cancelBtn,
844          confirm_callback: function () {
845            window.open(url);
846          },
847        });
848      });
849    }
850    if (document.readyState !== "loading") init();
851    else document.addEventListener("DOMContentLoaded", init);
852  })();
853})();</script>
853 </body> </html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.