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 Javierw.ok, Today, 04:12 PM
    0 responses
    2 views
    0 likes
    Last Post Javierw.ok  
    Started by timmbbo, Today, 08:59 AM
    2 responses
    10 views
    0 likes
    Last Post bltdavid  
    Started by alifarahani, Today, 09:40 AM
    6 responses
    40 views
    0 likes
    Last Post alifarahani  
    Started by Waxavi, Today, 02:10 AM
    1 response
    18 views
    0 likes
    Last Post NinjaTrader_LuisH  
    Started by Kaledus, Today, 01:29 PM
    5 responses
    15 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Working...
    X