February 19, 2010: We are currently in Beta 9 with about 800+ particpants in the beta program. We anticipate releasing Beta 10 shortly.
January 29, 2010: I have created an overview video of some of the new features introduced with NinjaTrader 7 Charting. PLAY VIDEO.
January 28, 2010: We did release Beta 7 yesterday afternoon.
January 25, 2010: We should be releasing Beta 7 this week. It has taken a little longer than normal due to the slow down during the holiday season.
January 1, 2010: Happy New Year everyone! Nothing new to report, its been a bit slower around here over the past few weeks due to the holidays.
December 21, 2009: First, Happy Holidays! Beta 6 was released today. I don't anticpate a Beta 7 to be released until 2nd week of January. This is due to the Holidays.
December 16, 2009: Minor update. We closing off new requests to particpate in the beta program on this next round. Since my last post a few days ago, we have received well over another 100+ particpation requests...Thank you!
December 14, 2009: The year is winding down and we are still making good progress in finding and resolving issues. We are opening up access to add more beta testers with our pending release of Beta 6 which I hope to have released late this week. If you are interested in beta testing NT7, please send an email to our sales team with the following information:
- Free or paying user
- If paying, your license key #
- Country of residence
November 30, 2009: We will be releasing Beta 5 this week which will include an expanded beta group. We have received great feedback, both complimentary and constructive. We have taken an extra bit of time on our beta 5 release since we had to make some significant changes based on feedback received. We anticipate release unconditional public beta access within the next few beta versions.
November 6, 2009: We are temporarily not accepting new beta particpation requests. Thank you to all who stepped up.
November 4, 2009: We are making great progress. We are about to release Beta 4 and are requesting additional beta testers. If you are interested, please send an email to sales at (ninjatrader) *dot} {com} and include the following information:
- Free or paying user
- If paying, your license key #
- Country of residence
October 26, 2009: NinjaTrader Version 7 Beta 2 was released and has been progressing in a positive manner. Our 300+ users particpaiting in this process are doing a great job at uncovering and reporting issues in a very efficient manner. We will release Beta 3 later today.
October 18, 2009: We plan to release NinjaTrader Version 7 Beta 2 on Tuesday to our first wave of approximately 170 public beta testers bringing the total of beta particpants to over 300 individual users. Some highlights from this past week.
- I personally hosted an NT7 webinar presentation which lasted about 2.5 hours to an enthusiastic crowd. The demonstrations was very well received.
- We added user defined Fibonacci drawing tool templates to NinjaTrader 7
- We added Box chart style to NinjaTrader 7
October 11, 2009: We have just concluded the 1st week of beta testing through our 3rd party partners and the feedback has been very positive thus far. This release is in the hands of 150+ partners and I wish to thank them for their ongoing help in testing NinjaTrader 7. In addition to issue resolution, we have added a few minor features including, Box chart style and Fibonacci draw tool templates. Here is what you can expect this coming week.
- Those of you who have requested to particpate in the 1st wave of public beta will receive further information by tomorrow
- I will personaly present a live webinar to this 1st group regarding NinjaTrader 7 sometime early this week
- The goal is to release our next beta this coming week however, this is dependant on the progress we make knocking down our list of critical issues identified through our partner beta phase.
October 4, 2009: NinjaTrader Version 7 Beta 1 was released to our 3rd party partners and NinjaScript consultants today and we are on target to release a beta version the week of October 12th to our 1st round of public beta testers. We have had an overwhelming response over the past week for beta particpation requests. For those of you who responded to our call, please be patient, you will be receving further information from us shortly.
September 28, 2009: We had anticipated releasing the 1st beta to our development partners early this week however, based on where we are at this morning, I feel there are still some outstanding bugs I would like to address prior to this release. We will therefore release our 1st beta no later than this coming Sunday. The 2nd beta release to our 1st round of users will come the week of October 12th and be open to the first 100 or so qualified users who request to participate. Historically we have always released our beta in several waves. This optimizes our ability to focus on issue resolution which ultimately results in a more stable product for our users faster.
To be considered for the 2nd beta release please send an email to support [at) ninjatrader -dot- com and in the subject please include "NT7 Beta Request". Preference will be given to:
- Paying users over free users
- Tenure as a NinjaTrader user
- Past experience beta testing our products
Please include in your email:
- Full name and country of residence
- If you are a paying user, your license key (Help > License Key)
- How long you have been using NinjaTrader for
- Any past experience beta testing NinjaTrader
- Any comments you would like to add
September 13, 2009: As it stands today, our progress points to a beta release in aproximately 3 weeks times barring as usual, any onforseen circumstances. I will release more information on how we will rollout the fist beta versions... We for sure will release an initial version to our NinjaScript consultants and I hope we are able to do that in two weeks or so.
August 23, 2009: Last week we completed our new feature implementation and have moved on to known issue resolution, another iteration of performance profiling and 2nd level testing. Barring any unforseen issues, I believe we are still on track for end of September beta release.
August 3, 2009: We have completed our Hot Key implementation and had to rework some of our ideas around continuous contract handling. Since we implemented the bar cache, we ran into some conceptual issues with respect to merging of historical futures data at contract expiration boundaries. We decided to implement a server side solution that calculates, stores and uploads the offset values at contract boundaries. We are running behind by a few weeks internally with respect to feature implementation however, I don't believe at this time that it will negatively impact our current goal to deliver beta at the end of September.
July 9, 2009: We decided to implement a bar series caching logic which seriously improves performance in backtesting, loading charts, application startup among other things. In behind the scenes, when you request a 5 minute chart NT buids aggregates these bars from 1 minute base, if you request a 500 tick chart, it aggregates form 1 tick data. By caching, we store the 500 tick series on your local disk. Basically, you ge ta 500x speed improvement on subsequent requests for this bar series.
As a benchmark for performance gain:
Backtest on 1 million bars agreggated from 10 million ticks using our standard SampleMACrossover strategy:
NT 6.5: 2 minutes and 22 seconds
NT7 without bar caching logic: 29 seconds (major improvement over NT 6.5)
NT7 with bar caching logic: Only 7 seconds!
July 4, 2009: No unforseen issues have popped on our radar screen and we are making progress as we expected as of my last update. A few new things not originally listed on this webpage was new indicator plots and a chart ruler. Next update in approximately two weeks.
June 22, 2009: We are targeting public beta by the end of September which follows an initial NinjaScript developer only release several weeks prior. As of this writing, we are approximately 95% complete with all new feature and existing feature enhancement development. In parallel, we are complete with initial testing of the bulk of our implemented features. We currently estimate about 4 more weeks of implementation followed by several weeks of performance profiling/code optimization followed by rigorous second phase internal testing/bug fixing. Next update in approximately two weeks.
Regards,
Raymond Deux
President & CEO
NinjaTrader 7 is our most ambitious project in our short history. There are over 300+ changes in this release and the rest of this web page is a high level overview of some of the more significant changes.
General Application Performance
This is an area that we spent a lot of time on during the development of NinjaTrader 7. We re-wrote core sections of the application to be more efficient in terms of memory usage and CPU utilization.
- We optimized RAM consumption on all bar and time series objects
- We replaced the underlying grid technology to eliminate known resource leaks and gain performance and added grid features
- We introduced multi-core support resulting in faster application start up and significantly reduced strategy optimization times
- We re-wrote the core chart bar construction algorithms which result in significant performance gains in any area of the application that uses Data Series (bars)
- We optimized the processing of real-time market data events as they are processed by indicators and strategies
- Historical data requests can now be processed in hourly chunks (is daily in 6.5) which results in minimized data download times and minimized data managed in memory
- We optimized the compression of stored historical data and relocated the storage from the database to the file system resulting in smaller database size, less risk of database corruption and faster retrieval of local historical data
- We have introduced bar series caching which seriously improves performance
- We replaced the Jet database engine with a state of the art "zero maintenance" SQL database
- We upgraded to Microsoft .NET 3.5
Apart from internal benchmarking and performance profiling, we took several real-world cases from customers to see some of the gains made in performance.
Case 1
Many tick based charts (tick, volume and seconds) on high volume futures markets. On application start up/workspace recovery:
Version 6.5 - Blew up after five minutes with an out of memory exception and 1.2 GB RAM peak usage
Version 7 - Application loaded after 75 seconds with peak RAM usage never exceeding 100 MB
Case 2
Backtesting of a multi-series strategy on a basket of instruments
Version 6.5 - Peak RAM usage of 1.3 GB and crashed with an out of memory exception at around 6 minutes
Version 7 - Peak RAM usage never exceeding 430 MB with a completion time of approximately 80 seconds
Case 3
Backtesting of our SampleMACrossOver strategy on 50 tick ES series on approximately three months of historical data
Version 6.5 - Peak RAM usage of 1.2 GB, 550 MB retained in memory after backtest completion in about 4 minutes
Version 7 - Peak RAM usage never exceeded 110 MB and backtest completion in about 40 seconds
Case 4
Backtesting of our SampleMACrossOver strategy on 50 tick ES series on approximately 1 year of historical data
Version 6.5 - Failed with out of memory exception
Version 7 - Peak RAM usage of 140 MB with a completion time of less than 3 minutes
These performance tests were performed on a standard Dell Inspiron laptop.
64-bit NinjaTrader
We have added native support for running NinjaTrader in a 64-bit environment. During installation, NinjaTrader will detect the presence of a 64-bit OS and install both 32-bit and 64-bit application icons on your desktop. NinjaTrader will fully utilize a 64-bit multi-core environment especially in the area of strategy development and optimization. There is a catch in that not all of our broker and market data adapters provide native 64-bit DLL's thus however, you can still use the 32-bit version. We will provide a list of 64-bit compliant connectivity adapters when we roll out beta. One last issue is that any 3rd party NinjaScript add ons that are compiled assemblies protected by Remote Soft's Protector in 32-bit will of course not run in a 64-bit environment. Developers will need to issue users 64-bit versions.
New Google Adapter
Get free historical and delayed streaming data from www.google.com.
New Fundamental Data Support
We added internal support for fundamental data and even added a NinjaScript OnFundamentalData() method. Fundamental data is supported in varying levels from our market data vendors.
New RSS Feed Support
Subscribe to symbol level RSS feeds (Yahoo for MSFT for example) and NinjaTrader's News window will display any RSS transmitted information to this window.
New Hot Key Manager
Assign hot keys for global and local window functions including order management. This is work in progress and it could get pulled although we don't expect that this would happen.
New Automatic Connect on Application Start Up
You can enable any defined connection to automatically connect when you start NinjaTrader.

