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

Can you call an indicator from "Initialize()"?

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

    Can you call an indicator from "Initialize()"?

    Hi,

    I have developed an indicator that plots swing tops and bottoms on a chart. I call it "SwingIndicator". I would like to pass the results "swing tops and bottoms" to another indicator for further manipulation.

    The problem is that a swing top or bottom can only be identified in retrospect. For example if you have a series of up bars, a swing top is only confirmed when a down bar occurs.

    Therefore I have to use:
    BarsBack1 = CurrentBar-LastUpDayBar;
    BarsBack2 = CurrentBar-LastDownDayBar;
    tops.Set(BarsBack, High[BarsBack1]);
    bottoms.Set(BarsBack, Low[BarsBack2]);

    In my second indicator I would like to iterate through my swing tops and bottoms.

    I was planning to achieve this with the following code:

    public class MyPlot : Indicator
    {
    private DataSeries myTops;
    private DataSeries myBottoms;

    protected override void Initialize()
    {
    myTops = new DataSeries(this);
    myBottoms = new DataSeries(this);

    // I am exposing two data series objects in SwingIndicator
    myTops = SwingIndicator().Tops;
    myBottoms = SwingIndicator().Bottoms;

    }
    protected override void OnBarUpdate()
    {

    If (High[0] == myTops[0] {do something;}
    }

    I was hoping that calling SwingIndicator from Initialize() will populate myTops and myBottoms with swing tops/bottoms so I can use them in my new indicator.

    For every bar i will know in advance if it is a swing top or bottom and I will be able to act accordingly. Obviousely this is only applicable for historical data and backtesting.

    The code does not behave as expected. I would appreciate any suggestions and guidance.

    Cheers,
    Miha

    #2
    $miha, welcome to the forums - we normally advise to not process sensitive logic like this in the Initialize(), but on the first OnBarUpdate() call like

    if (CurrentBar == 0)
    {
    }

    On another note - have you already looked into our default 'Swing' indicator?

    BertrandNinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by GussJ, 03-04-2020, 03:11 PM
    15 responses
    3,271 views
    0 likes
    Last Post xiinteractive  
    Started by Tim-c, Today, 02:10 PM
    1 response
    8 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by Taddypole, Today, 02:47 PM
    0 responses
    2 views
    0 likes
    Last Post Taddypole  
    Started by chbruno, 04-24-2024, 04:10 PM
    4 responses
    51 views
    0 likes
    Last Post chbruno
    by chbruno
     
    Started by TraderG23, 12-08-2023, 07:56 AM
    10 responses
    403 views
    1 like
    Last Post beobast
    by beobast
     
    Working...
    X