我正在寻找一种在不指定点的日期值的情况下将数据添加到OHLC系列的方法。
因此,让我们假设我有一个List<Candle>
,其中Candle
对象包含high
、low
、open
和close
的值,但而不是date
。
我想以这样一种方式将值添加到序列中,即它们将定期分布在图表上,我的意思是,所有蜡烛之间的距离相等。
是否有任何方便的选项可以将点添加到系列数据列表的末尾和开头?
有一个接受open
、high
、low
和close
值的add()方法的覆盖:
public int add(double open, double high, double low, double close)
另一个接受index
、open
、high
、low
和close
值:
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()方法的第三个重写,接受index
、open
、high
、low
和close
值:
public int add(double index, double open, double high, double low, double close)
请注意,is override的第一个参数名为"index",但它实际上是一个double,因此您可以将其视为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());