Unofficial NinjaTrader 8 wish list thread (NT8)! - NinjaTrader | futures.io
futures.io futures trading


Unofficial NinjaTrader 8 wish list thread (NT8)!
Started: by AdvancedIndicators Views / Replies:108,403 / 875
Last Reply: Attachments:48

Welcome to futures.io.

Welcome, Guest!

This forum was established to help traders (especially futures traders) by openly sharing indicators, strategies, methods, trading journals and discussing the psychology of trading.

We are fundamentally different than most other trading forums:
  • We work extremely hard to keep things positive on our forums.
  • We do not tolerate rude behavior, trolling, or vendor advertising in posts.
  • We firmly believe in openness and encourage sharing. The holy grail is within you, it is not something tangible you can download.
  • We expect our members to participate and become a part of the community. Help yourself by helping others.


You'll need to register in order to view the content of the threads and start contributing to our community. It's free and simple, and we will never resell your private information.

-- Big Mike

Reply
 48  
 
Thread Tools Search this Thread
 

Unofficial NinjaTrader 8 wish list thread (NT8)!

  #751 (permalink)
Elite Member
Denver, CO
 
Futures Experience: Advanced
Platform: NinjaTrader
Broker/Data: NinjaTrader Brokerage
Favorite Futures: ES
 
NinjaTrader's Avatar
 
Posts: 1,197 since May 2010
Thanks: 142 given, 1,791 received


freetrader View Post
Thanks much for the information on the release date. That is very good news.

I am only running two custom indicators based on NT code with very minor modifications to simply color fill below and above a line, and only when it updates the indicator. All indicators are set to only update on bar close, in my case 5 minute bars at the lowest. Careful review of NT forum posts suggest that the problem I'm having is due to the sheer number of indicators (16) I'm using per chart. I will PM you later today.

Thanks to freetrader for reaching out to our support team so we could analyze the performance issues he experienced.

The workspace(s) provided had:

- At least 20 individual charts mostly intraday
- Anywhere from 150 to 400 days of day to load
- 46+ pitchforks
- And indicators on each chart including one custom on at least each chart

The problem boils down to the custom indicator which calls the DrawRegion() method for each bar on each chart which resulted in north of a million of these calls with a unique tag for each bar. DrawRegion() used in this implementation is extremely costly. A minor tweak to the indicator replacing DrawRegion() with a histogram plot removed the performance bottleneck immediately.

Reply With Quote
The following 7 users say Thank You to NinjaTrader for this post:
 
  #752 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,883 since Dec 2010
Thanks: 2,935 given, 2,244 received


NinjaTrader View Post
Thanks to freetrader for reaching out to our support team so we could analyze the performance issues he experienced.

The workspace(s) provided had:

- At least 20 individual charts mostly intraday
- Anywhere from 150 to 400 days of day to load
- 46+ pitchforks
- And indicators on each chart including one custom on at least each chart

The problem boils down to the custom indicator which calls the DrawRegion() method for each bar on each chart which resulted in north of a million of these calls with a unique tag for each bar. DrawRegion() used in this implementation is extremely costly. A minor tweak to the indicator replacing DrawRegion() with a histogram plot removed the performance bottleneck immediately.

This might be a good test case for NT8. I am sure if the DrawRegion() is better coded in the new platform, freetrader should see better performance. Also, with the multithreading there should be some relief.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #753 (permalink)
Elite Member
Denver, CO
 
Futures Experience: Advanced
Platform: NinjaTrader
Broker/Data: NinjaTrader Brokerage
Favorite Futures: ES
 
NinjaTrader's Avatar
 
Posts: 1,197 since May 2010
Thanks: 142 given, 1,791 received



NJAMC View Post
This might be a good test case for NT8. I am sure if the DrawRegion() is better coded in the new platform, freetrader should see better performance. Also, with the multithreading there should be some relief.

DrawRegion() is not poorly coded and in NT8, although there are performance improvements it would be immaterial in this particular scenario. Simply put, it was the wrong tool for the job. DrawRegion() is designed to color a region, not to draw vertical bars, especially 1MM+ of them, that's what PlotStyle.Bar is for.

Reply With Quote
 
  #754 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,883 since Dec 2010
