Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Feature requests/Suggestions

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

    Feature requests/Suggestions

    1. Minor: The Indicators/Strategy dialogs let you click Apply to apply changes. After clicking Apply, the Apply button is disabled until another change is made. If no changes are made and you click Ok, the chart updates again anyway (seemingly to apply non-existent changes). This seems unnecessary.
    2. Minor: Allowing modifying other properties of plots per bar. Currently, only the brush can be modified. It would be nice to, for example, change from an up triangle to a down triangle. I currently have to add two plots to the indicator to achieve this.
    3. Moderate: Allow having abstract indicators. Sometimes an indicator does not need to be instantiated as it only serves as a base class. The NinjaScript editor currently complains if an indicator class is made abstract.
    4. Major: Allow specifying if NinjaScript properties are optional or with a default value so there can be an appropriate factory method generated. e.g. [NinjaScriptProperty(Optional: true)] or [NinjaScriptProperty(Default: 55)]. In NT7 I was able to add a property to all indicators without breaking anything. NT8 breaks because now there is no factory method generated that takes no parameters if you add a property to the Indicator class.
    5. Moderate: Allowing separate namespaces for NinjaScript objects and folders in the NinjaScript editor is nice. Should be able to have folders in VS as well. It's a pain having to wade past all the stock indicators just to get to the custom ones. Also makes it much more difficult to properly organize code.
    6. Big freakin' deal: Allow referencing other configured indicators. I frequently need to setup a family of indicators based on a single indicator. The procedure for this a big pain and is error prone. e.g. Setup KAMA on median price, an SMA on the KAMA, an EMA on the KAMA and an HMA on the KAMA. To do this, you have to set the median and other KAMA properties four times! If you need to make a change to the KAMA, it's the same procedure all over again! If you want to base another indicator on one of the others, it gets even more ridiculous. Suggestion: Allow referencing indicators by, for example, the Label property. This way, KAMA is setup once and the label can be changed to something appropriate. The other indicators then just need to use the value of the label to reference that configuration. Alternatively, the existing indicators could also be listed on the left in the Input Series dialog so they can be selected from there.
    Last edited by wbennettjr; 10-02-2015, 06:21 PM.

    #2
    Hello wbennettjr,

    I'm in the process of creating feature requests for each of these items.

    I wanted to clarify, with item 2, is this referring to the PlotStyle of a plot in an indicator? You want to be able to change the plotstyle on a per bar basis is this correct?
    http://ninjatrader.com/support/helpG...n-us/plots.htm

    Item 3 has been suggested (tracked with ID NTEIGHT-8219) and I am adding your vote toward this issue.

    Item 4, you want to hide a property from the overloads when calling an indicator from a strategy or another indicator but not hide this from the indicator parameters ui, is this correct?
    This should be possible as long as [NinjaScriptProperty] is not used.


    For Item 5, you'd like to be able to create a namespace within the NinjaTrader.NinjaScript.Indicator namespace. Also, you would like to be able to add items to a folder that shares a name with the namespace for organizational reasons, correct?

    For Item 6, on a chart, you would like to link the input series for one indicator to another indicator, is this correct?
    Chelsea B.NinjaTrader Customer Service

    Comment


      #3
      Thanks for the response Chelsea!

      Item 2:

      Yes, on a per bar basis. From your link, "Plots[0].Brush=Brushes.Blue;" would change the plot for all bars. "PlotBrushes[0][0] = Brushes.Blue" would change it for just the current bar. There is no similar way to change the plot style. If I have a signal indicator, I would want to draw a green up triangle when it's an up signal and a red down triangle when it's a down signal. Right now, I have to create two separate plots to accomplish this (could draw the triangle manually but there are other issues with that).

      Item 4:

      Leaving off the [NinjaScriptProperty] attribute gives a totally different outcome.

      If you have an indicator with the following:
      Code:
       public class Ranging : Indicator
       {
           [NinjaScriptProperty]
           public int Range { get; set; }
        
           private int _fastPeriod = 4;
           [NinjaScriptProperty]
           public int FastPeriod { get { return _fastPeriod; } set { _fastPeriod = value; } }
       }
      Then the generated factory methods will be:
      Code:
       public Ranging Ranging(int range, int fastPeriod) {}
       public Ranging Ranging(ISeries<double> input, int range, int fastPeriod) {}
      Notice there is no default parameterless factory method so you are forced to provide a parameter (was not the case in NT7). The only options to create instances of this indicator are:
      Code:
       var ranging = Ranging(1, 4);
       var ranging = Ranging(Input, 1, 4);
      What I'm suggesting is:
      Code:
       public class Ranging : Indicator
       {
           [NinjaScriptProperty(Optional = true)]
           public int Range { get; set; }
           [NinjaScriptProperty(Default = 4)]
           public int FastPeriod { get; set; }
       }
        
       public Ranging Ranging(int range = default(int), int fastPeriod = 4) {}
       public Ranging Ranging(ISeries<double> input, int range = default(int), int fastPeriod = 4) {}
      Now we can create instances using:
      Code:
       var ranging = Ranging();
       var ranging = Ranging(1);
       var ranging = Ranging(1, 4);
       var ranging = Ranging(Input);
       var ranging = Ranging(Input, 1);
       var ranging = Ranging(Input, 1, 4);
      Now you can add properties in a "partial Indicator" class part that applies to all indicators, including the stock ones, without breaking anything.

      By not including the [NinjaScriptProperty] attribute, you would have the same generated code as it is currently and you could create instances with:
      Code:
       var ranging1 = Ranging();
       ranging1.Range = 1;
       ranging1.FastPeriod = 4;
       var ranging2 = Ranging(Input);
       ranging2.Range = 2;
       ranging2.FastPeriod = 5;
      The problem with this is that the caching would only be done by using the Input value. This means the "ranging1" and "ranging2" variables would point to the same instance and therefore, both variables would report Range and FastPeriod to be 2 and 5, respectively.

      Item 5:

      In the NinjaTrader.Custom solution you have the following:
      • NinjaTrader.Custom
        • References
        • AddOns
        • BarsTypes
        • ...
        • Indicators
          • @ADL.cs
          • @ADX.cs
          • ... a crap load of other stock indicators
          • MyPassiveTrendIndicator.cs
          • MyAggressiveTrendIndicator.cs
          • MyOptimisticEntrySignalIndicator.cs
          • MyPessimisticEntrySignalIndicator.cs
          • MyMathUtils.cs
          • MySeriesUtils.cs
          • ...

        • ...

      As you can see, this gets out of hand very quickly and it's a pain trying to locate files. You have to resort to naming prefixes and other conventions to get things grouped for easy access.

      What I'm suggesting is to allow:
      • NinjaTrader.Custom
        • References
        • AddOns
        • BarsTypes
        • ...
        • Indicators
          • MyTrendIndicators (folder)
            • MyPassiveTrendIndicator.cs
            • MyAggressiveTrendIndicator.cs

          • MySignalIndicators (folder)
            • MyOptimisticEntrySignalIndicator.cs
            • MyPessimisticEntrySignalIndicator.cs

          • MyUtilities (folder)
            • MyMathUtils.cs
            • MySeriesUtils.cs

          • @ADL.cs
          • @ADX.cs
          • ... the other stock indicators

        • ...

      This way, indicator files are searched at the Indicators folder and below and it's much easier to locate needed files without having to wade through all the stock indicators.

      Item 6:

      I would like to use an added indicator as the input series for another indicator. If you start with a new chart and add a KAMA indicator with modified parameters, that configured KAMA is listed below in the "Configured" section. Now I want to add an EMA where the input series is the KAMA that was just added. I want to add the EMA, click the "Edit input..." button as usual and in the "Input series" dialog that comes up, it should allow selecting the KAMA that was already configured. It should be a link to the KAMA so that if I go and change the KAMA parameters, the EMA would be using the KAMA with the updated parameters.

      For example, in code I would do:
      Code:
       kama = KAMA(2, 10, 30);
       ema = EMA(kama, 14);
      Last edited by wbennettjr; 10-05-2015, 02:02 PM.

      Comment


        #4
        Add a vote for Item 6 - being able in the UI to select indicators as inputs that have been added prior, vs current implementation - Add 2nd indicator, then select input as Indicator, then define that indicator all over again. Many of us "link" indicators. Many other platforms allow "linking" indicators. I will admit, NT8 allows many things the others do not, but this would be very welcomed and I would use it considerably, vs having to write NT Scripts. They are simple, but still the UI way would be much much easier.

        John

        Comment


          #5
          Hello wbennettjr,

          With item 4 you want multiple overloads similar to what can be done with methods, is this correct?

          http://csharp.net-tutorials.com/clas...d-overloading/

          For item 5, I am not understanding how what you are requesting is different from how NinjaTrader 8 already works. Attached is a video to illustrate where I am confused.
          Free online storage and sharing with Screencast.com. 2 GB of storage and 2 GB of bandwidth per month for free. We won't compress, alter or take ownership of your content.
          Chelsea B.NinjaTrader Customer Service

          Comment


            #6
            Item 4:

            Yes, I am talking about methods - the methods that NT generates. Create a new indicator and compile. If you go to the bottom of the code, you'll see the methods I'm referring to.

            Item 5:

            Yes, having the namespaces and folders in the NinjaScript Editor is nice. If you refer to my initial post, you'll see I mentioned this as well as specify that I'm talking about having folders in Visual Studio. The steps you went through only creates a new namespace and puts the folder name as a prefix to the file. The file itself is still in the Indicators folder (Documents\NinjaTrader 8\bin\Custom\Indicators). The NinjaScript Editor is treating this specially and showing them as if they are in folders. I don't do development in the NinjaScript Editor - I develop in Visual Studio. The files themselves should be moved to a subfolder of the Indicators folder. In your example, since you did a strategy, if you check your hard drive, the file will be "\Documents\NinjaTrader 8\bin\Custom\Strategies\TestFolder.ATestStrategy.cs". What I'm saying is it should be in "\Documents\NinjaTrader 8\bin\Custom\Strategies\TestFolder\ATestStrategy.cs". If you open the project in Visual Studio, you'll see what I mean. I've attached a screenshot of the VS project. I have a 30" screen and you can see it is filled with stock indicators. I have to scroll for days to get to my custom indicators and they are all packed into this single list.

            The interesting thing is if you create a folder under the indicators folder and put files in it, NT will add those files to the project - even show the folder and files in the NinjaScript Editor. It doesn't seem to want to compile them though. So I don't know if this was a feature they meant to add but just did not finish. I don't think it should be a big deal to add since they're already putting the folders and files in the project and editor - just need to compile. I could be wrong though. Hopefully not - I'd really love to have this feature.
            Attached Files
            Last edited by wbennettjr; 10-06-2015, 05:12 PM.

            Comment


              #7
              Originally posted by wbennettjr View Post
              Item 4:

              Yes, I am talking about methods - the methods that NT generates. Create a new indicator and compile. If you go to the bottom of the code, you'll see the methods I'm referring to.

              Item 5:

              Yes, having the namespaces and folders in the NinjaScript Editor is nice. If you refer to my initial post, you'll see I mentioned this as well as specify that I'm talking about having folders in Visual Studio. The steps you went through only creates a new namespace and puts the folder name as a prefix to the file. The file itself is still in the Indicators folder (Documents\NinjaTrader 8\bin\Custom\Indicators). The NinjaScript Editor is treating this specially and showing them as if they are in folders. I don't do development in the NinjaScript Editor - I develop in Visual Studio. The files themselves should be moved to a subfolder of the Indicators folder. In your example, since you did a strategy, if you check your hard drive, the file will be "\Documents\NinjaTrader 8\bin\Custom\Strategies\TestFolder.ATestStrategy.cs". What I'm saying is it should be in "\Documents\NinjaTrader 8\bin\Custom\Strategies\TestFolder\ATestStrategy.cs". If you open the project in Visual Studio, you'll see what I mean. I've attached a screenshot of the VS project. I have a 30" screen and you can see it is filled with stock indicators. I have to scroll for days to get to my custom indicators and they are all packed into this single list.

              The interesting thing is if you create a folder under the indicators folder and put files in it, NT will add those files to the project - even show the folder and files in the NinjaScript Editor. It doesn't seem to want to compile them though. So I don't know if this was a feature they meant to add but just did not finish. I don't think it should be a big deal to add since they're already putting the folders and files in the project and editor - just need to compile. I could be wrong though. Hopefully not - I'd really love to have this feature.
              ref: http://ninjatrader.com/support/forum...ad.php?t=74746

              Last edited by koganam; 10-06-2015, 07:09 PM.

              Comment


                #8
                Hi wbennettjr,

                Thank you for clarifying items 4 and 5.

                For item 5 I am understanding you want file structure changes that correspond with the namespaces.

                I have created a new request / added a vote for each item on your list.
                Chelsea B.NinjaTrader Customer Service

                Comment


                  #9
                  Thanks Chelsea!

                  I have some more requests - mostly related to drawing. Should I add them to this thread or start another?

                  Comment


                    #10
                    Hi wbennettjr,

                    Not everything in this thread is related to a subject (other than feature requests). Asking here is fine.
                    Chelsea B.NinjaTrader Customer Service

                    Comment


                      #11
                      Trading Hours Page feature request in another post

                      Comment

                      Latest Posts

                      Collapse

                      Topics Statistics Last Post
                      Started by trilliantrader, Today, 03:01 PM
                      0 responses
                      2 views
                      0 likes
                      Last Post trilliantrader  
                      Started by pechtri, 06-22-2023, 02:31 AM
                      9 responses
                      122 views
                      0 likes
                      Last Post NinjaTrader_ChelseaB  
                      Started by frankthearm, 04-18-2024, 09:08 AM
                      16 responses
                      67 views
                      0 likes
                      Last Post NinjaTrader_Clayton  
                      Started by habeebft, Today, 01:18 PM
                      1 response
                      7 views
                      0 likes
                      Last Post NinjaTrader_ChelseaB  
                      Started by benmarkal, Today, 12:52 PM
                      2 responses
                      19 views
                      0 likes
                      Last Post benmarkal  
                      Working...
                      X