NexusFi: Find Your Edge


Home Menu

 





The Truth: NinjaTrader


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one Fat Tails with 120 posts (165 thanks)
    2. looks_two Big Mike with 54 posts (93 thanks)
    3. looks_3 MetalTrade with 43 posts (10 thanks)
    4. looks_4 ZTR with 41 posts (25 thanks)
      Best Posters
    1. looks_one AynRandFan with 34 thanks per post
    2. looks_two Big Mike with 1.7 thanks per post
    3. looks_3 Fat Tails with 1.4 thanks per post
    4. looks_4 NinjaTrader with 0.9 thanks per post
    1. trending_up 360,894 views
    2. thumb_up 802 thanks given
    3. group 145 followers
    1. forum 1,059 posts
    2. attach_file 65 attachments




 
Search this Thread

The Truth: NinjaTrader

  #701 (permalink)
 brightredmegaphone 
Brisbane, Australia
 
Experience: Advanced
Platform: Ninja, MT4
Trading: FX
Posts: 30 since Sep 2010
Thanks Given: 2
Thanks Received: 13


ThatManFromTexas View Post
@ MXASJ

My thoughts exactly!

Thx for helpful comment, already is.

Reply With Quote

Can you help answer these questions
from other members on NexusFi?
REcommedations for programming help
Sierra Chart
Exit Strategy
NinjaTrader
Pivot Indicator like the old SwingTemp by Big Mike
NinjaTrader
Trade idea based off three indicators.
Traders Hideout
Better Renko Gaps
The Elite Circle
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Just another trading journal: PA, Wyckoff & Trends
34 thanks
Tao te Trade: way of the WLD
24 thanks
My NQ Trading Journal
14 thanks
Vinny E-Mini & Algobox Review TRADE ROOM
13 thanks
GFIs1 1 DAX trade per day journal
11 thanks
  #702 (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,713 since May 2010
Thanks Given: 203
Thanks Received: 2,686


brightredmegaphone View Post
I thought I would put this in the thread, and email I sent to NT Support requesting details of their MD (or President of whoever). Talk about nails down to the quick...aaaaaarrgh!

"I did all this; stopped 42 live strategies, set the old database as OLD.sdf, restarted, set all the strategies again; now I'm back to a problem I have had before, that is GBPJPY currencies showing up as incorrect in the >Trade Performance as it is not set to the correct pip amount. So, my reporting will be wrong for another day or another month or whatever it is. So, since running live strategies for 4 months I have not been able to pull off 1 single accurate report in that time. Either the DB needs repairing, or the currency reporting is out by so many pips so a loss shows up as $59000 instead of $590 or something. Instead I have to go back to my broker every week & ask him to print off reports - which he can only provide me in pdf format cos he can't get any actual data reports to give me. So I have to highlight the pdf material & paste it page by page into Word, and then transfer that into Excel to get an accurate report.

I manage a $15m currency fund that is fully AFSL licensed, that is completely automated in MT4. Every week I save off reports & email them to my accountant who provides me a complete audit in half an hour, which I then send to unit holders. In 2 years this thing has never missed a beat, not one cent difference between my brokers account & what MT4 tells me. Just to give you an idea, I run many of my strategies on minute charts too, so there are thousands of trades every single month.

Contrast that with the $30k account I run on NT7 (same broker) where I test strategies in NT7 & set them live but never really understand how they perform. So I now am employing a full-time developer to get my strategies that work to be re-coded from NT7 to MT4. If only I could get NT7 to work in a simple and timely fashion, & do the things it is supposed to do I would use it. For my fund. Full time.

But it's still not right.

Do you have an address of your President, or Managing Director or whatever you call them over there so I can write him a letter please? I feel he should know about these sorts of things, unless he is genuinely not interested."