Miscellaneous Enhancements
- Improved search algorithm used in the Instrument Manager
- Z-order of application windows are accurately restored on reloading of a workspace
- Removed "Default" workspace requirement
-
ATM strategy generated stop loss orders are no longer hard coded to use "Stop Limit" orders on Globex
-
Start up splash screen is no longer top most
- New option to disable loading historical data from a connection and only load from the database
- TradeStation historical data import now support daily data
New Historical Data Manager
The Historical Data Manager allows you to import/export and edit historical data. The image below depicts a historical tick table with an excluded record (bad tick) marked in red and a changed record which is marked in yellow. If historical data is reloaded it will not overwrite any of the changes, exclusions or data additions. Changes logs are maintained and original values can be easily restored.

New Continuous/Merged Futures Contracts
The concept of continuous contracts are implemented in a manner that allows you to continue to work with the front month for trading (ES 09-09 is the current front month as of this writing) and define a rollover date, June 11, 2009 is the contract boundary between June and September contracts. Rollover dates for the most popular futures contracts will be managed by NinjaTrader server and automatically uploaded to you. You can of course overwrite this. You then set up a "Merge policy" globally which can be overridden at the instrument level. As you request a historical chart, if the days to load crossed over the rollover boundary, NinjaTrader will transparently request the prior month(s) historical data and merge it into one Data Series based on the selected merge policy. This entire process is of course transparent to the user and ensure that a complete chart is received and that you know which contract you are actually executing trades against.


