Grafana 教程

K 线图( Candlestick)

Candlestick 图,又称为K线图或蜡烛图,是一种金融图表,主要用于分析股票价格、期货和货币等各种金融产品的价格。这种图表最初由日本商人在17世纪开始使用,用于进行各种买卖策略的分析,后来经过发展,现已被广泛应用于股票、期货、外汇,期权等证券市场。

Candlestick 图以蜡烛形状展示金融产品的价格变动,每个蜡烛包含四个基本组成部分:实体、阴影、上影线和下影线。实体表示某一单位时间的开盘价和收盘价的价格范围,阴影则代表当天价格的最高和最低价格。根据开盘价和收盘价的相对关系,蜡烛图可分为阳线和阴线,阳线表示开盘价低于收盘价,代表盈利;而阴线则表示开盘价高于收盘价,代表亏损。

image.png

对于投资者来说,Candlestick 图具有指导投资的作用,因为它能够帮助投资者了解持续价格的变化情况,并可以作为投资者选择买卖行动的有力工具。总的来说,它不仅能够帮助投资者判断股票变化的发展趋势,还能及时反映金融市场变化,从而使投资者作出最佳的投资决策,实现投资最大收益。例如:

image.png

通过 K 线图可视化功能,您可以可视化包含多个一致维度(侧重于价格走势)的数据。K 线图可视化包括 "开盘-高点-低点-收盘"(OHLC)模式,并支持基于时间序列数据的其他维度。

K 线图可视化建立在时间序列可视化的基础之上,包括许多常用的配置设置。

一个示例

下面将借助 mysql 数据源来模拟一段数据,根据这些数据绘制K线图,数据库表SQL如下:

CREATE TABLE `candlestick_data` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `time` datetime DEFAULT NULL COMMENT '数据时间戳',
  `open` double DEFAULT NULL COMMENT '开盘价',
  `high` double DEFAULT NULL COMMENT '最高价',
  `low` double DEFAULT NULL COMMENT '最低价',
  `close` double DEFAULT NULL COMMENT '收盘价',
  `volume` double DEFAULT NULL COMMENT '交易量',
  `sma` double DEFAULT NULL COMMENT '简单移动平均线',
  `bolup` double DEFAULT NULL COMMENT '布林带上轨',
  `boldn` double DEFAULT NULL COMMENT '布林带下轨',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

数据表准备好了,下面插入十几条数据,模拟K线图,SQL如下:

INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6311, '2024-05-01 00:00:00', 100, 102, 98, 101.5, 5500, NULL, NULL, NULL);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6312, '2024-05-02 00:00:00', 101.5, 103, 99, 100.5, 5800, NULL, NULL, NULL);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6313, '2024-05-03 00:00:00', 100.5, 102.5, 98.5, 102, 6200, NULL, NULL, NULL);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6314, '2024-05-04 00:00:00', 102, 104, 100, 103.5, 6500, NULL, NULL, NULL);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6315, '2024-05-05 00:00:00', 103.5, 105.5, 102, 105, 6800, 102.5, 104.65, 100.35);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6316, '2024-05-06 00:00:00', 105, 107, 103.5, 104.5, 6600, 104.1, 106.57, 101.63);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6317, '2024-05-07 00:00:00', 104.5, 106.5, 103, 106, 6900, 105.2, 107.99, 102.41);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6318, '2024-05-08 00:00:00', 106, 108, 104.5, 105.5, 7100, 105.6, 108.77, 102.43);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6319, '2024-05-09 00:00:00', 105.5, 107.5, 104, 107, 7300, 105.8, 109.47, 102.13);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6320, '2024-05-10 00:00:00', 107, 110, 105.5, 108.5, 7500, 107.4, 111.63, 103.17);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6321, '2024-05-11 00:00:00', 108.5, 111, 107, 107.5, 7200, 108, 112.55, 103.45);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6322, '2024-05-12 00:00:00', 107.5, 109.5, 106, 108, 7000, 108.1, 112.37, 103.83);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6323, '2024-05-13 00:00:00', 108, 110.5, 106.5, 107, 6800, 107.8, 111.83, 103.77);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6324, '2024-05-14 00:00:00', 107, 108.5, 105, 106, 6500, 107.1, 110.69, 103.51);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6325, '2024-05-15 00:00:00', 106, 107.5, 104.5, 105.5, 6300, 106.3, 109.31, 103.29);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6326, '2024-05-16 00:00:00', 105.5, 106.5, 103, 104, 6100, 105.4, 107.79, 103.01);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6327, '2024-05-17 00:00:00', 104, 105, 102.5, 103.5, 5900, 104.4, 106.25, 102.55);
INSERT INTO `candlestick_data` (`id`, `time`, `open`, `high`, `low`, `close`, `volume`, `sma`, `bolup`, `boldn`) VALUES (6328, '2024-05-18 00:00:00', 103.5, 104.5, 101, 102, 5700, 103.3, 104.63, 101.97);

