NexusFi: Find Your Edge


Home Menu

 





Webinar: A discussion with Raymond Deux, CEO of NinjaTrader - and the debut of NT8!


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one Big Mike with 26 posts (50 thanks)
    2. looks_two NinjaTrader with 18 posts (25 thanks)
    3. looks_3 NJAMC with 8 posts (3 thanks)
    4. looks_4 Zondor with 7 posts (6 thanks)
      Best Posters
    1. looks_one djkiwi with 2 thanks per post
    2. looks_two Big Mike with 1.9 thanks per post
    3. looks_3 NinjaTrader with 1.4 thanks per post
    4. looks_4 Zondor with 0.9 thanks per post
    1. trending_up 54,664 views
    2. thumb_up 111 thanks given
    3. group 27 followers
    1. forum 111 posts
    2. attach_file 6 attachments




 
Search this Thread

Webinar: A discussion with Raymond Deux, CEO of NinjaTrader - and the debut of NT8!

  #51 (permalink)
 
djkiwi's Avatar
 djkiwi 
Mercer Island WA
 
Experience: Advanced
Platform: Ninjatrader/Strategy Desk
Broker: Various
Trading: TF/NQ/ES/Stocks
Posts: 561 since May 2010
Thanks Given: 981
Thanks Received: 1,558


Zondor View Post
I sent the following message to NT Support.

@Zondor. Thanks for following up on that.

This is precisely my point about "prettiness" over functionality. As BigMike pointed out Sierra is the ugly duckling. Ninja is no supermodel but nothing to be ashamed of.

This is a fundamental part of a multibroker product in my opinion. It must be able to easily facilitate trade/perform position sizing/select data provider across multiple brokers not just be able to connect to multiple brokers. This should be development priority one for a multi-broker product.

I'm hoping this is a simple programming fix.

I'm also wanting to move to automated position sizing by account /broker (and assets classes within the account) but you cannot extract account values by broker. This would be a valuable addition to the product as well in my opinion and would appreciate ninjatrader taking note of it.

Cheers
DJ

Reply With Quote
Thanked by:

Can you help answer these questions
from other members on NexusFi?
ZombieSqueeze
Platforms and Indicators
How to apply profiles
Traders Hideout
What broker to use for trading palladium futures
Commodities
Pivot Indicator like the old SwingTemp by Big Mike
NinjaTrader
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
 
  #52 (permalink)
 artemiso 
New York, NY
 
Experience: Beginner
Platform: Vanguard 401k
Broker: Yahoo Finance
Trading: Mutual funds
Posts: 1,152 since Jul 2012
Thanks Given: 784
Thanks Received: 2,685


Big Mike View Post
If we are going to rearchitect NinjaTrader 9, how about supporting CUDA/OpenCL GPU optimization?

25-[AUTOLINK]GPU[/AUTOLINK] cluster cracks every standard Windows password in <6 hours | Ars Technica



Mike

I don't think NT can do anything to make GPGPU processing easier for its users. Achieving speedup on a GPU lies mainly with code optimization, of finding embarrassingly parallel tasks in a larger problem. However, it's hard to parallelize the parameter optimization logic. The same trading algorithm with a slightly different set of parameters has a different runtime from another over the same backtest period. Obvious examples: if your optimization involves deciding to use a 20 or 30 period SMA, or if it has several if's. There are two important characteristics of CUDA that do not tolerate the unsynchronized runs across backtests:

1. shared memory access
Since market data has to be accessed serially in time, you cannot simply erase a period of market data from memory until the batch of operations working on that specific period has been completed. Though I am guessing this is less of a problem nowadays with 6 GB Tesla cards being relatively cheap.

2. simultaneous execution across the 32 threads that form each warp
Meaning that the task completion time of each thread in the warp is only as fast as the slowest task.