New Session Manager
We have introduced a new Session Manager which allows you to pre-define session templates for when a market trades. Session templates can be assigned to each instrument in the Instrument Manager and also overridden anywhere a Data Series is used such as a Chart, Market Analyzer and Strategy Analyzer.

When adding a Data Series to a chart, you can specify "Use instrument settings" or select any pre-defined session template.

Enhanced Data Import
Import routines are now implemented as NinjaScript objects thus, developers can develop their own custom data import routines. As default, we have added MetaStock import format in addition to two variations of NinjaTrader default format. You can now generate minute bars from imported tick data and/or generate day bars from imported tick or minute data.

New Downloadable Replay Data
NinjaTrader intends (it is possible that this feature gets pulled) to provide server recorded replay data for about 40+ popular futures contracts. You can download this data directly within the NinjaTrader application.

General Market Replay Enhancements
- Overall performance improvements
- Data files are now always split at midnight US ET
- All recorded replay data files are now aggregated into a single replay session on connect allowing for continuous replay across all available days
- Chart draw objects added to a chart during replay are now removed on rewind
Performance Enhancements
- Optimized the historical data loading routines resulting in a significant performance increase
- " # bars to look back" can now be set per indicator column allowing for optimized user set ups resulting in reduced memory footprint
Enhanced Grid
You can now type directly into a cell to add an instrument.

