数据分析- 布林带

本文介绍了布林带的构成及其在数据分析中的应用,解释了线性预测和线性拟合的基本概念,并通过实例展示了如何使用计算机解决三元一次方程组和进行线性拟合。同时,探讨了数组操作、协方差和相关性分析,以及多项式运算和拟合在实际问题中的应用。
摘要由CSDN通过智能技术生成

数据分析- 布林带

布林带

布林带由3条线组成:

中轨线: 5日加权移动平均线

上轨线: 中轨 + 2*5日标准差 (这支股票顶部的压力)

下轨线: 中轨 - 2*5日标准差 (这支股票底部的支撑力)

布林带收窄代表趋于稳定, 如果布林带张开代表有较大的波动空间.

sma53 = np.convolve(
    closing_prices, core, 'valid')
mp.plot(dates[4:], sma53, color='violet',
        linewidth=2, label='SMA-5(3)')

# 绘制5日均线的布林带
stds = np.zeros(sma53.size)
for i in range(stds.size):
    stds[i] = closing_prices[i:i + 5].std()
# 底部支撑线 和 顶部压力线
lowers = sma53 - 2 * stds
uppers = sma53 + 2 * stds
# 绘制布林带
mp.plot(dates[4:], lowers,
        color='limegreen', label='Lower')
mp.plot(dates[4:], uppers,
        color='orangered', label='Upper')
mp.fill_between(
    dates[4:], lowers, uppers,
    uppers > lowers,
    color='dodgerblue', alpha=0.3)
线性预测与线性拟合

线性预测

在二维世界(x,y),线性方程表示为一条直线; 在三维世界(x,y,z),线性方程表示为一个平面.再高的维度常人无法感受.但是线性方程依然存在.

假设一组数据符合一种线性规律, 那么就可以预测未来将会出现的数据.

a  b  c  d  e  f  ?

ax + by + cz = d
bx + cy + dz = e
cx + dy + ez = f
预测:
dx + ey + fz = ?

计算机如何解三元一次方程组?
$$
\left[ \begin{array}{ccc}
a & b & c \
b & c & d \
c & d & e \
\end{array}
\right]
\times
\left[ \begin{array}{ccc}
x\
y\
z\
\end{array}
\right]

\left[ \begin{array}{ccc}
d\
e\
f\
\end{array}
\right]
$$

# a矩阵为3*3的矩阵, b矩阵为等号右边的矩阵
# c即是[xyz]矩阵
c = np.linalg.lstsq(a, b)[0]

案例: 预测AAPL下一天的股价

# 整理五元一次方程组, 最终预测一组股票的走势
N = 3
pred_prices = np.zeros(
    closing_prices.size - 2 * N + 1)
# 为预测值的每一个元素赋值
for i in range(pred_prices.size):
    a = np.zeros((N, N))
    # 整理5行5列的矩阵
    for j in range(N):
        a[j, ] = closing_prices[
            i + j:i + j + N]
    b = closing_prices[i + N:i + N * 2]
    # 根据a矩阵与b矩阵求解
    x = np.linalg.lstsq(a, b)[0]
    # b.dot(x) b与x执行矩阵相乘
    pred_prices[i] = b.dot(x)

# 把预测的结果绘制出来
# 向dates数组末尾在加一天 (工作日)
dates = np.append(
    dates, dates[-1] +
    pd.tseries.offsets.BDay())

mp.plot(dates[2 * N:], pred_prices,
        'o-', color='orangered',
        linewidth=2, label='Predict Price')

线性拟合

线性拟合可以寻求与一组数据的走势规律相适应的线性表达式方程.

例如:
一组散点:[x1, y1][x2, y2][x3, y3] ... [xn, yn]

假设这组散点数据符合同一个线性方程, 那么:
kx1 + b = y1
kx2 + b = y2
kx3 + b = y3
...
kxn 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值