布林带(BOLL):看看股价是贵还是便宜

📊 布林带是什么?

布林带(Bollinger Bands)由三条线组成:

  • 📍 中轨:20日均线
  • 📍 上轨:中轨 + 2倍标准差
  • 📍 下轨:中轨 – 2倍标准差

就像一个”通道”,股价大部分时候在通道内运行。

🎯 布林带的作用

1. 判断价格高低

  • 📈 股价碰到上轨 → 可能贵了,要跌
  • 📉 股价碰到下轨 → 可能便宜了,要涨

2. 判断趋势

  • 📊 通道向上 → 上涨趋势
  • 📉 通道向下 → 下跌趋势
  • ➡️ 通道平行 → 横盘震荡

3. 突破信号

  • 🚀 突破上轨 → 强势上涨
  • 💨 突破下轨 → 加速下跌

👨‍💻 用Python计算布林带

import pandas as pd

prices = [100, 102, 101, 105, 103, 107, 110, 108, 112, 115]
df = pd.DataFrame({"收盘": prices})

# 计算布林带
df["MA20"] = df["收盘"].rolling(20).mean()  # 中轨
df["STD"] = df["收盘"].rolling(20).std()    # 标准差
df["UPPER"] = df["MA20"] + 2 * df["STD"]   # 上轨
df["LOWER"] = df["MA20"] - 2 * df["STD"]   # 下轨

print(df)

📈 完整例子

import akshare as ak
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

# 获取数据
df = ak.stock_zh_a_hist(symbol="600519", adjust="qfq")
df = df.tail(60)

# 计算布林带
df["MA20"] = df["收盘"].rolling(20).mean()
df["STD"] = df["收盘"].rolling(20).std()
df["UPPER"] = df["MA20"] + 2 * df["STD"]
df["LOWER"] = df["MA20"] - 2 * df["STD"]

# 画图
plt.figure(figsize=(12, 6))
plt.plot(df["日期"], df["收盘"], label="收盘价", color="black")
plt.plot(df["日期"], df["MA20"], label="中轨", color="blue")
plt.plot(df["日期"], df["UPPER"], label="上轨", color="red", linestyle="--")
plt.plot(df["日期"], df["LOWER"], label="下轨", color="green", linestyle="--")

plt.fill_between(df["日期"], df["UPPER"], df["LOWER"], alpha=0.1, color="blue")
plt.title("茅台股价与布林带")
plt.legend()
plt.xticks(rotation=45)
plt.grid(True)
plt.show()

💡 布林带策略

# 突破上轨买入
if close > upper:
    print("突破上轨,强势!")

# 跌破下轨卖出
if close  ma20 and close 

⚠️ 注意事项

  • 📊 适合震荡行情
  • ⚠️ 趋势行情中可能失效
  • 💡 配合成交量一起看更准

📚 下一课

学会了布林带,我们来学成交量——看看这笔交易真不真实!

发表评论