用 Docker Compose 搭一个本地量化数据看板:PostgreSQL + Grafana 入门

举报
云上复盘笔记 发表于 2026/10/23 00:37:17 2026/10/23
【摘要】 云上流水线负责产出数据,本地看板负责让人看清数据。这篇文章记录我把 A 股日线数据从一堆 CSV 变成一张可交互看板的过程。 一、为什么是 Docker Compose做量化复盘一段时间后,本地会积累大量数据文件:日线行情 CSV、指标快照、策略信号表。文件一多就有三个老问题:查一次要写一次脚本、想看趋势得手动画图、换台电脑环境全要重装。我的解法是用两个经典开源组件搭一个本地看板,并用 Do...

云上流水线负责产出数据,本地看板负责让人看清数据。这篇文章记录我把 A 股日线数据从一堆 CSV 变成一张可交互看板的过程。

一、为什么是 Docker Compose

做量化复盘一段时间后,本地会积累大量数据文件:日线行情 CSV、指标快照、策略信号表。文件一多就有三个老问题:查一次要写一次脚本、想看趋势得手动画图、换台电脑环境全要重装。

我的解法是用两个经典开源组件搭一个本地看板,并用 Docker Compose 一键拉起:

  • PostgreSQL:把 CSV 统一入库,建好索引后按股票代码、日期区间查询都是毫秒级;
  • Grafana:连上数据库就能画 K 线、成交量、指标曲线,还支持时间区间联动和变量筛选。

Docker Compose 的好处是整个环境写在一个 docker-compose.yml 里,docker compose up -d 一条命令跑起来,docker compose down 干净退场,不污染系统环境。

二、compose 文件怎么写

核心只需要两个服务:

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: market
      POSTGRES_USER: quant
      POSTGRES_PASSWORD: local_only
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    depends_on:
      - db
volumes:
  pgdata:

两个值得注意的细节:

  1. 数据落在 named volume(pgdata)里,容器删了数据还在,升级镜像也不丢库;
  2. Grafana 首次登录后先在 Data Sources 里添加 PostgreSQL,地址填 db:5432——Compose 网络里服务名就是主机名,不用写 localhost。

三、把 CSV 灌进库

建表语句按复盘需要设计,重点是把主键定好:

CREATE TABLE daily_kline (
  code      varchar(10) NOT NULL,   -- 如 sh.600519
  trade_date date       NOT NULL,
  open  numeric, high numeric,
  low   numeric, close numeric,
  volume bigint,
  PRIMARY KEY (code, trade_date)
);
CREATE INDEX idx_kline_date ON daily_kline (trade_date);

主键 (code, trade_date) 天然防止重复导入,配合 COPY ... FROM csv 或 Python 的 to_sql,几千只股票几年的日线几分钟就能灌完。我的习惯是每天收盘后先删掉当天已有行再插入,保证幂等——脚本跑两遍结果也一样。

四、看板怎么配

Grafana 里我最常用的三个面板:

  • 个股走势:用变量 $code 做下拉筛选,SQL 里写 WHERE code = '$code',一条 SQL 同时服务所有股票;
  • 市场宽度:统计每天上涨家数占比,SELECT trade_date, avg(close > open)::int FROM daily_kline GROUP BY 1,一眼看出情绪冷暖;
  • 成交量异动:量比超过阈值的高亮显示,配合告警功能,数据一入库自动刷新。

时间范围选择器和面板联动是 Grafana 的强项:框选一段行情,所有面板同步切换,比在 Excel 里筛日期快得多。

五、小结

这套本地看板的意义不在于替代专业行情软件,而在于:自己的策略信号、自己的指标,能以自己舒服的方式呈现。数据在自己手里,回测和复盘才有一个可靠的底座。整套环境跑起来不超过十分钟,感兴趣的朋友可以照着上面的配置试一试,也欢迎在评论区交流你的看板设计。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。