New Cell Condition
You can now change the text of a cell to user defined text based on a condition. In the image below, the "Oversold" text (in red) is displayed as the CCI indicator reaches a value of -150 or less.
New Label Row/Grouping
Sections of the grid can be separated by using label rows ("Stocks" and "Futures" rows below). Label rows separate rows of instruments thus creating separate groups that can be sorted separately.

New Row Highlight
As data within a row change, optionally configure highlight change notification. See the yellow cells in the image above.
New Instrument Level Session Definition
In 6.5, the MA had one session start/end time. In 7.0, you can configure the MA to use instrument level session template definitions.
New Data Columns
We have added additional Market Analyzer columns including fundamental data.

New Conditions
- Added "Greater than or equal to"
- Added "Less than or equal to"
- Added "Cross above"
- Added "Cross below"
"Loading data..." Pop Up Window Removed
We relocated the loading data control to the bottom of the Control Center window (where requested can be aborted if the provider allows it) and replaced a simple "Loading data..." text within the chart as per the image below.

Enhanced Command Line Driven Chart Changing
Currently, you can directly type a new instrument symbol in a chart to change the data series. We have enhanced this by providing command line access to change the interval also.
For example:
- Type "3m" to change to a 3 minute chart
-
Type "MSFT 3m" to change to MSFT 3 minute chart
-
Type "1000t" to change to 1000 tick chart
- Type "8r" to change to a 8 tick range chart
etc..
New Chart Styles
This is work in progress and may or may not be released at beta. We will add additional styles such as Renko, Point and Figure and Kagi. Although we do not provide official support for this, all chart styles are implemented as NinjaScript objects and advanced developers can create their own custom chart styles.
New Indicator Plot Styles
We have introduced several new indicator plot styles including block, triangle up, triangle down, triangle left, triangle right and cross.
New Ask/Bid Charts
When creating a chart, you can select that market data type (Ask, bid or last) that the chart is driven by. Historical bid/ask data is only supported by some broker and market data vendors.

