Announcement

Collapse
No announcement yet.

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 CarlTrading, 03-31-2026, 09:41 PM
    1 response
    152 views
    1 like
    Last Post NinjaTrader_ChelseaB  
    Started by CarlTrading, 04-01-2026, 02:41 AM
    0 responses
    89 views
    1 like
    Last Post CarlTrading  
    Started by CaptainJack, 03-31-2026, 11:44 PM
    0 responses
    131 views
    2 likes
    Last Post CaptainJack  
    Started by CarlTrading, 03-30-2026, 11:51 AM
    0 responses
    127 views
    1 like
    Last Post CarlTrading  
    Started by CarlTrading, 03-30-2026, 11:48 AM
    0 responses
    107 views
    0 likes
    Last Post CarlTrading  
    Working...
    X