Thanks: 2,935 given, 2,244 received


NinjaTrader View Post
DrawRegion() is not poorly coded and in NT8, although there are performance improvements it would be immaterial in this particular scenario. Simply put, it was the wrong tool for the job. DrawRegion() is designed to color a region, not to draw vertical bars, especially 1MM+ of them, that's what PlotStyle.Bar is for.

@NinjaTrader,

Agreed, I don't think DrawRegion() is the proper function to use here, didn't mean to imply that it wasn't coded correctly, sorry. I agree, it shouldn't be used for this application.

What I think, not knowing all the details of NT8, is that some new technology that NT8 leverages to improve charting performance can be leveraged in a redesign of many of these 3rd party "colorful" indicators. This would require a new function that acted like DrawRegion() but leverages the video card performance for example.

Regards,

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #755 (permalink)
Site Administrator
Manta, Ecuador
 
Futures Experience: Advanced
Platform: My own custom solution
Favorite Futures: E-mini ES S&P 500
 
Big Mike's Avatar
 
Posts: 45,663 since Jun 2009
Thanks: 29,045 given, 80,708 received

Futures Edge on FIO

NJAMC View Post
@NinjaTrader,

Agreed, I don't think DrawRegion() is the proper function to use here, didn't mean to imply that it wasn't coded correctly, sorry. I agree, it shouldn't be used for this application.

What I think, not knowing all the details of NT8, is that some new technology that NT8 leverages to improve charting performance can be leveraged in a redesign of many of these 3rd party "colorful" indicators. This would require a new function that acted like DrawRegion() but leverages the video card performance for example.

Regards,

WPF and DirectX is what you are looking for.

Mike

Due to time constraints, please do not PM me if your question can be resolved or answered on the forum.

Need help?
1) Stop changing things. No new indicators, charts, or methods. Be consistent with what is in front of you first.
2) Start a journal and post to it daily with the trades you made to show your strengths and weaknesses.
3) Set goals for yourself to reach daily. Make them about how you trade, not how much money you make.
4) Accept responsibility for your actions. Stop looking elsewhere to explain away poor performance.
5) Where to start as a trader? Watch this webinar and read this thread for hundreds of questions and answers.
6)
Help using the forum? Watch this video to learn general tips on using the site.

If you want
to support our community, become an Elite Member.

Reply With Quote
 
  #756 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,883 since Dec 2010
Thanks: 2,935 given, 2,244 received


Big Mike View Post
WPF and DirectX is what you are looking for.

Mike

@Big Mike,

My understanding is charts will be sped up with DirectX, so hopefully one of the Game Programmers in the group can help us come up with some DirectX libraries to replace some of these DrawRegion() type of visual features. That will help the 3rd party indicators play nice with NT8. I am not an expert with DirectX, but feel we can come up with a library (maybe even one that is inherited that will transparently replace the NT8 build in features with an optimized DirectX call version.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #757 (permalink)
Site Administrator
Manta, Ecuador
 
Futures Experience: Advanced
Platform: My own custom solution
Favorite Futures: E-mini ES S&P 500
 
Big Mike's Avatar
 
Posts: 45,663 since Jun 2009
Thanks: 29,045 given, 80,708 received


NJAMC View Post
@Big Mike,

My understanding is charts will be sped up with DirectX, so hopefully one of the Game Programmers in the group can help us come up with some DirectX libraries to replace some of these DrawRegion() type of visual features. That will help the 3rd party indicators play nice with NT8. I am not an expert with DirectX, but feel we can come up with a library (maybe even one that is inherited that will transparently replace the NT8 build in features with an optimized DirectX call version.

I honestly cannot see any reason to do so. The poor performance by the other user was due to poor coding. A 2D chart does not need DirectX.

You have other case examples of sluggish performance due to drawing objects in NT?

Mike

Due to time constraints, please do not PM me if your question can be resolved or answered on the forum.

Need help?
1) Stop changing things. No new indicators, charts, or methods. Be consistent with what is in front of you first.
2) Start a journal and post to it daily with the trades you made to show your strengths and weaknesses.
3) Set goals for yourself to reach daily. Make them about how you trade, not how much money you make.
4) Accept responsibility for your actions. Stop looking elsewhere to explain away poor performance.
5) Where to start as a trader? Watch this webinar and read this thread for hundreds of questions and answers.
6)
Help using the forum? Watch this video to learn general tips on using the site.