Without understanding the context of the issue, off the top of my head, you could have problems with PnL on a non USD pair since we have to retrieve the rates at the time of trade execution in order to attempt to properly calculate the PnL. If the rate data is not available, then PnL will be off. This is not an answer to your situation, just off the top of my head information. If you can provide me a ticket #, I can look into this more closely. Also, NinjaTrader is much different in operation than MT4. MT4 serves as the broker's matching engine and thus takes full responsibility for a closed loop system. NinjaTrader in contrast sits on the outside of the system the broker uses to generate statements. If you need to generate statements for clients I would use the data provided by your broker since there should be no question that this data matches your account.

Follow me on Twitter Reply With Quote
  #703 (permalink)
Wtuinvest
Munich
 
Posts: 7 since Mar 2011
Thanks Given: 0
Thanks Received: 3


Is there any meaningful alternative to ninjatrader ?

I was trying to develop an own tradingframework based on java with calculations done in c++ for my pair trading approach , but its hell of a lot work. It seems that Ninja is simply to slow programm wise to handle any decent calculation amount in realtime ....

Reply With Quote
  #704 (permalink)
 
Fat Tails's Avatar
 Fat Tails 
Berlin, Europe
Market Wizard
 
Experience: Advanced
Platform: NinjaTrader, MultiCharts
Broker: Interactive Brokers
Trading: Keyboard
Posts: 9,888 since Mar 2010
Thanks Given: 4,242
Thanks Received: 27,102


Wtuinvest View Post
Is there any meaningful alternative to ninjatrader ?

I was trying to develop an own tradingframework based on java with calculations done in c++ for my pair trading approach , but its hell of a lot work. It seems that Ninja is simply to slow programm wise to handle any decent calculation amount in realtime ....

I would not generalize that NinjaTrader is slow. Of course, if you trade ES and perform complex calculations on every incoming tick, this will not work. But you have three options to control speed and avoid freezing

-> only perform calculations on bar close, and not intra-bar
-> use filters within the algorithm, when to perform calculations and when not to perform them
-> pay attention to non-standard plots as they will be triggered with every tick, which is not filtered out by the display update interval

I have no problems with speed, as only some of my indicators are in CalculateOnBarClose = false mode.

Reply With Quote
  #705 (permalink)
 
monpere's Avatar
 monpere 
Bala, PA, USA
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Mirus, IB
Trading: SPY, Oil, Euro
Posts: 1,854 since Jul 2010
Thanks Given: 300
Thanks Received: 3,371


Fat Tails View Post
...
-> pay attention to non-standard plots as they will be triggered with every tick, which is not filtered out by the display update interval
...

What do you mean by this statement?

Reply With Quote
  #706 (permalink)
 
monpere's Avatar
 monpere 
Bala, PA, USA
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Mirus, IB
Trading: SPY, Oil, Euro
Posts: 1,854 since Jul 2010
Thanks Given: 300
Thanks Received: 3,371

The past week, my NT install has been really slow, taking 5 or 6 minutes to startup, and taking 2 to 3 minutes to load charts, and bring up menus, etc. every thing seemed to be bringing up the hour glass. Looking around, I saw that my database file was around 300Mb, but at initial install it was around 4Mb, so I performed an NT database backup, deleted the database file, restarted NT, and performed a database restore. Now the application is operating normally again, with acceptable performance.

Reply With Quote
  #707 (permalink)
 
Fat Tails's Avatar
 Fat Tails 
Berlin, Europe
Market Wizard
 
Experience: Advanced
Platform: NinjaTrader, MultiCharts
Broker: Interactive Brokers
Trading: Keyboard
Posts: 9,888 since Mar 2010
Thanks Given: 4,242
Thanks Received: 27,102


monpere View Post
What do you mean by this statement?

If you set your indicator to CalculateOnBarClose = true,

-> OnBarUpDate() will only be called once the bar is completed
-> but the Plot() method of every indicator of every visible chart in your active workspace will be called every 200 milliseconds, if that is the chart display update interval that you selected (I use the default value of 0.5 sec)

