TeeChart:在不指定时间的情况下将蜡烛添加到图表

TeeChart: Adding candles to chart without specifying their time

我正在寻找一种无需指定点的日期值即可将数据添加到 OHLC 系列的方法。

所以假设我有一个 List<Candle>,其中 Candle 对象包含 highlowopenclose 的值, 但 不是 date.

我想为系列添加值,以便它们在图表上有规律地分布,我的意思是,所有蜡烛之间的距离相等。

是否有任何方便的选项可以将点添加到系列数据列表的末尾和开头?

add() 方法接受 openhighlowclose 值的覆盖:

public int add(double open, double high, double low, double close)

另一个接受 indexopenhighlowclose 值:

public int add(int index, double open, double high, double low, double close)

更新:

在你发送的项目中,我看到你在几次迭代后删除了系列的第一个点:

candleSeries.delete(0);

注意上面提到的第一个 add() 覆盖在内部调用第二个:

public int add(double open, double high, double low, double close) {
    return add(getCount(), open, high, low, close);
}

因此,系列的计数被用作要添加的点的 XValue。但是删除第一点,您将失去 Count 和 XValues 的同步,这使得 add() 方法的第一次覆盖在这种情况下不合适。

在您的情况下,您仍然可以使用 add() 方法的第三个覆盖,接受 indexopenhighlowclose 值:

public int add(double index, double open, double high, double low, double close)

注意 is override 的第一个参数名为 "index" 但它实际上是一个双精度数,因此您可以将其视为 XValue/Date.

这是,在您的测试应用程序中,更改为:

candleSeries.add(point.getOpen(), point.getHigh(), point.getLow(), point.getClose());

为此:

candleSeries.add(candleSeries.getXValues().getValue(candleSeries.getCount()-1) + 1, point.getOpen(), point.getHigh(), point.getLow(), point.getClose());