NinjaTrader Support Forum  

Go Back   NinjaTrader Support Forum > NinjaScript Development Support > General Programming

General Programming General NinjaScript programming questions.

Reply
 
Thread Tools Display Modes
Old 09-07-2007, 08:02 AM   #1
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default Simple Indicator

Hello

I am trying to create a simple indicator that plots the difference Bollinger Band Top and price(High). Could someone help with the codes.

Thanks
Ronin is offline  
Reply With Quote
Old 09-07-2007, 08:37 AM   #2
NinjaTrader_Josh
NinjaTrader Product Manager
 
NinjaTrader_Josh's Avatar
 
Join Date: May 2007
Location: Denver, CO
Posts: 17,458
Thanks: 1
Thanked 107 times in 70 posts
Default

Hi Ronin,

To get started you can run the NinjaScript indicator wizard (Tools->New NinjaScript->Indicator). Make sure you have at least one plot when you go through the wizard pages. After you finish, press the "Generate" button to get the NinjaScript editor to open with your new indicator.

If you look in the OnBarUpdate() section you will notice this line of code:
Code:
Plot0.Set(Close[0]);
By default, the indicator will be plotting the close because that is what we set our plot to equal. In your case, you want Bollinger Band Top minus price high. This can be done with this code:
Code:
Plot0.Set(Bollinger(2, 14).Upper[0] - High[0]);
Whatever you place in the parenthesis after .Set is what your Plot0 will take values from. What the code is doing is telling the plot to be set to the upper bollinger band's value (bollinger band has standard deviation of 2 and period of 14) minus the high price.
NinjaTrader_Josh is offline  
Reply With Quote
Old 09-07-2007, 10:50 AM   #3
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

Hi Josh

Thanks. The code is working great.

Regards
Ronin is offline  
Reply With Quote
Old 09-10-2007, 11:26 PM   #4
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

In the case below I am trying to build an indicator to determine whether BB is sloping or not.

The code is

Plot0.Set(((Bollinger(2, 20).Upper[0] - Bollinger(2, 20).Upper[5])/Bollinger(2, 20).Upper[0]*100));

Formula is
Bollinger Upper Band -Bollinger upper band 5 period ago/Bollinger upper band *100

But this code is not returning any value.

Could someone please correct my code.

Thanks
Last edited by Ronin; 09-11-2007 at 12:51 AM.
Ronin is offline  
Reply With Quote
Old 09-11-2007, 07:00 AM   #5
NinjaTrader_Ray
Administrator
 
NinjaTrader_Ray's Avatar
 
Join Date: Nov 2004
Location: Denver, CO, USA
Posts: 11,164
Thanks: 6
Thanked 46 times in 32 posts
Default

The problem can likely be resolved by reviewing this "Tip".

http://www.ninjatrader-support.com/v...ead.php?t=3170
NinjaTrader_Ray is offline  
Reply With Quote
Old 09-11-2007, 12:09 PM   #6
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

This partly sorted the problem. The code now plots the values. However there seems to be huge gaps in plotting the indicator.

What I am actually trying to do is simply apply ROC indicator to Boll Band, SMA etc. I want to calculate rate of change of indicator value instead of price.

Could you please guide me how to do this.

Thanks much.


Ronin is offline  
Reply With Quote
Old 09-11-2007, 12:17 PM   #7
NinjaTrader_Ray
Administrator
 
NinjaTrader_Ray's Avatar
 
Join Date: Nov 2004
Location: Denver, CO, USA
Posts: 11,164
Thanks: 6
Thanked 46 times in 32 posts
Default

Tutotorial Level II covers applying indicator on indicator calculations, exactly what you are looking for.

Its located here - http://www.ninjatrader-support.com/H...Indicator.html
NinjaTrader_Ray is offline  
Reply With Quote
Old 09-11-2007, 01:09 PM   #8
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

Hello

My code for calculating ROC on Bollinger band is returning a couple of errors. Could any programmer take a look and help me correct this or still better provide the correct code for this.
Code:
double robt = (ROC(Bollinger(2,20).Upper[0]));
Plot0.Set(robt);


Am not a programmer and therefore find this simple code a herculean task.

Thanks
Ronin is offline  
Reply With Quote
Old 09-11-2007, 01:28 PM   #9
NinjaTrader_Dierk
Administrator
 
NinjaTrader_Dierk's Avatar
 
Join Date: Mar 2005
Location: Bamberg, Germany
Posts: 9,994
Thanks: 0
Thanked 6 times in 6 posts
Default

- it always helps if you paste the compiler error you experience
- on your code below I would try:
Plot0.Set(ROC(Bollinger(2,20).Upper, <whatever period your ROC has>)[0]);
NinjaTrader_Dierk is offline  
Reply With Quote
Old 09-11-2007, 01:46 PM   #10
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

Hi Dierk

Thanks. This did the magic.
Ronin is offline  
Reply With Quote
Old 09-16-2007, 06:42 PM   #11
KBJ
Senior Member
 
Join Date: Mar 2007
Location: , Florida, USA
Posts: 663
Thanks: 36
Thanked 7 times in 6 posts
Default ROC(Bollinger) Approximation

There is an approximation that could be done on this that is much simpler than what you've been attempting.

Since the Bollinger calculates the upper band value as the SMA plus a multiple of the StdDev, and the SMA will on the average be the same as the price, why not just go with calculating the rate of change of the StdDev, as follows:

Code:
        protected override void Initialize()
        {
            Add(new Plot(Color.Orange, "BollingerRoc"));

            Overlay               = false;
            PriceTypeSupported    = true;
        }

        protected override void OnBarUpdate()
        {
            Values[0].Set( ROC( StdDev(Period), ROCPeriod )[0] );
        }
That should be a good approximation of the rate of change of the upper bollinger band.

Best regards,

KBJ
Attached Files
File Type: zip BollingerROC.zip (4.9 KB, 15 views)
KBJ is offline  
Reply With Quote
Old 09-18-2007, 08:30 AM   #12
Ronin
Junior Member
 
Join Date: Sep 2007
Posts: 10
Thanks: 0
Thanked 0 times in 0 posts
Default

Hi KBJ

Thanks for the code.

Best Regards
Ronin
Ronin is offline  
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
A simple question about performance. MGDavid Miscellaneous Support 2 06-21-2007 08:47 AM
Problems with simple donchian cross test zoltran Strategy Development 2 04-02-2007 10:21 AM
Simple Strategy Oli Automated Trading 2 03-05-2007 11:42 PM
Simple profit/stop strategy Steveinvest Miscellaneous Support 1 12-30-2005 02:50 AM


All times are GMT -6. The time now is 09:35 PM.