How do I set min and max for bottom axis for candl

2019-08-30 06:11发布

I'm trying to display a candlestick series with TeeChart library.

Everyting is fine except I can't control the range of data displayed. The question is when I add new data to my series, I want to scroll my bottom axis to display the last N values. E.g. when I add a new candle, I want to scrol +1 index to display this bar.

I found that Axis class has 2 methods for doing this:

axis.setMinMax(DateTime arg0, DateTime arg1)
axis.setMinMax(double arg0, double arg1)

Which is the right method to use in conjunction with Candles? I guess that this is the 1st overload that takes 2 DateTime params, but I'm adding values to the Candle series without a specific date:

Candle series = ...
...
series.add(bar.getOpen(), bar.getHigh(), bar.getLow(), bar.getClose());

so all of the points have a default date.

Also I tried to use axis.setMinMax(double arg0, double arg1) specifying startIndex and endIndex I wanted to display, but it doesn't seem to be working...

Is it possible to control range in my case with candles without specifying a DateTime value for each series' value?

1条回答
地球回转人心会变
2楼-- · 2019-08-30 06:42

If you know the startIndex and endIndex, you could do this:

axis.setMinMax(series.getXValues().getValue(startIndex), series.getXValues().getValue(endIndex));

Another alternative, if you know the offset to apply to the axis, would be calling the axis scroll method, ie:

int myOffset = 1;
axis.scroll(myOffset, true);

And another alternative, if you know the number of values to display:

int nValuesToShow = 10;
axis.setMinMax(series.getXValues().getValue(series.getCount()-nValuesToShow-1), series.getXValues().getValue(series.getCount()-1);

Finally note the Add() override without date (without XValue) is adding your value with getCount() as XValue.

查看更多
登录 后发表回答