Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Custom optimizer development feedback

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

    Custom optimizer development feedback

    NT guys:

    I've spent the last week or so developing a custom optimizer to use instead of the default brute force one. Here's some feedback. I'd imagine enhancing this area is pretty low on the priority list so this is mostly FYI.

    1. Most importantly, thanks for providing a great architecture that makes it possible to extend NT like this. I am continually blown away at how I can implement almost any idea I come up with after a little digging.

    2. I get the impression the NT framework is doing a calculation to figure out the total number of iterations expected based on the min, max, and increment values, and using these to update the elapsed/remaining times. It would be nice if a custom optimizer could override this so that the times displayed would be accurate. For the time being I am just outputting the accurate timing info to the output window.

    3. After you call RunIteration() from your optimizer, the Strategy.Performance collection is empty. I would expect this to contain the performance information from the run which just completed so I can rank the results and decide which ones to propagate. I worked around this for the time being by accessing a static member in my SQN optimizer type.

    4. Related to #3, if you create a custom optimizer type, the value that you return, as far as I can tell, does not get stored in the data model anywhere, just in the results viewable by NT. It would be nice if that were stored as Strategy.Performance.AllTrades.TradesPerformance.P erformanceValue or something similar to avoid having to redo the calculation.

    5. It would be very nice to be able to specify properties on the optimizer itself and have those settable in the UI. For example, once I select my optimizer I would be able to specify population size and max generations. I've worked around this for the time being by hijacking a couple of parameters from the strategy itself.

    6. The optimizer and optimizer type classes should have a Print method. For the time being, I just call Strategy.Print.

    #2
    Hi PeteS,

    Thanks for taking the time to provide these insightful comments. NinjaTrader at its core is a framework which we use to build the NinjaTrader application. As we get more comfortable and gain experience supporting the "official" scope of what we call the NinjaScript layer, we will expand the circle of support to include more aspects of the underlying framework.

    Anyways, will take your points under advisement for future releases.
    RayNinjaTrader Customer Service

    Comment


      #3
      Pete,

      Please PM me at "dierk AT ninjatrader DOT com" for follow up.

      Thanks

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Geovanny Suaza, 02-11-2026, 06:32 PM
      0 responses
      599 views
      0 likes
      Last Post Geovanny Suaza  
      Started by Geovanny Suaza, 02-11-2026, 05:51 PM
      0 responses
      344 views
      1 like
      Last Post Geovanny Suaza  
      Started by Mindset, 02-09-2026, 11:44 AM
      0 responses
      103 views
      0 likes
      Last Post Mindset
      by Mindset
       
      Started by Geovanny Suaza, 02-02-2026, 12:30 PM
      0 responses
      558 views
      1 like
      Last Post Geovanny Suaza  
      Started by RFrosty, 01-28-2026, 06:49 PM
      0 responses
      557 views
      1 like
      Last Post RFrosty
      by RFrosty
       
      Working...
      X