Failing to account for these, you would be faster simply using the CPU. I'm not saying it's impossible to achieve a performance gain in optimization runs through the GPU. On the contrary, it is *definitely* possible to achieve a performance boost - except that the work goes back to the user to write a strategy that cooperates with a parallelized parameter optimizer logic. This means you have to write your trading strategy just so its parameter optimization runs can be sped up, e.g. with small bodies of if's. This is very restrictive. (Of course, you could also write the same strategy in slightly different ways, one to take advantage of GPU-based parameter optimization and one for simply fast execution times, but you will spend more time writing these two than that saved by your GPU.)

It is clear how password brute force takes advantage of the GPU - each task has nearly the same runtime (or you can easily write the code such that this is the case) and even in cases where it doesn't; the bodies of if's are small and progression in password length (and hence runtime) is straightforward; so branching is minimal and predictable.

In short - when it comes to backtesting logic, I don't think there's a lot they can do to take advantage of GPU processing.

On the strategy-level, I guess you could replace your C# routines that involve heavy matrix manipulations with CUDA compute kernels. The driver functions that manage memory and launch the CUDA kernels must still be called from an unmanaged DLL - which some of you are familiar with doing in your NinjaScripts. However, this is very expensive (delay of 10~30 instructions per call). And so long as your NT strategies must be written for .NET, it's not immediately obvious how to eke a performance gain from GPUs.

If speed is a concern, one easy thing NT can do is to allow compilation in the unsafe context (i.e. the /unsafe option in the command line).

Reply With Quote
  #53 (permalink)
 
Zondor's Avatar
 Zondor 
Portland Oregon, United States
 
Experience: Beginner
Platform: Ninjatrader®
Broker: CQG, Kinetick
Trading: Gameplay Klownbine® Trading of Globex
Posts: 1,333 since Jul 2009
Thanks Given: 1,246
Thanks Received: 2,731


From what I have seen, Ninjatrader strategies are generally coded using the same sloppy and inefficient coding techniques that are so popular with indicator programmers.

Seems to me that addressing this area would have major speed up benefits for back testing and optimization.

Because of the high resource demands, econo programming techniques should be aggressively applied to strategies. There could be a high return on the effort expended.

"If we don't loosen up some money, this sucker is going down." -GW Bush, 2008
“Lack of proof that something is true does not prove that it is not true - when you want to believe.” -Humpty Dumpty, 2014
“The greatest shortcoming of the human race is our inability to understand the exponential function.”
Prof. Albert Bartlett
Follow me on Twitter Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #54 (permalink)
 
trendwaves's Avatar
 trendwaves 
Florida
Legendary Market Wizard
 
Experience: Advanced
Platform: NinjaTrader 8
Trading: ES, NQ, CL
Posts: 703 since Dec 2012
Thanks Given: 2,898
Thanks Received: 2,525

On a personal level, I am looking forward to volume profile on the Super DOM, I am sure many of us also appreciate the stored bid/ask as well.

On a strategic level, the shift of emphasis in NinjaScript to optimal performance over ease of use is exactly the right decision at this point in the product development path. Ray is making some good strategic decisions with NinjaTrader. It sounds like he is going to give us a fast and efficient platform from which we can leverage our collective talent and energy to expand and enhance it's full potential. The more tools he can give us now, the further we can take this. The way I see this is Ray is not going to go down the mistaken path other vendors went down (mentioning no obvious 800 pound elephant names). I will take a jaguar to a hippo any day...Control the bloat and keep it lean !

Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #55 (permalink)
 
Zondor's Avatar
 Zondor 
Portland Oregon, United States
 
Experience: Beginner
Platform: Ninjatrader®
Broker: CQG, Kinetick
Trading: Gameplay Klownbine® Trading of Globex
Posts: 1,333 since Jul 2009
Thanks Given: 1,246
Thanks Received: 2,731


Quoting 
On a strategic level, the shift of emphasis in NinjaScript to optimal performance over ease of use is exactly the right decision at this point

I agree with this, but the programmers of custom indicators need to do their part too.

"If we don't loosen up some money, this sucker is going down." -GW Bush, 2008
“Lack of proof that something is true does not prove that it is not true - when you want to believe.” -Humpty Dumpty, 2014
“The greatest shortcoming of the human race is our inability to understand the exponential function.”
Prof. Albert Bartlett
Follow me on Twitter Visit my NexusFi Trade Journal Reply With Quote
  #56 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,463 since Jun 2009
