在股票市场中,技术分析是一种久经考验的方法,可以帮助投资者预测股票价格的走势。在前端开发中,利用股票的历史价格数据进行技术分析可以实现一些有趣的web应用。本教程将介绍一款名为 stock-technical-indicators
的 npm 包,它可以帮助你计算常用的股票技术指标。
安装
你可以通过命令行进行安装:
npm install stock-technical-indicators
该命令将会在你的项目中安装 stock-technical-indicators
包。
使用
假设你已经在项目中准备好包含股票价格数据的数组 prices
,我们将使用以下代码:
const STI = require('stock-technical-indicators'); const closePrices = prices.map(price => price.close); const sma10 = STI.sma(closePrices, 10);
上述代码中,我们首先引入了 stock-technical-indicators
包,并将其赋值给一个变量 STI
。接下来,我们从价格数组中提取了 close
属性,并将其传递给了 sma
函数。sma
函数接收两个参数:价格数组和计算移动平均线所需的周期,这里我们选择了10。在这里,我们将移动平均线的结果赋值给 sma10
。
指标
stock-technical-indicators
包提供了许多常用的技术指标,包括:
- Simple Moving Average (SMA)
- Exponential Moving Average (EMA)
- Relative Strength Index (RSI)
- Moving Average Convergence Divergence (MACD)
- Bollinger Bands
Simple Moving Average (SMA)
在股票市场中,移动平均线被广泛应用于趋势分析。SMA 的计算方法很简单:将一段时间内的股票收盘价加总,再除以该段时间内的交易日数量。这些平均价格被连续绘制于价格走势图上,以形成移动平均线。
我们可以通过调用 STI.sma
函数来计算 SMA。该函数接收两个参数:价格数组和计算 SMA 所需的时间周期。
const prices = [...]; const closePrices = prices.map(price => price.close); const sma10 = STI.sma(closePrices, 10); console.log(sma10); // 输出 SMA(10) 的结果
Exponential Moving Average (EMA)
EMA 是 SMA 的改进版,它给不同时间点的价格赋予了不同的权重,使指标更加灵敏。EMA 的计算方法:
- 计算第一个周期的 SMA,作为本周期的 EMA。
- 计算本周期的 EMA,公式为:EMA(n) = (Price(n) - EMA(n-1)) x (2/(n+1)) + EMA(n-1)。
计算 EMA 同样可以使用 STI.ema
函数。该函数接收两个参数:价格数组和计算 EMA 所需的时间周期。
const prices = [...]; const closePrices = prices.map(price => price.close); const ema10 = STI.ema(closePrices, 10); console.log(ema10); // 输出 EMA(10) 的结果
Relative Strength Index (RSI)
RSI 是一个用于测量股票价格超买区和超卖区的指标。RSI 的计算方法:
- 计算一段时间内所有股价正数差的平均值和负数差的平均值。
- 计算相对强度和相对弱点。
- 计算 RS。
- 计算 RSI。
计算 RSI 同样可以使用 STI.rsi
函数。该函数接收两个参数:价格数组和计算 RSI 所需的时间周期。
const prices = [...]; const closePrices = prices.map(price => price.close); const rsi14 = STI.rsi(closePrices, 14); console.log(rsi14); // 输出 RSI(14) 的结果
Moving Average Convergence Divergence (MACD)
MACD 是一个趋势追踪的指标,它通过比较两个不同周期的移动平均线之间的差异,来判断价格走势的变化趋势。MACD 的计算方法:
- 计算 12 天期的 EMA。
- 计算 26 天期的 EMA。
- 计算 MACD,公式为:MACD = EMA(12) - EMA(26)。
- 计算 MACD 的 9 天期 EMA。
- 计算 DIF,公式为:DIF = MACD - MACD(9)。
计算 MACD 同样可以使用 STI.macd
函数。该函数接收三个参数:价格数组、快速EMA计算的时间周期和慢速EMA计算的时间周期。在我们的示例中,我们选择了12和26。
const prices = [...]; const closePrices = prices.map(price => price.close); const { macd, signal, histogram } = STI.macd(closePrices, 12, 26); console.log(macd); // 输出 MACD 的结果 console.log(signal); // 输出 MACD SIGNAL 的结果 console.log(histogram); // 输出 MACD Histogram 的结果
Bollinger Bands
Bollinger Bands 也称为布林带, 是另一种常用的股票价格分析工具。布林带由三根线构成:
- 20 天期的 SMA。
- 上下两根线,分别为20天的 SMA 加上和减去2个标准差。
const prices = [...]; const closePrices = prices.map(price => price.close); const { upperBand, middleBand, lowerBand } = STI.bollingerBands(closePrices, 20); console.log(upperBand); // 输出布林带上线的结果 console.log(middleBand); // 输出布林带中线的结果 console.log(lowerBand); // 输出布林带下线的结果
总结
通过使用 stock-technical-indicators
包,我们可以很容易地计算出常用的股票技术指标。在本教程中,我们介绍了 SMA、EMA、RSI、MACD 和布林带。这些指标具有深刻的指导意义,可以帮助我们更好地理解股票市场的变化。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672eb0520b171f02e1e67