Some indicators use custom plots that perform extensive calculations within the Plot() method. I have observed that this can slow down NinjaTrader considerably. It is best practice to try as much as possible to have a slim Plot() method.

Maybe there is some room for improvement here. If an indicator is in CalculateOnBarClose = true mode, it would be best to store the result of the Plot() method in a cache to avoid recalculating for nothing. But I am not sure, if the architecture of NinjaTrader will allow for this modification.

Reply With Quote
  #708 (permalink)
 
monpere's Avatar
 monpere 
Bala, PA, USA
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Mirus, IB
Trading: SPY, Oil, Euro
Posts: 1,854 since Jul 2010
Thanks Given: 300
Thanks Received: 3,371


Fat Tails View Post
If you set your indicator to CalculateOnBarClose = true,

-> OnBarUpDate() will only be called once the bar is completed
-> but the Plot() method of every indicator of every visible chart in your active workspace will be called every 200 milliseconds, if that is the chart display update interval that you selected (I use the default value of 0.5 sec)

Some indicators use custom plots that perform extensive calculations within the Plot() method. I have observed that this can slow down NinjaTrader considerably. It is best practice to try as much as possible to have a slim Plot() method.

Maybe there is some room for improvement here. If an indicator is in CalculateOnBarClose = true mode, it would be best to store the result of the Plot() method in a cache to avoid recalculating for nothing. But I am not sure, if the architecture of NinjaTrader will allow for this modification.

Ok, got it. When I have an indicator I want to calculate only on bar close, I store the CurrentBar number and only perform the calculation when the CurrentBar number changes. That way, no matter what CalculateOnBarClose is set to, the calculation only happens once.

Reply With Quote
  #709 (permalink)
 
Fat Tails's Avatar
 Fat Tails 
Berlin, Europe
Market Wizard
 
Experience: Advanced
Platform: NinjaTrader, MultiCharts
Broker: Interactive Brokers
Trading: Keyboard
Posts: 9,888 since Mar 2010
Thanks Given: 4,242
Thanks Received: 27,102


monpere View Post
Ok, got it. When I have an indicator I want to calculate only on bar close, I store the CurrentBar number and only perform the calculation when the CurrentBar number changes. That way, no matter what CalculateOnBarClose is set to, the calculation only happens once.

Every indicator can be set to CalculateOnBarClose = true, so you do not need to code anything. However, for the Plot Override Method() you can either

-> filter before performing calculations (check for new current bar or values that need to change)
-> check at the beginning of Plot Override() whether a new bar has been called

The second exercise is not so easy, because you need to store the lastBarPainted and firstBarPainted in a cache for checking. Also you need to store the paths for all plots of the indicator, as you need to retrieve them, when Plot Override() is executed without calculations.

Reply With Quote
  #710 (permalink)
 gomi 
Paris
Market Wizard
 
Experience: None
Platform: NinjaTrader
Posts: 1,270 since Oct 2009
Thanks Given: 282
Thanks Received: 4,505


If you need huge processing power you can always put up an OpenCL assembly an use a decent graphics card.

That should give you the few MFlops you need ;-)

OpenCL Benchmark

intel i7 980 @ 4.4 Ghz vs Nvidia GTX 480

CPU
----------------------------------------
Global Memory: 18.4
Local Memory: 77.3
Int32 Ops: 30.0
Float Ops: 12.3
Double Ops: 46.6
Common Mathematics (Float): 56.5
Common Mathematics (Double): 118.6

Image Processing: 0.0
Cryption: 53.8
Total: 413.5


GeForce GTX 480
----------------------------------------
Global Memory: 153.6
Local Memory: 149.8
Int32 Ops: 357.9
Float Ops: 178.5
Double Ops: 243.5
Common Mathematics (Float): 807.4
Common Mathematics (Double): 1100.8

Image Processing: 0.0
Cryption: 234.8
Total: 3226.3

Of course this will not solve repaint problems in the Plot() method !

Reply With Quote




Last Updated on April 22, 2017


© 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