> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ninjatrader.com/_mcp/server.

# Add On

Custom Add Ons can be used to extend NinjaTrader's functionality. The methods and properties covered in this section are unique to custom Add On development.

For more information on the Add On development process please see [this](/developer/desktop-sdk/guides/educational-resources/addon-development-overview/developing-add-ons) article.

| Name                                                                                                        | Description                                                                                                                                                                                                                                                                             |
| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [NinjaTrader Controls](/developer/desktop-sdk/references/add-on/controls)                                   | This section contains controls that are native NinjaTrader controls.                                                                                                                                                                                                                    |
| [Account](/developer/desktop-sdk/references/add-on/account-class)                                           | The Account class can be used to subscribe to account related events as well as accessing account related information.                                                                                                                                                                  |
| [BarsRequest](/developer/desktop-sdk/references/add-on/barsrequest)                                         | BarsRequest can be used to request [Bars](/developer/desktop-sdk/references/common/bars) data and subscribe to real-time Bars data events.                                                                                                                                              |
| [Connection](/developer/desktop-sdk/references/add-on/connection-class)                                     | The Connection class can be used to monitor connection related events as well as accessing connection related information.                                                                                                                                                              |
| [IInstrumentProvider Interface](/developer/desktop-sdk/references/add-on/iinstrumentprovider-interface)     | When creating your [NTTabPage](/developer/desktop-sdk/references/add-on/nttabpage), if you wish to use the [instrument link](https://ninjatrader.com/support/helpGuides/nt8/NT%20HelpGuide%20English.html?linking_windows.htm), be sure to implement the IInstrumentProvider interface. |
| [IIntervalProvider Interface](/developer/desktop-sdk/references/add-on/iintervalprovider-interface)         | When creating your [NTTabPage](/developer/desktop-sdk/references/add-on/nttabpage), if you wish to use the [interval link](https://ninjatrader.com/support/helpGuides/nt8/NT%20HelpGuide%20English.html?linking_windows.htm), be sure to implement the IIntervalProvider interface.     |
| [INTTabFactory Interface](/developer/desktop-sdk/references/add-on/inttabfactory-interface)                 | If you wish to have tab page functionality like adding, removing, moving, duplicating tabs you must create a class which implements the INTTabFactory interface.                                                                                                                        |
| [IWorkspacePersistence Interface](/developer/desktop-sdk/references/add-on/iworkspacepersistence-interface) | When creating your [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow), be sure to implement the IWorkspacePersistence interface as well for the ability to save and restore your window with NinjaTrader workspaces.                                                         |
| [NTTabPage Class](/developer/desktop-sdk/references/add-on/nttabpage)                                       | This is where the actual content for tabs inside the custom add on [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow) can be defined.                                                                                                                                        |
| [Alert and Debug Concepts](/developer/desktop-sdk/references/add-on/alert-and-debug-concepts)               | In most scenarios you can use the NinjaScript provided methods for triggering alerts and debugging functionality. However, when building your own custom objects, you may find yourself wanting to use this functionality outside the NinjaScript scope.                                |
| [AtmStrategy](/developer/desktop-sdk/references/add-on/atmstrategy)                                         | AtmStrategy contains properties and methods used to manage [ATM Strategies](/developer/desktop-sdk/references/strategy/atm-strategy-methods).                                                                                                                                           |
| [ControlCenter](/developer/desktop-sdk/references/add-on/controlcenter)                                     | ControlCenter is a XAML-defined class containing the layout and properties of the Control Center window.                                                                                                                                                                                |
| [FundamentalData](/developer/desktop-sdk/references/add-on/fundamentaldata)                                 | FundamentalData is used to access fundamental snapshot data and for subscribing to fundamental data events.                                                                                                                                                                             |
| [MarketData](/developer/desktop-sdk/references/add-on/marketdata)                                           | MarketData can be used to access snapshot market data and for subscribing to market data events.                                                                                                                                                                                        |
| [MarketDepth](/developer/desktop-sdk/references/add-on/marketdepth)                                         | MarketDepth can be used to access snapshot market depth and for subscribing to market depth events.                                                                                                                                                                                     |
| [NewsItems](/developer/desktop-sdk/references/add-on/newsitems)                                             | NewsItems can be used to store news articles.                                                                                                                                                                                                                                           |
| [NewsSubscription](/developer/desktop-sdk/references/add-on/newssubscription)                               | NewsSubscription can be used for subscribing to News events.                                                                                                                                                                                                                            |
| [NTMenuItem](/developer/desktop-sdk/references/add-on/ntmenuitem)                                           | NTMenuItem is used to create new menu entries.                                                                                                                                                                                                                                          |
| [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow)                                               | The NTWindow class defines parent windows for custom window creation. Instances of NTWindow act as containers for instances of [NTTabPage](/developer/desktop-sdk/references/add-on/nttabpage), in which UI elements and their related logic are contained.                             |
| [NumericTextBox](/developer/desktop-sdk/references/add-on/numerictextbox)                                   | NumericTextBox provides functionality for numeric text boxes to capture user input.                                                                                                                                                                                                     |
| [OnWindowCreated()](/developer/desktop-sdk/references/add-on/onwindowcreated)                               | This method is called whenever a new [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow) is created.                                                                                                                                                                          |
| OnWindowDestroyed()                                                                                         | This method is called whenever a new [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow) is destroyed.                                                                                                                                                                        |
| [OnWindowRestored()](/developer/desktop-sdk/references/add-on/onwindowrestored)                             | This method is used to recall any custom XElement data from the workspace by referencing a window.                                                                                                                                                                                      |
| [OnWindowSaved()](/developer/desktop-sdk/references/add-on/onwindowsaved)                                   | This method is used to save any custom XElement data associated with your window.                                                                                                                                                                                                       |
| \[StartAtmStrategy()(startatmstrategy)                                                                      | StartAtmStrategy can be used to submit entry orders with ATM strategies.                                                                                                                                                                                                                |
| [StrategyBase](/developer/desktop-sdk/references/add-on/strategybase)                                       | StrategyBase contains properties and methods for managing a [Strategy](/developer/unsorted/strategy) object, and is the base class from which [AtmStrategy](/developer/desktop-sdk/references/add-on/atmstrategy) derives.                                                              |
| [PropagateInstrumentChange()](/developer/desktop-sdk/references/add-on/propagateinstrumentchange)           | In an [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow), PropagateInstrumentChange() sends an Instrument to other windows with the same Instrument Linking color configured.                                                                                                |
| [PropagateIntervalChange()](/developer/desktop-sdk/references/add-on/propagateintervalchange)               | In an [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow), PropagateIntervalChange() sends an interval to other windows with the same Interval Linking color configured.                                                                                                      |
| [TabControl](/developer/desktop-sdk/references/add-on/tabcontrol)                                           | The TabControl class provides functionality for working with [NTTabPage](/developer/desktop-sdk/references/add-on/nttabpage) objects within an [NTWindow](/developer/desktop-sdk/references/add-on/ntwindow).                                                                           |
| [TabControlManager](/developer/desktop-sdk/references/add-on/tabcontrolmanager)                             | The TabControlManager class can be used to set or check several properties of a [TabControl](/developer/desktop-sdk/references/add-on/tabcontrol) object.                                                                                                                               |