技术指标是用来更好的查看股票数据及做决策的强大工具,一般是基于现有股票数据按照一定的数学公式进行运算,从而创建股价边界或走势,方便做分析和决策。

Highstock 自 6.0 开始内置提供 20 种常用的技术指标,使用它们非常方便,只需要额外的引入技术指标主文件( indicators/indicators.js,也是 SMA指标文件)及技术指标对应的文件,例如添加 MACD 指标需要引入的文件是

  1. <!-- Highstock 主文件 -->
  2. <script src="http://cdn.hcharts.cn/highstock/highstock.js"></script>
  3. <!-- 技术指标主文件 -->
  4. <script src="http://cdn.hcharts.cn/highstock/indicators/indicators.js"></script>
  5. <!-- 技术指标文件,如果是 SMA,则无需引入(因为 indicators 包含 SMA) -->
  6. <script src="http://cdn.hcharts.cn/highstock/indicators/macd.js"></script>

内置技术指标列表

截止到现在 Highstock 内置的技术指标有(共 20 种):

技术指标相关的功能是以数据列的形式实现的,这也就意味着大部分 数据列配置 也可以在技术指标中使用,唯一需要注意的是技术指标数据列是以主数据列的数据进行计算的,所以无需给定数据配置,直接用 linkedTo 属性来与主数据进行关联,当主数据列的数据有更新时(例如进行 addPoint 操作),技术指标也会同步更新。

另外某些技术指标还有一些特有的配置,这些配置是写在 params 配置下,例如 params.period (周期)、params.algorithm(算法)等。

同一个主数据列可以关联多个技术指标,下面的包含一个主数据列、2个 SMA 和一个 EMA 数据列的示例代码:

  1. series: [{
  2. id: 'main-series',
  3. data: []
  4. }, {
  5. type: 'sma', // 指定数据列类型(指标类型)
  6. linkedTo: 'main-series', // 通过 linkedTo 与主数据列关联
  7. params: { // 参数
  8. period: 14
  9. }
  10. }, {
  11. type: 'sma',
  12. linkedTo: 'main-series',
  13. params: {
  14. period: 28
  15. }
  16. }, {
  17. type: 'ema',
  18. linkedTo: 'main-series',
  19. params: {
  20. period: 7
  21. }
  22. }]

在线试一试

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 轴

  1. yAxis: [{
  2. // 主数据列
  3. height: '50%'
  4. }, {
  5. // 其他数据列(技术指标数据列 y 轴)
  6. top: '50%',
  7. height: '50%'
  8. }]

2、将数据列与 y 轴进行关联

  1. series: [{
  2. id: 'main-series',
  3. data: […]
  4. }, {
  5. type: 'stochastic',
  6. linkedTo: 'main-series',
  7. yAxis: 1 // 通过 y 轴下标进行关联
  8. }]

多数据列绑定

某些技术指标需要多个数据列(一般是主数据列的股价及成交量数据)的数据进行计算,包括:

  • Accumulation/Distribution
  • CMF
  • MFI
  • Volume by Price
  • Volume Weighted Average Price
    这些技术指标需要制定 params.volumeSeriesID (成交量数据列 ID)参数来进行计算,示例代码如下:
  1. series: [{
  2. id: 'main-series',
  3. data: [ ]
  4. }, {
  5. id: 'volume-series',
  6. yAxis: 1,
  7. data: [ ]
  8. }, {
  9. type: 'mfi',
  10. linkedTo: 'main-series',
  11. yAxis: 2,
  12. params: {
  13. volumeSeriesID: 'volume-series'
  14. }
  15. }]

原文: https://www.hcharts.cn/docs/technical-indicator-series