python绘制布林线
时间: 2025-08-19 20:52:32 AIGC 浏览: 22
### 使用 Python 绘制布林带图
要使用 Python 和 `matplotlib` 或 `pandas` 库来绘制布林带图,可以按照以下方式实现:
#### 数据准备
首先需要导入必要的库并获取股票数据。以下是加载所需库的代码片段:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
```
接着可以通过 Pandas DataReader 获取某只股票的历史价格数据(例如 Yahoo Finance 提供的数据)。假设我们已经有一个 DataFrame 名为 `df`,其中包含 Open、High、Low、Close 列。
#### 计算布林带指标
布林带由三部分组成:中轨(通常是简单移动平均线 SMA),以及上下轨(基于标准差计算得出)。具体公式如下:
- 中轨 (Middle Band): \( \text{SMA}(n) \),即 n 天的简单移动平均。
- 上轨 (Upper Band): \( \text{SMA} + k \times \sigma(n) \),k 是倍数,默认为 2。
- 下轨 (Lower Band): \( \text{SMA} - k \times \sigma(n) \),σ 表示标准差。
下面是具体的实现代码:
```python
# 设置窗口大小和标准差倍数
window_size = 20
std_dev_multiplier = 2
# 计算中间轨道(SMA)
df['SMA'] = df['Close'].rolling(window=window_size).mean()
# 计算标准差
df['STD'] = df['Close'].rolling(window=window_size).std()
# 计算上轨和下轨
df['Bollinger_Upper'] = df['SMA'] + std_dev_multiplier * df['STD']
df['Bollinger_Lower'] = df['SMA'] - std_dev_multiplier * df['STD']
```
#### 绘制图表
利用 Matplotlib 可以轻松绘制出 K 线图和布林带。以下是完整的绘图代码:
```python
fig, ax = plt.subplots(figsize=(14, 7))
# 绘制K线图
ax.plot(df.index, df['Close'], label='Close Price', color='black')
# 绘制布林带上轨和下轨
ax.plot(df.index, df['Bollinger_Upper'], label=f'Upper Bollinger Band ({window_size})', linestyle='--', color='red')
ax.plot(df.index, df['Bollinger_Lower'], label=f'Lower Bollinger Band ({window_size})', linestyle='--', color='blue')
# 绘制中轨(SMA)
ax.plot(df.index, df['SMA'], label=f'SMA({window_size})', color='orange')
# 添加填充区域表示布林带范围
ax.fill_between(df.index, df['Bollinger_Upper'], df['Bollinger_Lower'], alpha=0.1)
# 图表美化
ax.set_title('Stock Price with Bollinger Bands', fontsize=16)
ax.set_xlabel('Date', fontsize=12)
ax.set_ylabel('Price ($)', fontsize=12)
ax.legend(loc='upper left', fontsize=10)
ax.grid(True)
plt.tight_layout()
plt.show()
```
以上代码实现了从数据处理到可视化的过程[^1]。通过调整参数如窗口大小 (`window_size`) 和标准差倍数 (`std_dev_multiplier`),可以根据需求定制化布林带的表现形式[^3]。
---
###
阅读全文
相关推荐



















