Multi-threaded Charting

Discussion in 'Trading Software' started by rsi80, Mar 25, 2011.

  1. I currently use esignal 10.6 which supports multiple instances, so I currently have 4 winsig.exe instances running in an I7 quad core. Very fast but expensive. I would like to switch to NT 7, and have looked into it closely. I assumed that since it was a new release, it had to have multi-threading. I am honestly shocked and disappointed to find out it doesn't.

    I am a database and server programmer by background, so have been writing threaded code for over 20 years. We used to have to write assembly code to do our own stack switches in DOS. This, a new release in 2010 without multi-threading, is really inexcusable and makes you wonder about the entire architecture.

    Further, you cannot run multiple instances of NT 7. Now I am wondering if you can run a second instance of NT 7 in a VM? Anyone out there from NT who can answer? Would there be a credentials problem, i.e. do you need two accounts. Second instances would be charting only.
     
    #11     Apr 6, 2011
  2. dc101

    dc101

    You can run multiple NT instances in VM or on another machine, but only one can be connected to broker/feed. That's fine if you are running some off-line optimization that takes a long time, but it's mostly useless for live trading save for backup installation.

    What I cannot understand is that, despite the fact that MS made it real easy to implement multithreading in one's app, NT team is still not doing it.

    I'm still sticking to it though for the benefits of c# and the ability to use Visual Studio to create reusable components consumable within NT7. RightEdge is also c#, but NT is far more mature and feature rich.
     
    #12     Apr 6, 2011
  3. If you are accusing MultiCharts of such a serious crime, please begin by introducing yourself with your real name, and acknowledge that you are prepared to show proof to backup your accusations. Then, please provide factual documentation that someone has obtained proprietary code from you without your permission. If you cannot, your words constitute libel - this claim is false, and your accusations have no basis.
    Andrew Kirillov,
    MultiCharts
     
    #13     Apr 6, 2011
    yoyotrader likes this.
  4. dc101

    dc101

    I forgot to qualify: You have to have separate account for each live connection with NT, if you want simultaneous connections.
     
    #14     Apr 6, 2011
  5. dholliday

    dholliday

    Most older programs were written with one or more of the following limitations:
    • Written in a non-current language making it difficult to take advantage of current architecture improvements
    • Written before Multi-core processors
    • Written with a single-threaded architecture
    • Architecture and version 1 designed by non-professional programmers or Visual Basic programmers
    • Only designed to view a few charts at the same time.
    Maybe the nicest way to put it is that these programs were written with different requirements than some of us would like.
    For example many of these programs were written to view pretty charts. This is great but when you try to extend this to multiple real-time charts on today’s multi-core processors you can run into the problem that the original architecture is not multi-threaded. Just as important is that the charting packages used may not be designed to run in real-time. If you have charting that was designed by someone that does not understand real-time graphics you don’t have much of a chance. The graphics of a RT tick (ok, most of don’t look at tick charts) chart can take up most of the CPU cycles. Also remember that the UI updates on one-and-only-one thread so multi-threading only helps with the background calculations.
    I wrote an auto-trading platform for myself because nobody makes anything close to what I wanted. Like much of the high performance programming today it is written in Java, so I started out with a big advantage (standard libraries across operating systems and huge open source community). It was designed to run systems, not to view pretty charts. On my old dual-core laptop (1.8 GHz) watching 1000 symbols each with their own system, and only one chart, so I can see what is going on inside the systems, I run around 15 – 30 percent CPU utilization, and most of that is the DTN (tick data) DLL. On my low-end i7 quad-core laptop I haven’t even bothered to test it. Of course I rarely watch more than 100 symbols at a time.
    If I just want to look at charts I use AmiBroker. Seems fine with 10 1 minute charts and DTN data feed on an old 2.4 GHz single core desktop.
    So for charting AmiBroker (large user community) or one of the other more recent programs (I have never tried Ninja Trader because it does not do what I want). Or, if you have more advanced needs, there are some open source projects that may not be as easy to use and may require some programming, that may fit your needs. Check the auto-trading fourms.
    Note: I agonized over whether to use C++, my preferred language at the time, or Java because of the speed advantage of C++ at the time, but now that Java has caught up with, and in some cases surpassed C++ in speed, I’m glad I chose Java. I assume C# has many of the same advantages (except cross platform).
     
    #15     Apr 6, 2011
  6. dlonET

    dlonET

    Why do not you try SierraCharts, a very good performer, with an excellent tech support and good value for the money. The GUI is a bit different to start with but once you stop using and comparing to other apps then you will never us anything else. It is very stable, not like NT, and is mainly written in C++.
    Good luck
     
    #16     Apr 6, 2011
  7. Agreed. SC is by far the best value for 99.99% of the tasks you need to accomplish. Top Admin etc.
     
    #17     Apr 6, 2011
  8. I agree 100%
     
    #18     Apr 6, 2011
  9. NinjaTrader_Ray

    NinjaTrader_Ray ET Sponsor

    Sure, I can chime in. NinjaTrader is a multi-threaded application and provides multi-core support for various functions (NT7 only) during application start up and strategy optimization. Multi-core support does not extend to UI rendering at this time however, we do have plans in the future to expand multi-core support across all application functions. I have no ETA on this at this time.
     
    #19     Apr 8, 2011
  10. i tried NT on a vm on vmware.. works..
     
    #20     Jan 31, 2013