If you want
to support our community, become an Elite Member.

Reply With Quote
 
  #758 (permalink)
Elite Member
Atkinson, NH USA
 
Futures Experience: Intermediate
Platform: NinjaTrader 8/TensorFlow
Broker/Data: NinjaTrader Brokerage
Favorite Futures: Futures, CL, ES, ZB
 
NJAMC's Avatar
 
Posts: 1,883 since Dec 2010
Thanks: 2,935 given, 2,244 received


Big Mike View Post
I honestly cannot see any reason to do so. The poor performance by the other user was due to poor coding. A 2D chart does not need DirectX.

You have other case examples of sluggish performance due to drawing objects in NT?

Mike

That is true, but there are ways to avoid poor coding by hiding the complexity of doing something correctly. The DirectX pipe is designed to speed 2D and 3D (2D is just the flat projection). Right now the operating system does this pixel by pixel within the CPU (Single thread), so converting the rectangle (region) into 2 triangles and handing that off to a GPU that is optimized to render trillions of triangles/second will will dramatically improve overall performance of these indicators in the future. Unfortunately, it will likely allow us to be lazy in coding again since the GPU will hide some of the inefficient coding.

I think a DirextX NT8 library would be great for performance of 3rd party tools.

Nil per os
-NJAMC [Generic Programmer]

LOM WIKI: NT-Local-Order-Manager-LOM-Guide
Artificial Bee Colony Optimization
Reply With Quote
 
  #759 (permalink)
Elite Member
Copenhagen, Denmark
 
Futures Experience: Advanced
Platform: Fib Fib and Fib.!
Favorite Futures: Setup
 
Posts: 293 since May 2011
Thanks: 53 given, 156 received

Row Filter Condition in MarketAnalyzer.

I miss to set a condition like RSI 14 where the Filter Condition can be set to show value Below 30% and Above 70% so I can filter out value between 30-70%. I can't see how that possible today.

NinjaTrader Version 7

Reply With Quote
 
  #760 (permalink)
Elite Member
Atlanta GA USA
 
Futures Experience: Advanced
Platform: NinjaTrader
Favorite Futures: Futures
 
Sazon's Avatar
 
Posts: 148 since Feb 2013
Thanks: 551 given, 249 received



jta3 View Post
Row Filter Condition in MarketAnalyzer.

I miss to set a condition like RSI 14 where the Filter Condition can be set to show value Below 30% and Above 70% so I can filter out value between 30-70%. I can't see how that possible today.

NinjaTrader Version 7

You can write a custom indicator that plots a negative number when the values are between 30% and 70%. Then filter out negative rows.


Edit: I will also add that it would be a good idea for NinjaTrader to add a "between" condition in the market analyzer.

Reply With Quote

Reply



futures.io > > > > Unofficial NinjaTrader 8 wish list thread (NT8)!

Thread Tools Search this Thread
Search this Thread:

Advanced Search



Upcoming Webinars and Events (4:30PM ET unless noted)
 

Anthony Drager: Pulling the trigger with confidence

Elite only
 

Leo Murphy: The Art and Science of Technical Analysis

Elite only
 

FuturesTrader71: Ask Me Anything

Elite only
     

Similar Threads
Thread Thread Starter Forum Replies Last Post
NinjaTrader 7 List of used BarsType base(PeriodType.?) zacharydw00 NinjaTrader Programming 13 December 16th, 2015 01:59 PM
List.RemoveAt SerCava NinjaTrader Programming 5 June 16th, 2012 06:24 AM
Most recent thread list-home page Hard 8 Feedback and Announcements 0 November 9th, 2010 08:42 PM
FF allows the THREAD STARTER to ignore posters so they can NOT post in their thread. TheRumpledOne Off-Topic 2 September 19th, 2009 01:53 AM


All times are GMT -4. The time now is 08:56 AM.

no new posts
Page generated 2017-01-23 in 0.17 seconds with 20 queries on phoenix via your IP 54.158.157.214