使用Qt的QCandlestickSeries类实现K线图绘制。
0x01 创建K线图
代码语言:javascript复制QCandlestickSeries *acmeSeries = new QCandlestickSeries();
acmeSeries->setName("Acme Ltd");
acmeSeries->setIncreasingColor(QColor(Qt::green));
acmeSeries->setDecreasingColor(QColor(Qt::red));
QChart *chart = new QChart();
chart->addSeries(acmeSeries);
chart->setTitle("Acme Ltd Historical Data (July 2015)");
0x02 使用QCandlestickSet添加K线图数据项
代码语言:javascript复制QCandlestickSet *set = dataReader.readCandlestickSet();
if (set) {
acmeSeries->append(set);
0x03 K线图的几点要素
代码语言:javascript复制const qreal timestamp = strList.at(0).toDouble();
const qreal open = strList.at(1).toDouble();
const qreal high = strList.at(2).toDouble();
const qreal low = strList.at(3).toDouble();
const qreal close = strList.at(4).toDouble();
//! [3]
//! [4]
QCandlestickSet *candlestickSet = new QCandlestickSet(timestamp);
candlestickSet->setOpen(open);
candlestickSet->setHigh(high);
candlestickSet->setLow(low);
candlestickSet->setClose(close);
setOpen
为设置开始时候(开盘)的值;setClose
为设置结束时候(收盘)的值;setHigh
为设置当日最高的值;setLow
为设置当日最低的值;- 红色代表最低值为昨天的收盘值(上升),蓝色代表为最高值为昨天收盘值(下降)。
使用图片方式表达K线图的几点要素:
0x04 关于更多
- 在QtCreator软件可以找到:
- 或在以下Qt安装目录找到:
C:Qt{你的Qt版本}Examples{你的Qt版本}chartscandlestickchart
- 相关链接
https://doc.qt.io/qt-5/qtcharts-candlestickchart-example.html