Thanks Given: 33,236
Thanks Received: 101,661


Zondor View Post
From what I have seen, Ninjatrader strategies are generally coded using the same sloppy and inefficient coding techniques that are so popular with indicator programmers.

Yes but most of the performance gains from NT8 were out of reach for us. They made back-end changes in memory optimization and garbage collection, we aren't talking about localizing MIN and MAX or minimizing repeating loops when data isn't changing, etc.

At least that was my impression.

Ray did mention and show the new keyword (I forget what it was now, but basically OnChange) which only fires when price actually changes, instead of every tick. This will work well for most people not doing bid/ask analysis.

Mike

We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Follow me on Twitter Visit my NexusFi Trade Journal Started this thread Reply With Quote
  #57 (permalink)
 
whitmark's Avatar
 whitmark   is a Vendor
 
Posts: 13 since Jun 2009
Thanks Given: 7
Thanks Received: 28

Think I know what I'll be asking from Santa this year to help convert my NT7 WinForm UIs to NT8 WPF . . .

Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5 (Professional Apress) by Matthew MacDonald
Permalink: Amazon.com: Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5 (Professional Apress) (9781430243656): Matthew MacDonald: Books

Thanks, Ray, for the heads-up on the new technologies in play for NT8!

Whitmark

Reply With Quote
Thanked by:
  #58 (permalink)
 
NinjaTrader's Avatar
 NinjaTrader  NinjaTrader is an official Site Sponsor
Site Sponsor

Web: NinjaTrader
AMA: Ask Me Anything
Webinars: NinjaTrader Webinars
Elite offer: Click here
 
Posts: 1,714 since May 2010
Thanks Given: 203
Thanks Received: 2,686


Big Mike View Post
Yes but most of the performance gains from NT8 were out of reach for us. They made back-end changes in memory optimization and garbage collection, we aren't talking about localizing MIN and MAX or minimizing repeating loops when data isn't changing, etc.

At least that was my impression.

Ray did mention and show the new keyword (I forget what it was now, but basically OnChange) which only fires when price actually changes, instead of every tick. This will work well for most people not doing bid/ask analysis.

Mike

- Optimization of indicator code is helpful but it only contributed nominal amounts to the increased backtesting performance in NT8
- "Calculate on bar close" has been replaced with "Calculate" which has three options, "On bar close", "On price change" and "On each tick".

Follow me on Twitter Reply With Quote
Thanked by:
  #59 (permalink)
 
trendwaves's Avatar
 trendwaves 
Florida
Legendary Market Wizard
 
Experience: Advanced
Platform: NinjaTrader 8
Trading: ES, NQ, CL
Posts: 703 since Dec 2012
Thanks Given: 2,898
Thanks Received: 2,525


NinjaTrader View Post
- Optimization of indicator code is helpful but it only contributed nominal amounts to the increased backtesting performance in NT8
- "Calculate on bar close" has been replaced with "Calculate" which has three options, "On bar close", "On price change" and "On each tick".


I assume OnBarUpdate() will not be called when Calculate = OnPriceChange and a stream of new tick's arrive that are not price changing ticks ?

I really like the idea of having this new performance capability available, makes a lot of sense when you think about it.

Visit my NexusFi Trade Journal Reply With Quote
  #60 (permalink)
 
NinjaTrader's Avatar
 NinjaTrader  NinjaTrader is an official Site Sponsor
Site Sponsor

Web: NinjaTrader
AMA: Ask Me Anything
Webinars: NinjaTrader Webinars
Elite offer: Click here
 
Posts: 1,714 since May 2010
Thanks Given: 203
Thanks Received: 2,686



trendwaves View Post
I assume OnBarUpdate() will not be called when Calculate = OnPriceChange and a stream of new tick's arrive that are not price changing ticks ?

Correct. OnBarUpdate() would be called when a tick arrives with a different price than the prior one.

Follow me on Twitter Reply With Quote
Thanked by:




Last Updated on February 18, 2013


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts