Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

NinjaTrader 8.0.23, .Net Framework 4.8 and C# Version

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    +1! Would be nice the .Net Framework new features were introduced to NinjaTrader ASAP

    Comment


      #47
      Hello OptionDreamer, your vote has been added.
      JimNinjaTrader Customer Service

      Comment


        #48
        With .NET 6 and C# 10 recently released, there is a need to emphasise the importance of NinjaTrader 8 keeping pace with these developments.

        Whilst there are many competing priorities for the Development team, It would serve that team and the user community well if these new releases could be supported as soon as possible.

        Thanks.
        Multi-Dimensional Managed Trading
        jeronymite
        NinjaTrader Ecosystem Vendor - Mizpah Software

        Comment


          #49
          Originally posted by NinjaTrader_Jim View Post
          Hello ntbone,

          Thanks for your post.

          Correct, we are still on C# 5 in the NinjaScript Editor. Greater levels of C# can be used in Visual Studio to create managed DLL's and these managed DLL's can be used in NinjaTrader all the same, though. (We would add the dll in bin/Custom, and then add a reference within the NinjaScript Editor to use it.)
          ...
          Hi there, let me see if I understood right:

          By using Visual Studio (or even any other editor/IDE, e.g. Visual Studio Code) I could create dotnet managed DLL in any programming language able to compile down to IL (Intermediate Language), even in F#/Clojure, etc.

          By adding those DLLs to the bin/Custom folder and by adding them as references within NinjaScript Editor, I could use them as they were programmed in C# 5.0.

          If my interpretation is correct, I would say that upgrading NinjaScript to directly support newer C# version, even if very appreciated, it's not such an urgent work to be done. Am I wrong? Instead it would be very impressing to create NinjaTrader as web based dotnet application able to run on any operating system compatible with the newly released dotnet 6.

          Thanks for your answer
          Last edited by magomimmo; 11-22-2021, 07:54 AM.

          Comment


            #50
            Hello magomimmo,

            Your understanding is correct where you could build a managed DLL and add a reference for that DLL in the NinjaScript editor to use that code. This wouldn't be something we would directly support, but is something to consider trying if compiling in the NinjaScript Editor is not an option. You are welsome to share your experiences here if you think it can help other community members.

            At this time there is not an active development task to upgrade the version of C# used. It is something we receive plenty of feedback on, but it is not something we can share an ETA on when that kind of work will take place.
            JimNinjaTrader Customer Service

            Comment


              #51
              Regardless of how various approaches can make it possible for traders to utilise newer versions of C# or .NET, the fact remains that these are really just workarounds for the lack of updates to these products natively within NinjaTrader 8. Bringing these products up-to-date within NT8 offers their benefits to all users of the product, including the Development Team itself. And because the entire product itself benefits throughout, all users, including those who do not program, win!

              The benefits in performance (noted for .NET 6) are of particular relevance, since there are known performance issues in NT8 that need to be addressed, and these updates may assist in that. Furthermore, with the release of Windows 11, work to qualify NT8 on that product will be required, and it would make sense to also qualify the latest C# and .NET at the same time.

              Ignoring this progress in the products becomes counter-productive after a period ... and anything longer than 12 months falls into that category, I believe.

              Given that NinjaTrader receives "plenty of feedback" on this, surely there is demonstrable demand for the work to be done?!

              Thanks.
              Multi-Dimensional Managed Trading
              jeronymite
              NinjaTrader Ecosystem Vendor - Mizpah Software

              Comment


                #52
                Originally posted by jeronymite View Post
                ...
                The benefits in performance (noted for .NET 6) are of particular relevance, since there are known performance issues in NT8 that need to be addressed, and these updates may assist in that. Furthermore, with the release of Windows 11, work to qualify NT8 on that product will be required, and it would make sense to also qualify the latest C# and .NET at the same time.
                ...
                Hello Jeronymite,
                while I agree with you about how much value would bring on the table a more frequent upgrade of NT with the corresponding upgrade of the underlying technology, my personal view on the best path is different.

                DISCLOSURE: I'm really new to NT and I've never programmed on MS technology (I'm a senior functional programmer, mainly with clojure/jvm and clojurescript/JS on Linux OS).

                If I could dream about the next major version of NT, I would like to be web-based and portable on any operating system as desktop app as well (e.g. electron, like Visual Studio Code).

                P.S. Currently I'm using Visual Studio Code IDE (+ remote-ssh extension) on my Linux box to remotely program a virtualbox-based NT installation (with a lot of fun).

                Comment


                  #53
                  Thanks for your thoughts, magomimmo. Always good to have ideas that make a better, more robust, more accessible, more flexible, more functional platform.

                  As a Software Engineer myself, I appreciate the value that NinjaTrader 8 provides to those of us who can and do program. Yet one must never forget that there is a large cohort of folks who do not have the luxury of the skill-set of programmers, and therefore use NinjaTrader with whatever is available "out-of-the-box" and whatever can be obtained via the NinjaTrader Ecosystem that suits their needs.

                  Because of that, it is essential for NinjaTrader to bear a certain burden of responsibility for all users of the platform, and that means making it "as good as it can be" for the non-programming users as well as the more code-capable users. There is very little conflict in that, since to make it better for the programmers is to offer more that can be done and used by all users. Why is keeping pace with technological advances important? Because these new releases provide more advanced ways to do things, thus making the NinjaTrader offering even more compelling; and they also improve the platform as a whole by making it more capable, better performing, and, very importantly for NinjaTrader LLC, faster time-to-market! This would include making the types of innovations you speak of much more likely.

                  Often new technology features reduce the amount of code required to achieve a particular goal. Less code generally, though not always, reduces the risk of bugs and can make maintenance easier.

                  So for very compelling business reasons, NinjaTrader LLC should be adopting these technologies as soon as possible after reasonable qualification testing can be performed. Once a suite of testing processes and procedures is in place, this becomes easier for each iteration of releases.

                  Looking forward to NinjaTrader LLC recognising the business benefits of doing this and moving forward with it.

                  Thanks.
                  Multi-Dimensional Managed Trading
                  jeronymite
                  NinjaTrader Ecosystem Vendor - Mizpah Software

                  Comment


                    #54
                    Thanks for your thoughts as well jeronymite.

                    Time e money are scarce resources. If I had to put my money on future development I would put them in making ninjatrader agnostic about the underlying operating system.

                    The only reason why I'm currently studying dotnet is because Microsoft itself is seriously taking into account that we're living in a multi-platform world where MS OS is no more the incumbent one.

                    I would prefer, as a retail trader and as a programmer as well, to have ninjatrader running on any platform instead of having its ninjascript editor compatible with the latest C# 10 stuff.

                    My 2 cents.



                    Comment


                      #55
                      Thanks again, magomimmo. A further comment on the reasons for updating. It's not primarily to have the NinjaScript Editor at those versions, although that is obviously useful. Primarily it is to make the features in the latest versions available to all users and the Development Team. Particularly, given the explicit performance improvements in .NET 6, those performance improvements in the standard platform can flow through for the benefit of all. It also makes the development of multi-platform more likely.

                      Thanks.
                      Multi-Dimensional Managed Trading
                      jeronymite
                      NinjaTrader Ecosystem Vendor - Mizpah Software

                      Comment


                        #56
                        Hi jeronymite, just to be a little bit more technical. To become OS agnostic without sacrificing all the C# work that has been done in NinjaTrader until now, they have to migrate to dotnet 6.0 anyway. I did not try out, but if the MS programming language designers are not out of their minds (and it could be), I'm pretty sure that whatever class library - but GUI stuff - you program against 4.6, it should run on next dotnet version as well without major modifications (obviously you still have to execute the QA work).

                        The hard work is to redesign the GUI stuff. When I wrote that I would not put any money in making the NinjaScript editor compatible with the latest C# version/edition, I mean that I would throwaway it and just use a regular C# editor/IDE. It seems to me that as soon as you start doing something more advanced with NinjaScript, you start using Visual Studio anyway.

                        Am I wrong?

                        Best regards.

                        Comment


                          #57
                          Purely a matter of personal preference, I think. I have 100K+ lines of AddOn code and I use the NinjaScript Editor most of the time. I also have Visual Studio, but I rarely use it.

                          I believe NinjaTrader uses an editor from Actipro Software as the NinjaScript Editor rather than an in-house developed editor. Obviously, that editor would need to support whatever versions of C#/.NET are supported in NT8, but the development effort for NinjaTrader in that case is less relevant; it's the commercial aspects of the arrangement that might be the challenge, assuming the Actipro editor supports the desired versions. And if the Actipro editor does not support those versions, that adds an additional consideration on what to do.

                          In the end though, supporting up-to-date releases of the underlying technology becomes more necessary as time passes, and more commercially sensible as the capabilities of the recent releases allow greater functionality and improved performance, as well as making newer application technologies available that can result in the types of innovation you speak of. The benefits are, in the end, bottom-line benefits for NinjaTrader if they can use the newer technologies in ways that improve the existing product more quickly, and in ways to make exciting innovations.

                          The benefits are technical and commercial. Faster time-to-market with less work would certainly benefit NinjaTrader and its users.

                          Thanks.
                          Multi-Dimensional Managed Trading
                          jeronymite
                          NinjaTrader Ecosystem Vendor - Mizpah Software

                          Comment


                            #58
                            Thank jeronymite for your articulated answer. Next week I would like to implement a small PoC (Proof Of Concept) demonstrating to me few things:
                            1. to be able to create new components (i.e. class libraries) by using the most recent C# version supported by .NET Framework 4.8 (in my understanding it should be C# 8);
                            2. to be able to import the corresponding DLLs into NT;
                            3. to be able to use the imported DLLs within NT (e.g. in a new indicator)
                            Is this something you've already tested? Take into account that even if I'm a very experienced programmer/system architect, by being a newbie of NinjaTrader and MS Technologies as well, I could say very wrong things about them.

                            Thanks so much for your time & attention

                            P.S. UPDATE: It worked.
                            Last edited by magomimmo; 11-27-2021, 07:58 PM.

                            Comment


                              #59
                              Yes keep pushing this update,the latest version of the .NET platform with the latest C# version for that.. But if that's going to take to much time then just the latest C# version for .NET 4.8 would be helpful...

                              Comment


                                #60
                                Hi traderhawk,
                                I'm pretty sure that you can't compile down against dotnet 6 and then use the generated dll against dotnet 4.8. I already tested (and it runs as a charm) the cited scenario, that is: compile down C# 8 source code against dotnet 4.8 and then use the generated dll by adding it to both NT referenced dll and Custom folder as well.

                                That said, as soon as I have some spare time, I'll try to use NT dlls as an added project to NinjaTrader.Custom solution, by configuring it to use C# 8 (or even F# - it should do no difference) instead of C# 5 and then using the resulting dll inside NinjaTrader.Custom project. If it will work, it means you could easily use C#8 (or even F#) to extend NT.

                                My true objective in the long run is to program NT in a LISP REPL (Read Eval Print Loop) to be freed from the object oriented prison and be able to interactively develop NT extensions with my beloved family of LISP-based programming languages (i.e. Clojure)

                                Comment

                                Latest Posts

                                Collapse

                                Topics Statistics Last Post
                                Started by WeyldFalcon, 08-07-2020, 06:13 AM
                                11 responses
                                1,421 views
                                0 likes
                                Last Post jculp
                                by jculp
                                 
                                Started by RubenCazorla, Today, 09:07 AM
                                0 responses
                                1 view
                                0 likes
                                Last Post RubenCazorla  
                                Started by BarzTrading, Today, 07:25 AM
                                2 responses
                                29 views
                                1 like
                                Last Post BarzTrading  
                                Started by devatechnologies, 04-14-2024, 02:58 PM
                                3 responses
                                21 views
                                0 likes
                                Last Post NinjaTrader_BrandonH  
                                Started by tkaboris, Today, 08:01 AM
                                0 responses
                                6 views
                                0 likes
                                Last Post tkaboris  
                                Working...
                                X