Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Could you please tell me more about your own threads on the graphics library which blocks NT?
Sometimes I see in Windows Task-Manager the dwm.exe being very busy.
Especially if I have several chess engines with (only) 3 cores working. Together with NT and browser
about 5 cores are used but NT has major problems and stutters (3 cores don't work!!).
Maybe you or someone else has similar problems?
Thank you.
Can you help answer these questions from other members on NexusFi?
The problems you describe are common for all of us, the main NT7 event and chart code loop is by default single-threaded, largely restricted by the Windows graphics and GUI library that it uses. Current Ninja only really makes much use of the extra cores when backtesting, although this is not an area I use. My own threads are used for independent stuff, e.g. special work, centralised logging, off-platform I/O, etc where I can safely control all issues.
What you see in the TM is that independent processes rather than threads can appear to make better use of the other cores, but of course they suffer other overheads.
In most cases when NT is running slowly it is caused by poor quality (i.e. inefficient) indicator code, or using a lot of cpu intensive data sources (e.g. tick or custom bar type charts,) which is why I suggest you make an evaluation. For example you could run record market data for a day and then run a series of high-speed tests using the recorded data, each time removing one of the indicators or one of the charts and measuring the impact to identify the main culprits. (NB I haven't used that approach, but I'd be interested if it helps )
There are also several threads on futures.io (formerly BMT) on Ninja tuning and other performance tips that are worth a search for.
In the meantime bear in mind that many indicators are coded in a manner that extravagantly wastes CPU resources. Reductions of 2 to 3 ORDERS OF MAGNITUDE are often possible. If it wasn't coded by Gomi, Fat Tails, or me, be wary.
If you are driving your car 500 miles to go around the block, a faster car is not the best solution.
"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
I wanted to be a smart ass and say obviously you need some more charts and monitors and indicators or trading will continue to be impossible.
Then I realized everything on my screen is coded or improved by one of the three mentioned and they are not making smart assed remarks, so I'll avoid doing so.
I would really like to have something which can reload ninjascript from strategy/chart from a strategy or something to dynamically add instruments while running a strategy!!
Also some easy way to save variables into file to use for strategy iterations ( variables get lost after consecutive onbarupdates or whatever).
Platform: "I trade, therefore, I AM!"; Theme Song: "Atomic Dog!"
Trading: EMD, 6J, ZB
Posts: 795 since Oct 2009
I have my roots planted firmly in programming, of the ancient san-scrit mainframe languages, and while I could keep up with what you were saying and trying to convey, I seriously doubt even the modern day programmers and self taught programmers knew even two sentences of what you just said
I also doubt, whether most will understand that when you rattled off the notion of "time series" really means which bar type is chosen on any particular chart as an interval. You could easily have spent three or four (minimally) 8 sentence paragraphs explaining that brief barrage of "what's wrong".
its outstanding that you were able to program and redesign all your indicators and not let in not one badly written one. Actually most of those freely and paid available indicators are hack jobs of cut and paste and tweaked spaghetti. One participant on these threads, every so often reverse engineers these same indicators and improves them to the same point of high efficiency you spoke of. But that's just one guy.
what I found of particular interest was your comment regarding the graphics library blocking something, presume-ably usage of any available multiple core processors.
given the state of affairs, and the already understood notion that NT8 will invalidate all previous and prior written indicators, this very same issue might have already been forced to the fore and addressed.
Platform: "I trade, therefore, I AM!"; Theme Song: "Atomic Dog!"
Trading: EMD, 6J, ZB
Posts: 795 since Oct 2009
implementation of a RamDisk of 5GB or larger dedicated solely to NT7.x db file really helps. Moving the other sub-directories helps, such as the log and error files too.
Within the last weeks I observe that NT7 stops to show the data flow, as soon as I start another program with say 3 cores.
Hence, if the other program works for 1 hour, all charts stop; if the other program ends all charts start to show the data from the last hour.
There is not only stuttering (which makes trading already difficult) as I wrote earlier.
My PC is an 8-core-i920 processor, NT7 uses 1 core (the browser about 1 additional core).
Hence, I can't do an additional job parallel because NT7 stops working at all.
I had to buy a second PC. Ridiculous!
Hopefully some NT guys read this and solve this problem in NT8.
No disrespect intended, but it's not a great idea to run any other heavy duty programs on a trading box anyway. Regardless of cpu core usage, Windows will still crap anything out once they start fighting for other resources like caches, ram or disk as well.