技术指标是用来更好的查看股票数据及做决策的强大工具,一般是基于现有股票数据按照一定的数学公式进行运算,从而创建股价边界或走势,方便做分析和决策。
Highstock 自 6.0 开始内置提供 20 种常用的技术指标,使用它们非常方便,只需要额外的引入技术指标主文件( indicators/indicators.js
,也是 SMA指标文件)及技术指标对应的文件,例如添加 MACD 指标需要引入的文件是
<!-- Highstock 主文件 -->
<script src="http://cdn.hcharts.cn/highstock/highstock.js"></script>
<!-- 技术指标主文件 -->
<script src="http://cdn.hcharts.cn/highstock/indicators/indicators.js"></script>
<!-- 技术指标文件,如果是 SMA,则无需引入(因为 indicators 包含 SMA) -->
<script src="http://cdn.hcharts.cn/highstock/indicators/macd.js"></script>
内置技术指标列表
截止到现在 Highstock 内置的技术指标有(共 20 种):
- A/D (离散指标,Accumulation/Distribution)
- ATR (Average True Range)
- Bollinger Bands(布林带)
- CCI (Commodity Channel Index,顺势指标)
- CMF (Chaikin Money Flow)
- EMA (Exponential Moving Average,指数移动平均 )
- Ichimoku Kinko Hyo
- MACD (Moving Average Convergence Divergence,平滑异同移动平均线)
- MFI (Money Flow Index,资金流量指标)
- Momentum(动量)
- Pivot Points(轴心点)
- Price Envelopes
- PSAR (Parabolic SAR)
- RoC (Rate of Change,变动率指标)
- RSI (Relative Strength Index,相对强弱指标)
- SMA (Simple Moving Average,简单移动平均线)
- Stochastic(随机指标)
- VbP (Volume by Price,成交量分布)
- VWAP (Volume Weighted Average Price,成交量加权平均价)
- WMA (Weighted Moving Average,加权移动平均)
- Zig Zag
技术指标配置
技术指标相关的功能是以数据列的形式实现的,这也就意味着大部分 数据列配置 也可以在技术指标中使用,唯一需要注意的是技术指标数据列是以主数据列的数据进行计算的,所以无需给定数据配置,直接用 linkedTo
属性来与主数据进行关联,当主数据列的数据有更新时(例如进行 addPoint
操作),技术指标也会同步更新。
另外某些技术指标还有一些特有的配置,这些配置是写在 params
配置下,例如 params.period
(周期)、params.algorithm
(算法)等。
同一个主数据列可以关联多个技术指标,下面的包含一个主数据列、2个 SMA 和一个 EMA 数据列的示例代码:
series: [{
id: 'main-series',
data: []
}, {
type: 'sma', // 指定数据列类型(指标类型)
linkedTo: 'main-series', // 通过 linkedTo 与主数据列关联
params: { // 参数
period: 14
}
}, {
type: 'sma',
linkedTo: 'main-series',
params: {
period: 28
}
}, {
type: 'ema',
linkedTo: 'main-series',
params: {
period: 7
}
}]
Y 轴绑定
部分技术指标(Bollinger Bands、EMA、Ichimoku Kinko Hyo、Pivot Points、Price Envelopes、PSAR、SMA、VbP、 VWAP、WMA、Zig Zag)可以直接和主数据列放置在同一个 Y 轴中,但某些技术指标(A/D、ATR、CCI、CMF、MACD、 MFI、Momentum、RoC、RSI、Stochastic)由于运算的结果和主数据列不是一个数量级,所以需要单独放置在另外一个 y 轴中,配置方法同 多轴配置 一样,步骤如下:
1、创建多个 y 轴
yAxis: [{
// 主数据列
height: '50%'
}, {
// 其他数据列(技术指标数据列 y 轴)
top: '50%',
height: '50%'
}]
2、将数据列与 y 轴进行关联
series: [{
id: 'main-series',
data: […]
}, {
type: 'stochastic',
linkedTo: 'main-series',
yAxis: 1 // 通过 y 轴下标进行关联
}]
多数据列绑定
某些技术指标需要多个数据列(一般是主数据列的股价及成交量数据)的数据进行计算,包括:
- Accumulation/Distribution
- CMF
- MFI
- Volume by Price
- Volume Weighted Average Price
这些技术指标需要制定params.volumeSeriesID
(成交量数据列 ID)参数来进行计算,示例代码如下:
series: [{
id: 'main-series',
data: [ … ]
}, {
id: 'volume-series',
yAxis: 1,
data: [ … ]
}, {
type: 'mfi',
linkedTo: 'main-series',
yAxis: 2,
params: {
volumeSeriesID: 'volume-series'
}
}]