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

Rainbow - The NinjaTrader enhancement plugin

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

    Rainbow - The NinjaTrader enhancement plugin

    Dear fellow NinjaTraders,
    during my trading I implemented quite a few new features for NinjaTrader that I was missing (and I must say that I love NinjaTrader for providing me the ability to do so) and I decided now to share them with the rest of the universe. I'm putting together a simple website to provide a free download for this (http://rainbow-in.com/), so you can look at the descriptions of the features there. To give you some impressions what these features are:
    1. Improved cursor
    2. Enhanced trade visualization
    3. Improved ruler
    4. Indicator configuration templates
    5. Improved databox ... (I still have to work on this one)
    6. Single-key shortcuts on chart (a,b,c,d ... 1,2,3,4, etc.)
    7. Customizable timeframe switches
    8. Synchronized scrolling of charts
    9. Workspace switching by hotkeys
    10. Vertical grid-lines with specified minute interval on intraday chart
    11. Chart style improvements


    It's mostly useful only for discretionary traders working with charts and I know some of the features are going to be implemented in NT8, but nobody said this list is final and that there will be nothing to be improved in NT8 I won't give it away as open source, because I put quite an amount of work into this and it really took some time to implement all these features ... and I feel it is kind of my "child". Also I don't want to see anyone stealing these features and sell it for $500+ (because as I saw the prices of NT indicators ... it is certainly worth it).

    Nevertheless I'm planning to reveal some of the feature's stripped down source code and put it NinjaTrader File Sharing space, so you can look at how this is done. All of these features use NinjaTrader unsupported api, some of them even calling private methods on classes revealed using reflection and debugger, which was the most time-consuming part of the whole process.

    I must say that I'm open to any suggestions and feature requests if I find them to be a useful contribution to Rainbow (and if I'm able to implement them).

    For anyone interested in trying Rainbow, it can be downloaded on the site mentioned (http://rainbow-in.com/). Be warned though, that this is prerelease alpha version, that worked for me and I'm sure it contains some bugs that will be revealed while people other than me use it. It can be improved though if you report any misbehavior you encounter and I encourage you to do so. Nothing is perfect yet. Thanks everyone who's interested.

    Peace,
    Lucas
    Last edited by Rainbow; 02-05-2015, 10:20 AM.

    #2
    You have added some nice features. Do they add any significant amount to the processing overhead in real time? The Indicator templates are a very good idea.
    I think I have suggested multiple times that they add Tabs to all the built-in Drawing
    tools so you can setup multiple preconfigured defaults.

    Thanks for sharing.

    ~J

    Comment


      #3
      Hi Jerry,
      thanks for the questions.

      1) Processing overhead: There are no calculations done in on OnBarUpdate, but some extensive stuff is done while painting the screen especially with the mouse cursor. This is where I spent quite an amount of time trying to optimize this, because what I've seen with other "custom cursor" indicators, they call ChartControl.ChartPanel.Invalidate() with every mouse move, which ends up repainting the whole chart including all the indicators, which can be really really expensive, especially when you have e.g. a market profile indicator on the chart. This is wrong and I tried to avoid that. I think I managed to do it in a better way in the end.

      <boring-implementation-details>It's implemented so that with every mouse move over a static chart I take a "screenshot" of the chart and use it as a background for repainting the cursor, which is from what I've tested a lot faster.</boring-implementation-details>.

      I tested everything on my dual screen ~10 chart workspace with all charts having the Rainbow attached and everything including the synchronized scroll and global cursor was quite fluid.

      Everything apart from the mouse is just a few menu items that cost nothing as far as realtime processing time is concerned.

      2) Drawing tools templates - I think this is gonna be in NT8, so I didn't really try to find out how to do this, but the truth is, that NT8 production release can take over a year to come, so if I find out how to do it simple and fast, then I'll try to. But I wasn't thinking about it as tabs in the drawing tool property window (if I get it right and this is how you meant it), but more or less in a similar way how I implemented the indicator templates ... i.e. take settings from an existing object, save it as a template, and reuse it by clicking a menu item or more likely a hotkey.

      Lucas

      Comment


        #4
        Incredible work you have done here and so generous of you to share! Thanks

        Comment


          #5
          Lucas,
          Thanks for your response.

          Regarding the Tabs, I think you understand it but I will re-iterate.
          If you picture the Text Drawing tool
          The Text window comes up but it has 10 tabs across the bottom numbered 0-9
          In Each tab you can setup default Text.

          So Using Rainbow or NT8 you hit one Key and the Text window comes up
          One Number selects the tab ( click in the window if you want to change the text)
          Or/Then just click apply
          So One Key , a mouse click or Key , then apply and your done.

          Thanks I will try out Rainbow towards the end of the Day today.

          ~J

          Comment


            #6
            AAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!
            THIS IS GRATE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            I can not hold back emotions !!

            I just leave this post here right now, get some pleasure with NT7++ and only then ask some questions.

            RAINBOW, THANK YOU VERY-VERY MUCH!!!
            fx.practic
            NinjaTrader Ecosystem Vendor - fx.practic

            Comment


              #7
              @fx.practic:
              Thank you for your emotions

              @everybody:
              I'm almost done with drawing tools templates, it wasn't that difficult after all, I'll just have to test it and make it more intuitive. I'm not sure yet if I can add anything to right click context menu of the chart object. If not, I'll put a menu item to the top toolbar that creates a template out of existing object.
              Sorry, there will be no tabs in the properties windows (@JerryWar) ... it would be a lot more difficult to implement and I'm trying to avoid messing with existing NT windows. What can be done from the chart, I do from the chart. What is global, I put to Control Center menus. This might be easier in NT8, but maybe not. I'm not that kind of c# guru to know how to handle that message/pinvoke stuff ... i've been 10 years on java and I'm quite new to c#.

              Let the Rainbow shine over your charts
              Lucas
              ---
              Download Rainbow for free at http://rainbow-in.com

              Comment


                #8
                This is great! Ninja should pay you to add this to their UI. It makes so much more sense the way you designed it. I've never been a fan of using the ctrl+[Function Key]. Thanks for sharing Rainbow, Lucas!

                Comment


                  #9
                  I downloaded and installed your tool and was very impressed but had a problem and had to unload the assembly. The problem showed up when I was trying to use Visual Studio Express 2013. When I went to attach to my process for debugging, Visual Studio Expressed crashed. I'm not a professional programmer, just a weekend warrior so I was wondering if this is to be expected and if not is there some simple things to look at to try to solve this problem.

                  I uninstalled the Rainbow assembly and the problems went away.

                  Regards,
                  taddypole...

                  Comment


                    #10
                    Originally posted by Taddypole View Post
                    I downloaded and installed your tool and was very impressed but had a problem and had to unload the assembly. The problem showed up when I was trying to use Visual Studio Express 2013. When I went to attach to my process for debugging, Visual Studio Expressed crashed. I'm not a professional programmer, just a weekend warrior so I was wondering if this is to be expected and if not is there some simple things to look at to try to solve this problem.

                    I uninstalled the Rainbow assembly and the problems went away.

                    Regards,
                    taddypole...
                    Hi Taddypole,
                    thank you for reporting ... this definitely shouldn't be expected. Did some kind of error appear in the logs/trace of NinjaTrader?
                    Lucas

                    Comment


                      #11
                      Hi Locus,

                      I was trying to get another indicator working so didn't spend any time looking at it. And I don't really know what to look for in the log and trace files.

                      I did try several times because I thought it was the indicator I was working on that caused the problem. But as soon as I attached to the Ninja Trader process it immediately crashed and there was nothing I could do to investigate the cause. It took down Ninja and Visual Studio.I have a second machine with everything installed there and trying out visual studio on that machine, I noticed everything was still good when looking at the indicator I was working on. So the only difference on the first machine was Rainbow. Uninstalling the assembly put everything back to normal. I can look at it again tomorrow when I have time.

                      regards,
                      taddypole...

                      Comment


                        #12
                        Thank you for you generosity, Rainbow! Top suite!

                        I've been playing a bit with your indicators and they are great. There is something, however, that is causing me a small annoyance and maybe you could help me solve (or anyone reading this, for that matter). The rainbow icon on the bottom right hand side of the screen partially hides the bar timer. I'm using a modified version of the default NT bar timer indicator which only shows the timer, without any text. I'm not a programmer but looking inside the code and getting rid of the text was an easy task. However, I don't know how I can change the code to plot the timer a little bit to the left so that the icon does not hide it. Any ideas?

                        Thank you!
                        Attached Files

                        Comment


                          #13
                          Hi shicuco,
                          did you try the Fancy bar timer (http://www.ninjatrader.com/support/f...d=-1&lpage=1)? You can set a position of that one. If you don't want to, a quick fix would be to change the red thing here (substract any value you like):

                          BarTimer Line #156:
                          graphics.DrawString("Time remaining = " + timeLeft, ChartControl.Font, textBrush, bounds.X + bounds.Width - textWidth, bounds.Y + bounds.Height - textHeight, stringFormat);

                          Lucas

                          Comment


                            #14
                            Thanks for the quick reply, Lucas! The fancy bar timer is too fancy for me. I tried your suggestion and it worked great! A value of -8 did the trick!

                            Thanks and good luck with your trading!

                            Comment


                              #15
                              Does anyone experience black screen flicker with Rainbow on the chart? I was trying to find a solution for this issue for quite a long time, but I thought I finally resolved it as it never happened to me again.
                              Because I just got a report of such a behavior...
                              Thanks,
                              Lucas

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by ZenCortexCLICK, Today, 04:58 AM
                              0 responses
                              2 views
                              0 likes
                              Last Post ZenCortexCLICK  
                              Started by sidlercom80, 10-28-2023, 08:49 AM
                              172 responses
                              2,280 views
                              0 likes
                              Last Post sidlercom80  
                              Started by Irukandji, Yesterday, 02:53 AM
                              2 responses
                              17 views
                              0 likes
                              Last Post Irukandji  
                              Started by adeelshahzad, Today, 03:54 AM
                              0 responses
                              4 views
                              0 likes
                              Last Post adeelshahzad  
                              Started by Barry Milan, Yesterday, 10:35 PM
                              3 responses
                              13 views
                              0 likes
                              Last Post NinjaTrader_Manfred  
                              Working...
                              X