New Multi-Series Charting
You can now mix multiple series on a single chart without limitations seen in other platforms. We have introduced a new chart level property "Equidistant bar spacing" which is automatically set to false when mixing more than one series. What this does is creates a time axis that is void of any missing bars so that mixed series of any type can all be accurately aligned to time. When this property is set to true, bars have even space between them and missing time bars are excluded.
The image below depicts a mixed series chart that plots ES 5 Minute, NQ 1 Minute, YM 1000 Tick and YM 10 point range series.

New Data Series Window
The image below is the new Data Series window which replaces the the former Format Data Series window. The style of this new window is consistent with the Indicators and Strategies window. You will notice that in addition to some new parameters, Data Series specific parameters have been relocated from Chart Properties window to this new Data Series window. Each Data Series added to a chart can be parameterized individually. We have also enhanced how instruments are selected and/or searched for.

Enhanced Data Box
The Data Box was redesigned to support multi-series charting. New features were added for more visual control over how data is displayed. You can now enable/disable the following information:
- Data Series labels
- Indicator labels
- Panel numbers
You can also control font and have the box automatically size dependant on each chart's aggregate information that is required for display. Any indicators plots that are set to Transparent color will no longer be displayed. Lastly, column widths are sizeable.

Enhanced Mini Data Box
The Mini Data Box has been enhanced in several ways. First, the data format is compressed to take up less space. Second, all series in a panel will be displayed to support multi-series charts and lastly, indicator plot values are now displayed. In the image below, you will see the D and K plot values of the stochastics indicator.

New System Indicators
- Added "T3" indicator
-
Added "DEMA" Double Exponential Moving Average indicator
-
Added "Double Stochastics" indicator
-
Added "ZLEMA" Zero Lag Exponential Moving Average indicator
-
Added "Chaikin Volatility" indicator
-
Added "LinRegIntercept" indicator
-
Added "LinRegSlopes" indicator
-
Added "MAEnvelopes" indicator
-
Added "PFE" Polarized Fractal Efficiency indicator
-
Added "RSquared" indicator
New Indicators on Indicators
The image below depicts the new "Input Series" dialog that is available when adding an indicator to a chart. In addition to selecting a Data Series input, you can optional expand the indicators section and select any indicator as input to another indicator. You can infinitely nest indicators within indicators...Not that this would be required....

New Indicator Defaults
If you right click on any added indicator in the Indicators window, you can now select "Set Default" which will save the selected indicator's parameters as default values for the next time you use this indicator anywhere within NinjaTrader.

Enhanced Indicator Labels
You can now set an absolute label by enclosing the label in quotations. Doing so will trim the trailing system added series/parameter information. Instead of seeing "MyIndicator(101 parameters go here......)" you can display only "MyIndicator" if you wish.

New Panel Scales - Three Independent Scales Per Panel
Data Series and Indicators now have a "Scale justification" parameter that can be set to "Right", "Left" or "Overlay". In the image below, we have an ES 5 Minute Data Series on the right scale with a Stochastics indicator on the left scale.

New Fixed or Automatic Scale Range
Each panel in a chart contains three scales, right, left and overlay. Each scale's range can be automatically calculated based on the highest high and lowest low of all plotted objects or the scale can be manually set by defining the value as per the image below. You can also set the scale range via mouse dragging in the y axis. If the range is manually set (Fixed) an "F" in the upper right portion of the panel will be displayed. You can also set the scale to be linear or logarithmic.
In the image below, a stochastics indicator sits on the left scale. The left scale is fixed (see "F" in top left corner) to display values from 0 through 100.

Enhanced Scale Properties
A scale can be set to logarithmic or linear. Grid lines can now be set at user defined intervals expressed in points or can be left for automatic generation.

New Flexible Chart Panel Management
Right mouse click in any y axis will bring up a panel context menu where you can move up, down, automatically arrange or maximize chart panels.

