参考资料
ps: 国内那些科普的帖子,都是什么垃圾玩意,找了半天指标计算方法,说不明白,也没有数据,甚至都是文字描述,真的无语。
这里看一下 ta-lib
的计算方式。
1 | U, M, L = talib.BBANDS( |
输出
1 | [ nan nan nan 20.18114575] [ nan nan nan 12.5] [ nan nan nan 4.81885425] |
公式计算是这样的
MA_n = MA(close,n)
UPPER = MA_n + M * PSD(close,n)
LOWER = MA_n + K * PSD(close,n)
其中
MA(close,n)
n
日收盘价下的简单MA
指标
M * PSD(close,n)
M
对应于talib.BBANDS
的nbdevup
PSD(close,n)
n
日收盘价下的总体标准差
K * PSD(close,n)
K
对应于talib.BBANDS
的nbdevdn
一般来说,M
和 K
都是 2
。
总体标准差 PSD
$$ PSD(close,n) = \sqrt {\frac {\sum_{i=1}^n (close - close’)^2}{n}} $$
close'
- 收盘价的平均值
举一个例子来说,计算 [7.0, 11.0, 15.0, 17.0]
的 psd
。
平均值
$$ close’ = \frac {7 + 11 + 15 + 17}{4} = 12.5 $$
总体方差
$$ s = \frac{(7 - 12.5)^2 + (11 - 12.5)^2 + (15 - 12.5)^2 + (17 - 12.5)^2}{4} = 14.75 $$
PSD
$$ PSD = \sqrt {14.75} = 3.840572873934304 $$
计算 Boll
计算 [7.0, 11.0, 15.0, 17.0]
,参数为 4,2,2
- 中间值
MA_4 = 12.5
UPPER
12.5 + 2 * 3.840572873934304 = 20.18114575
LOWER
12.5 = 2 * 3.840572873934304 = 4.81885425
OK,现在数据就能对上了。