Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

NT8 Programming Performance Documentation

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

    NT8 Programming Performance Documentation

    In the "new world" of NT8, where programmers dream strategies, indicators, add-ons and C# syntax all day long (thanks yet again!), it would be helpful to have documentation in the NT8 documentation set (when it is released to production) that addresses user-written code performance considerations in detail.

    This should approach the matter from a number of perspectives:
    • Explicitly supported NT8 functionality (e.g. things that have a significant performance impact, things to avoid altogether, things that are preferred ways of implementing functionality, etc)
    • The environment in which a user-written entity sits within NT8 and the way that execution environment affects how the entity executes or is used (e.g. the underlying nature of the execution environment of a strategy within NT8 -- how is a strategy invoked and executed by NT8 and what effect does that have on performance considerations? Are strategies just "glorified methods" from the environment perspective, or independent threads or processes? Etc)
    • Standard C# conventions and how they should be interpreted or implemented in the NT8 environment (e.g. what considerations must be taken into account for efficient memory management in the NT8 environment other than those that are "normal" C# coding conventions? Etc)
    I am not advocating de facto C# programming documentation that is standard C# and available from many other sources. I am recommending detailed NT8-focussed programming performance documentation from a variety of perspectives that will surely improve the code quality of any NT8 programmer at any level of experience.

    For your consideration, with thanks!
    Last edited by jeronymite; 06-26-2015, 04:12 AM. Reason: Apologies: I meant to post this to the Discussion forum but will leave here.
    Multi-Dimensional Managed Trading
    jeronymite
    NinjaTrader Ecosystem Vendor - Mizpah Software

    #2
    Thanks for your thoughtful post - we definitely see value in extending up our performance tips for NinjaScript and already have a few items provided by our development team we'll be adding. With the low level access we provide, our 3rd party developers are exposed to more risk of running into trouble if they're not familiar with certain concepts.

    We're also waiting to see what sort of issues beta users run into so we can provide these guidelines around the time of the release as you suggested.
    MatthewNinjaTrader Product Management

    Comment


      #3
      We will also be launching developer.ninjatrader.com site focused on community and education sometime in 2016.
      RayNinjaTrader Customer Service

      Comment


        #4
        Originally posted by NinjaTrader_Ray View Post
        We will also be launching developer.ninjatrader.com site focused on community and education sometime in 2016.
        This my friends will be, HUGE...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

        WE DONE.
        thx
        Ronald J Cutaia Jr

        Comment


          #5
          Performance Tips in Help leave a lot out!

          Some critical factors that can severely affect performance are not mentioned at all in the Performance Tips of the Help file .

          Here are two obvious ones:
          • Exclusion of data files from O/S indexing and from real time virus and malware scanning.

          • Avoiding clueless programming techniques that use CPU cycles for nothing. These have largely been fixed in the "system" indicators, but plenty of them are already appearing in the code in the NT8 downloads section:
          • Calculating on every bar, or on every tick the values of constants that remain unchanged during entire operating life of the class (indicator, strategy, etc) Why is calculating something like 2Pi/180 100,000 times better than calculating it once? Do we expect the value of Pi to change? (Maybe another law will be passed, setting it to 3.)
          • Failing to round constants to a reasonable number of decimal places. If a constant is only calculated once, the overhead of a single rounding operation will be a worthwhile investment. For example, why do we need Pi to 14 decimal places when the number of significant digits in the indicator calculations is 3?
          • Calculating on every intrabar tick the values of variables that only change when a new bar starts.
          • Using "inline" calls to external classes on bar updates, instead of creating instances of the external classes in the Configure state and calling those instances as needed.
          Last edited by Ricam; 10-20-2015, 06:11 PM.

          Comment


            #6
            Hi Ricam,

            The NT8 beta help guide is definitely a work in progress, so we welcome suggestions such as yours to improve its content. I'll pass that along to the development team for consideration.
            <span class="name">Alex C.</span><span class="title">NinjaTrader Customer Service</span><iframe name="sig" id="sigFrame" src="/support/forum/core/clientscript/Signature/signature.php" frameborder="0" border="0" cellspacing="0" style="border-style: none;width: 100%; height: 120px;"></iframe>

            Comment

            Latest Posts

            Collapse

            Topics Statistics Last Post
            Started by algospoke, 04-17-2024, 06:40 PM
            6 responses
            49 views
            0 likes
            Last Post algospoke  
            Started by arvidvanstaey, Today, 02:19 PM
            4 responses
            11 views
            0 likes
            Last Post arvidvanstaey  
            Started by samish18, 04-17-2024, 08:57 AM
            16 responses
            61 views
            0 likes
            Last Post samish18  
            Started by jordanq2, Today, 03:10 PM
            2 responses
            11 views
            0 likes
            Last Post jordanq2  
            Started by traderqz, Today, 12:06 AM
            10 responses
            21 views
            0 likes
            Last Post traderqz  
            Working...
            X