Enhanced Panel Selection
When adding an Indicator or Data Series to a chart, you now have several options for panel selection. "New panel" will insert the object into a new panel on your chart, "Same as input series" will lock your indicator to the same panel as the underlying input data series thus move the data series to a different panel and the indicator will move with it or, just select an available panel number.

New Global Draw Objects
Draw objects now have an "Attach to" property and can be set to Instrument. Setting a Draw object to an instrument makes it global and any chart with this instrument regardless of chart type will display this draw object and receive any location and property modifications made.
The image below shows a 1 minute and 5 minute chart with a global line object.

Enhanced Drawing Tools
- We have added new "Triangle" and "Arc" drawing tools.
- Fibonacci text levels can now be displayed on the left or right
- User defined fibonnaci levels can now be saved a templates
- Regression Channel now supports selected price type
- "Snap to OHLC" has been renamed to "Snap Mode" since it will now also snap to valid indicator data points
- Select a draw object and right click will display relevant menu items
- Right click while drawing will cancel the action
- Right click while "Stay In Drawing Mode" will escape from this mode
New Ruler Drawing Tool
Ruler drawing tools allows you to draw as many rulers as you wish that measures the X and Y values between two selected points. You can also easily measure, get the values and right click to cancel the action should you not wish to maintain the ruler on the chart.

New Draw Object Locking and Attaching
1) Draw objects can now be locked via the UI and through NinjaScript. Locked objects can't be moved.
2) Draw objects can be attached to any Data Series or Indicator on a chart. Attaching them to an indicator will associate the draw object to the same scale.

New Chart Object Paint Ordering (z-order)
As you select any object on a chart, hold down the SHIFT key and scroll with your mouse wheel, you can change the paint layer of the selected object in order to move it in front of or behind other drawn objects. In the image below, the rectangle is selected and is currently on "Level 5 of 5" meaning, it is at the very bottom of the paint order. You could scroll your mouse wheel to "Level 1 of 5" which would put the rectangle on top of all others objects.

Drag & Drop of Chart Objects
Chart objects can be selected (stochastics indicator below is selected) and moved to different panels, different panel scales or create new panels. At area (1) in image below, the mouse cursor is moved to the bottom of the chart canvas which is then indicated by the light blue bar. If the indicator being dragged is dropped there, a new panel would be created. If an indicator is dragged and dropped onto an existing panel, NinjaTrader select the most suitable scale for the indicator.

Enhanced Global Cross Hair
We added a chart level property "Global cross hair time axis scrolling" that when set to false, if another chart's global cross hair time axis is outside of the the visible range of the chart, the time axis will not be scrolled to the same point in time. Seconds are now displayed on the x axis cross hair label when working with tick based intervals. We have also enhanced the cross hair to support multiple series and multiple scales.
Chart Trader
Orders and position display now have an "Auto scale" property.
When set to false and an order is outside the high/low range of your Data Series, the Data Series will no longer look scrunched.
Performance Enhancements
Optimizations, walk forward optimizations and basket backtesting now support multi-core which significantly reduces overall testing time. In addition, we have also optimized the core backtesting routines which results in performance gains.
Optimization Enhancements
- Added "Genetic" optimization in addition to the default brute force optimization
- Added support for optimization on "max. sharpe ratio"
- Added support for optimization on "max. probability"
Improved Strategy Development/Backtesting Workflow
The cyclical process of scripting, compile, backtest, tweak, compile and backtest again was cumbersome in NT 6.5. We feel we have improved this process by implementing the backtest and optimization property grids as pinnable docked windows, adding a "Run ..." button and removing the "Success" pop up window after script compilation. Now you can compile and immediately press the "Run ..." button and iterate through this cycle efficiently.

New Data Series Optimization
In addition to optimizing your strategy parameters, you can optimize your strategy against bar intervals. For example, optimize on minute bars between 1 and 100 to see what bar interval may have worked best.

