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

Default value for DataSeries?

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

    Default value for DataSeries?

    The following code (Renko Bars) results in Close[0] being assigned to non-.Set series values. Is that supposed to happen? and how do I prevent it? It also occurs with .Reset.

    if(Close[0] > Open[0] && Close[1] < Open[1])//Turning North
    {Print("lb");
    downbar1 = CurrentBar;//CurrentBar-1;
    deltabars = downbar1 - downbar2;//Number of bars in the move
    deltaprice = Low[0] - Low[deltabars];//Close[1] - Close[deltabars+1];//Price change per bar
    for (int j = 1; j <= deltabars; j++)
    {
    LowerBand.Set(j,Low[deltabars] + (deltabars-j)*deltaprice/deltabars);//j+1,Close[downbar1-downbar2+1] + (deltabars-j)*deltaprice/deltabars);
    }
    LowerBand.Set(Low[0]);//1,Close[1]);
    downbar2 = downbar1;
    if(drawDots) DrawDot(CurrentBar + "dot",true,0,Low[0],Color.SpringGreen);//1,Close[1],Color.SpringGreen);
    DrawRegion("tag1", CurrentBar, 0, UpperBand, LowerBand, Color.Empty, Color.Violet ,2);
    }

    if(Close[0] < Open[0] && Close[1] > Open[1])//Turning South
    {Print("ub");
    upbar1 = CurrentBar;//CurrentBar-1;
    deltabars = upbar1 - upbar2;
    deltaprice = High[0] - High[deltabars];//Close[1] - Close[deltabars+1];
    for (int j = 1; j <= deltabars; j++)
    {
    UpperBand.Set(j,High[deltabars] + (deltabars-j)*deltaprice/deltabars);//j+1,Close[upbar1-upbar2+1] + (deltabars-j)*deltaprice/deltabars);
    //Print(j + ", " + CurrentBar + ", Upbar1: " + upbar1 + ", upbar2: " + upbar2 + ", deltabars: " + deltabars + ", deltaprice: " + deltaprice + ", UpperBand[" + j + "]: " + UpperBand[j]);
    }
    UpperBand.Set(High[0]);//1,Close[1]);
    upbar2 = upbar1;
    if(drawDots) DrawDot(CurrentBar + "dot",true,0,High[0],Color.HotPink);//1,Close[1],Color.HotPink);
    DrawRegion("tag1", CurrentBar, 0, UpperBand, LowerBand, Color.Empty, Color.Violet ,2);
    }

    Print((Bars.BarsSinceSession+1) + " ub1 " + UpperBand[1] + " ub0 " + UpperBand[0] + " lb1 " + LowerBand[1] + " lb0 " + LowerBand[0]);

    #2
    Hi snaphook,

    Yes, there will be a dummy value generated there. You can use ContainsValue() to check that a plot is valid before accessing it. This sample can help with this technique:

    Ryan M.NinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by gentlebenthebear, Today, 01:30 AM
    1 response
    8 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by Aviram Y, Today, 05:29 AM
    1 response
    7 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by cls71, Today, 04:45 AM
    1 response
    7 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by TradeForge, Today, 02:09 AM
    1 response
    22 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by elirion, Today, 01:36 AM
    2 responses
    14 views
    0 likes
    Last Post elirion
    by elirion
     
    Working...
    X