Skip to content

1.3 画第一张K线图

前面你拿到了数据——但数字是枯燥的。把数字变成图的那一刻,你会真正「看见」市场。这一节就是那个「哇」的时刻。

一句话

三行代码,把你刚下载的数据变成专业级 K 线图——这是你量化之路的「成人礼」。

学习目标

学完本章你能:

  • mplfinance 画出任何股票的 K 线图
  • 看懂 K 线的颜色和结构
  • 叠加成交量一起看图

核心内容

1. 导入画图工具

python
import mplfinance as mpf

2. 画图——这一刻值得记住

拿走你刚下载的 SPY 数据,只看最近 30 天:

python
mpf.plot(data.tail(30), type='candle', volume=True)

运行它。

如果你看到一个红绿相间的蜡烛图,下方还有蓝色柱状图——你做到了! 🎉

这是你的第一张 K 线图。这张图里包含了 SPY 最近 30 个交易日的所有价格信息。

📸 建议拍张照/截个图。 这是你量化学习之旅的第一张作品——以后回头看会很有意思。

3. 让图更好看一点

加几条均线,换个主题色:

python
mpf.plot(data.tail(60), type='candle', volume=True,
         title='SPY 60日K线图',
         style='charles',
         mav=(5, 20))

参数解释:

  • type='candle' — 画 K 线图(不是折线图)
  • volume=True — 底部显示成交量条
  • title='...' — 图表的标题
  • style='charles' — 配色风格
  • mav=(5, 20) — 叠加 5 日和 20 日均线

4. 读懂 K 线——三分钟就够了

每一根「蜡烛」代表一天的交易:

         🕯️ 阳线(涨)         🕯️ 阴线(跌)
         ─────────             ─────────
           最高价                 最高价
         ┌─────┐               ┌─────┐
         │     │   上影线       │     │
         │ 收盘价│              │ 开盘价│
         │     │               │     │
         │     │   实体         │     │
         │ 开盘价│              │ 收盘价│
         │     │   下影线       │     │
         └─────┘               └─────┘
           最低价                 最低价
  • 绿色/白色实体 = 收盘价 > 开盘价(上涨日)📈
  • 红色/黑色实体 = 收盘价 < 开盘价(下跌日)📉
  • 上影线 = 当天最高到实体的距离(买方冲上去又被压回来了)
  • 下影线 = 当天最低到实体的距离(卖方砸下去又被拉回来了)
  • 实体长度 = 涨/跌的力度

💡 只看颜色就能快速判断:连续绿色 = 上涨趋势,连续红色 = 下跌趋势。就这么简单。

5. 换一只股票试试

python
# 特斯拉
tsla = yf.download("TSLA", start="2024-01-01")
mpf.plot(tsla.tail(30), type='candle', volume=True, title='TSLA 30日K线')
python
# 比特币
btc = yf.download("BTC-USD", start="2024-01-01")
mpf.plot(btc.tail(30), type='candle', volume=True, title='Bitcoin 30日K线')

不同股票的 K 线形态完全不同——波动大的股票(TSLA、BTC)有更多长影线和长实体,波动小的(SPY)K 线更规整。自己对比看看。

6. 折线图——最简单的方式

如果 K 线图信息太多,可以只画收盘价折线:

python
import matplotlib.pyplot as plt

data['Close'].plot(figsize=(12, 6), title='SPY Close Price')
plt.show()

这不是 K 线图,但它清晰地展示了价格走势。有时候简洁就是最好的。

练习

选择题

  1. K 线图中,实体代表什么?

    • A. 开盘价到收盘价的区间
    • B. 最高价到最低价的区间
    • C. 成交量的大小
    • D. 当天的涨跌幅比例
  2. 红色(阴线)的 K 线意味着:

    • A. 收盘价 > 开盘价
    • B. 收盘价 < 开盘价
    • C. 成交量增加
    • D. 价格创出新高
  3. mplfinancevolume=True 的作用是:

    • A. 显示交易量
    • B. 放大图表
    • C. 调整颜色
    • D. 显示数据标签

编程题

题目: 选择一只非 SPY 的股票(比如你喜欢的公司、你关注行业的龙头),下载 2024 年至今的数据,画一张包含最近 30 天 K 线图和成交量的图。给图表加上标题。

python
import yfinance as yf
import mplfinance as mpf

# 选一只你感兴趣的股票
my_stock = yf.download('你的代码', start="2024-01-01")

# 画 K 线图 —— 最后 30 天,带成交量,加标题
# 你的代码

💡 试试:GOOGL(谷歌)、NVDA(英伟达)、BABA(阿里巴巴)、TSM(台积电)

论述题

观察你画的 K 线图。你能从图里读出什么信息?比如:

  • 最近十天是涨得多还是跌得多?
  • 哪天的波动最大(实体最长或者影线最长)?
  • 成交量大的日子价格发生了什么变化?

描述你看到的。不需要专业术语——用自己的话说出来就是理解的第一步。

📝 练习

💬 论述题

Built with VitePress