New Monte Carlo Analysis
You can run Monte Carlo analysis against your back test results.

New Distribution Graph
Graph trade distribution by entry/exit time to determine when your trades are the strongest/weakest.

New Combined Results
When backtesting a list of instruments (basket) the trades generated are aggregated into a "Combined Results" virtual data set and it's performance statistics can be reviewed. During optimization, results can be optimized on the aggregated results.

New Compile Button
You can now compile your strategy at any point in the wizard vs at the very end.
New Condition Elements and Actions
- Added condition element "Session break"
- Added action "Set bar color"
- Added action "Set back color"
- Added action "Set back color all"
- Added action "Candle outline color"
- Added drawing action "Regression channel"
- Added drawing action "Fixed text"
Persistence between sessions
Strategies will now be maintained between NinjaTrader shutdown and restart. On restart, you can multi-select strategies in the Control Center Strategies grid and enable all strategies to run in a single click. You can disable, change parameters and re-enable a strategy. You can now also save a set of parameters as default. You no longer have to re-add strategies every time you restart NinjaTrader.
New strategy grid with support for multi-instrument strategies
Strategies that execute against multiple instruments will now have expandable toggle to display the position of each instrument within the strategy as per the image below. In addition, you can now generate a historical only performance report.

New Chart in Performance Viewer
When running a strategy from the grid (not from the chart) in 6.5, you were unable to view the strategy in the chart. In 7.0 we added a chart in the performance view window when electing to review a strategies' performance running in the grid.
Position synchronization
You can optionally have your strategy synchronize your live account to the strategy's position when a strategy is enabled. If your strategy starts long 1, a market order for 1 is immediately sent to your account.
Connection loss handling
You can now control how a strategy behaves on a loss of connection. Recalculate the strategy to ensure any missed data is accounted for, disregard missing data (maybe your strategy is not dependant on historical data) and keep it running as the connection comes back up or stop the strategy and send you an email alert.