注意:上面的 SMA 是 5 日 SMA。

接下来,使用 Grafana 创建 K 线图,如下图:

image.png

在 Grafana 的代码区域输入如下 SQL 语句:

SELECT id,time,open,high,low,close,volume,sma,bolup,boldn FROM `candlestick_data`

下面是 Grafana 的运行效果图:

image.png

下面我们来分析单个K线图:

(1)收盘价 > 开盘价

image.png

(2)收盘价 < 开盘价

image.png

Mode(模式)

image.png

模式选项允许您切换可视化使用的尺寸:

  • Candles 将面板尺寸限制为 K 线图可视化使用的开盘、高点、低点和收盘尺寸。

  • Volume 将面板尺寸限制为成交量尺寸。

  • Both 两者都是烛台可视化的默认行为。它包括烛台和成交量可视化。

Candle style(蜡烛样式)

image.png

  • Candles 是默认显示样式,可在开盘和收盘值之间创建K线图风格的可视化效果。如下图:

image.png

  • OHLC Bars 显示四个核心维度的开盘值、高点值、低点值和收盘值。如下图:

image.png

Color strategy(颜色策略)

  • Since Open 是默认行为。如果期内价格变动为正值,该模式将使用 "Up color" 颜色。换句话说,如果收盘时的值大于或等于开盘时的值,则使用 "Up color" 颜色。如下图:

K 线图( Candlestick)

  • Since Prior Close 是另一种显示方法,K 线图的颜色取决于期间内的价格走势或价值变化。换句话说,如果开盘价大于收盘价,则使用 "Up color" 颜色。如果开盘价低于收盘价,则使用 "Down color" 颜色。该选项还会触发空心 K 线图可视化模式。空心表示周期内的变动为正值(收盘时的值高于开盘时的值),实心表示周期内的变动为负值(收盘时的值低于开盘时的值)。如下图:

K 线图( Candlestick)

Up & Down Colors

Up color 和 Down color 选项用于选择价格上涨或下跌时使用的颜色。

请注意,上述颜色策略将决定是使用周期内还是周期间的价格变动来选择 K 线图或 OHLC 条形图的颜色。

Open, High, Low, Close

image.png

K 线图实体可视化会尝试将数据中的字段映射到相应的维度:

  • Open 对应给定周期的起始值。

  • High 对应给定周期的最高值。

  • Low 对应给定周期的最低值。

  • Close 与给定时段的最终(结束)值相对应。

  • Volume 与给定期间的样本数相对应(例如,交易次数)。

注意:K 线图可视化图例不显示这些值。要正确映射这些维度,数据的查询结果表必须至少包含以下列:

  • timestamp

  • open

  • high

  • low

  • close

如果您的数据由于某些原因无法映射到这些维度(例如,由于列名不一致),您可以使用面板编辑器中K线图选项下的开盘、高点、低点和收盘字段手动映射它们。

Additional fields

image.png

K 线图可视化基于时间序列可视化。除了开盘价、最高价、最低价、收盘价和成交量之外,它还能可视化其他数据维度。"Include" 和 "Ignore" 选项允许它使用 [time series][] 可视化中可用的相同样式和配置,可视化其他包含的数据,如简单移动平均线、布林线等。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号