生活随笔
收集整理的這篇文章主要介紹了
计算布林带
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
計算布林帶
import numpy
as np
from matplotlib
import pyplot
as plt
import sys
series = np.random.rand(
100) *
10 +
10
ser_len = len(series)
win_sz =
5 if len(sys.argv) <
2 else sys.argv[
1]
print u'窗口大小: ', win_sz
sma_weight = np.ones(win_sz).astype(float) / win_sz
ema_weight = np.exp(np.linspace(-
1,
0, win_sz))
ema_weight /= ema_weight.sum()
sma = []
ema = []
mstd = []
for i
in xrange(win_sz -
1, ser_len):ser_range = series[i - (win_sz -
1): i +
1]avg = (ser_range * sma_weight).sum()sma.append(avg)avg = (ser_range * ema_weight).sum()ema.append(avg)std = ser_range.std()mstd.append(std)sma = np.asarray(sma)
mstd = np.asarray(mstd)
upper = sma +
2 * mstd
lower = sma -
2 * mstd
ser_slice = series[win_sz -
1:]
x = np.arange(win_sz -
1, ser_len)
print 'x: ', x[:
5]
plt.plot(x, ser_slice,
'b', label=
'series')
print u'序列: ', ser_slice[:
5]
plt.plot(x, sma,
'g', label=
'sma')
print u'簡單滑動均值: ', sma[:
5]
plt.plot(x, ema,
'r', label=
'ema')
print u'指數(shù)滑動均值: ', ema[:
5]plt.plot(x, upper,
'grey', label=
'upper bolling')
plt.plot(x, lower,
'grey', label=
'lower bolling')plt.legend()
plt.show()
總結(jié)
以上是生活随笔為你收集整理的计算布林带的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。