Alert email handling
Any log messages that are generated from your strategy (either user called or internally called) at the "Alert" level will optionally send you an email so that you can react to any unwanted situations.
Over fill detection handling
All orders are now monitored for over fill. This means that your strategy has an order has filled in part or in whole after the cancellation requested was submitted. An alert level log will be issue and optionally an email will be sent. This can be overridden and handled yourself.
There are additional minor NinjaScript enhancements and fixes that are not listed here that we will list once we roll into 1st beta.
Memory Enhancement
Objects that implement the IDataSeries interface excluding DataSeries objects that hold indicator plot values now by default hold only their most recent 256 values. This can be overridden to behave like 6.5 by holding an infinite (all) stored values.
Improved 3rd Party Vendor License Management
To get around the occasional duplicate machine ID issue we have introduced an optional user-defined prefix. In short, you will not run into duplication issues that can't be resolved.
New OnFundamentalData() Method
A new method that is called on any change in fundamental data as driven by your market data vendor.
Historical Data Import
Import formats are now implemented as NinjaScript objects. Advanced developers can program their own custom import formats.
Changed Volume from type "int" to type "long"
This is code breaking. To remove size limitations with using an integer, we switched to a "long" data type. Existing NinjaScript objects that use Volume will have to be tweaked.
Miscellaneous Enhancements
-
"Save As" and "Print" menus to the Output window
-
Improved File > Utilities > Import NinjaScript to support custom 3rd party assemblies
-
NinjaScript exceptions are now sent to the Output window in addition to the Log tab
-
Added "Weighted" and "Weighteds" price type data series
-
SendMail() method now supports multiple email addresses
-
Output window can now be launched from a chart
-
Removed success compilation box
Multi-Series Indicators
Create custom indicators that require multiple series. Same concept implementation that we have with NinjaScript strategies.
Multi-Colored Plots
Support for multi-color plots. Although this can be achieved in 6.5 through the use of multiple plots, in 7.0 this can be achieved more efficiently with the use of a single plot.
Changed Sequence of OnBarUpdate() Method Calls
There were situations where nested indicators using a custom data series as input did not fire OnBarUpdate() in the correct sequence.
New Price Marker Formatting
You can now override the price marker format of an indicator.
Draw Objects Enhancements
Draw objects are now associated to an indicator which means that if a user removes a draw object from the chart, it will also remove the indicator. In addition, all draw objects spawned from an indicator share the indicator's z-order.
IDrawObject - IDrawObjects are now returned to the caller on all Draw() methods. IDrawObjects expose draw objects properties.
Work in progress - We will implement programmatic access to draw objects added to a chart manually. For example, you can have a user draw a line on a chart and add a "tag" to this object and you can retrieve this object, read it's value and do something with it.
Indicator Automatic Wrapper Generation
We had to make some changes to the automatic wrapper generation (most users don't even know this occurs) at compile time. Any scripts imported/migrated from 6.5 will have their wrappers regenerated automatically however, any developer providing scripts as an assembly will have to regenerate their wrappers for version 7.
New Unmanaged Order Submission
In 6.5 some users were burdened with our "Internal Order Handling" rules. We have introduced unmanaged order submission which bypasses the convenience of our order handling layer. This lower level of programming allows you to do what you want relative to order submission/management without any limitations other than any imposed by your broker. There are only three methods, SubmitOrder(), ChangeOrder() and CancelOrder(). You then get the flexibility of managing your orders how you see fit and optionally handling rejections.
New Account Access
We added methods to get access to live brokerage account values such as cash balance. This is dependant on the broker and the level of information they provide if any.
Enhanced IOrder Objects
IOrder objects are now unique through a strategy instance and will reflect the current state of the order. In 6.5, these objects were volatile and only reflected the orders informational state at one instance in time. In addition, we have exposed order error and error message properties.
Miscellaneous Enhancements
- Added "StdDev" standard deviation to the TradesPerformance class
- Strategies are now disposed on disconnect
- Fixed issue with sequence of OnBarUpdate() calls for multi-series strategies
- Trigger custom event now executed in the calling thread
Barchart Adapter
- Updated to the latest API which supports unfiltered historical tick data
-
Added support for a divisor parameter in the symbol map to address incorrect price levels where needed
eSignal Adapter
-
Updated to eSignal Standard API 152
-
Added support for a divisor parameter in the symbol map to address incorrect price levels where needed
-
Added support for eSignal fundamental data
-
Fixed issue where timestamp's could be inaccurate during pre and post market hours
Interactive Brokers Adapter
-
Fixed issue where price events with zero volume were filtered
- Added Indian Rupee and NSE exchange support
IQFeed Adapter
- Updated to the latest API
- Optimized processing of news and historical data series requests
- Fixed issue where daily events were not processed correctly if NinjaTrader was left connected to IQFeed overnight
- Fixed issue where loss of connection during a pending historical data series would cause NinjaTrader to hang
MB Trading Adapter
-
Added support for MBT historical data
-
Added option to drive streaming level 1 data from either snap shot data or time & sales data
-
Fixed issue where redundant execution events were thrown after recovery on a loss of connection
Patsystems Adapter
-
Updated to the latest Patsystems API
-
Added support for a divisor parameter in the symbol map to address incorrect price levels where needed
-
Added support for account values (applicable only if FCM provides this data)
-
Fixed issue where data streams could abruptly stop
PFGBEST.com Adapter
-
Added support for block accounts
TD Ameritrade Adapter
- Implemented streaming API, slight performance improvement
Trading Technologies Adapter
-
Added support for overnight position handling (FCM must support this also on the server side)
Yahoo Adapter
-
Complete performance overhaul
-
Optimized HTTP request processing
Zen-Fire Adapter
-
Updated to the latest API
- Position average price is now driven through the API vs client side calculated
-
Fixed issue with duplicate execution id's with Eurex
-
Improved reconnect logic