惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
博客园_首页
美团技术团队
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
J
Java Code Geeks
T
Tailwind CSS Blog
Jina AI
Jina AI
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

程序员

V2EX 看到讨论"跨域"的帖子,那个她好像回来了 codex 今天真的是不稳定呀。 火山方舟 Coding Plan 慎买 刚问了大家 openclaw 和 hermes 在什么机器上面玩,求推荐一个机器 GPT-image-2 生成 AI 图片防伪有感 codex pro 5 小时限制已经严重缩水 逆天 Antigravity 动态 JSON 序列化对强类型语言很难吗? 自建了 GPT Coding Plan,遇到了定价问题,请教大家 大家都是在什么设备上玩 openclaw 以及 hermes 的呀? 软考还有一个月就考试了,你们学习了吗? 大伙用 AI 会考虑在 user scope 的 CLAUDE.md/AGENTS.md 里交代 AI 说中文吗 我发现程序员这个群体很大部分其实挺抠的 最近使用 cc 总会莫名其妙的返工, codex 不会 目前体验最好的远程 vibe 工具 想知道大佬们抓包遇到 ssl pinning 都是咋优雅的 解决的? 工业软件的大佬们是怎么 vibe coding 的 最近 chrome 是不是有 bug 啊,一搜索就卡住 分布式异步系统在 vibe coding 下的困境 PHP Native AOT 编译器,支持将 PHP 代码编译为可执行文件,运算性能提高 150 倍 没想到 2026 年,还要浪费大量时间在跨域问题上 DeepSeek V4 这周会出吗? 中转站正式试营 欢迎试用 不掺不假 小米 mimo 升级 v2.5,并且重置了额度 Jenkins, SCM 轮询完全不工作是啥问题啊 赛博斗蛐蛐, AI 模型的简单对比(白嫖版) 使用中转站要擦亮眼睛!不说别的,倍率计算 充值好乱。 买了火山的 Coding Plan 测试得出计费模式 给我的 AI 生成了简历和状态卡, 大家帮忙看下 Ta 能找到啥样的
记录从交易所爬取技术指标的过程
particlec · 2026-05-24 · via 程序员

最近在优化一个量化策略,需要用到交易所图表里的一些指标,比如 smc

1 、官方 api

一开始我想得很简单:我联系了该交易所的工作人员询问技术指标的 api 。

他说交易指标是没有单独 api 的,建议我拉取 k 线自己计算

2 、自己算

于是我打算自己算,于是找到了 py 相关的库 smartmoneyconcepts ,但是我发现自己拉取 k 线算的和交易所有很大的出入,完全不一样,根本用不了啊

2 、网站爬

于是我决定还是从交易所网页上爬取

我发现点击交易指标时候,是没有新的接口调用的,说明是前端渲染的

实际就是 前端渲染的 canvas ,那就有很有可能获取到 js

最终发现了 F12 → Sources → Page ,通过 search 搜索到了对应算法 78686-fa6ec3f3500b6300.js ,通过 gpt 把这个 6000 多行的算法转化成了 py ,以为这样就结束了,但是最坑的来了!

3 、坑

一样的算法但是计算指标算出来就是不一样!

算出结果还是和交易所的不吻合,然后我打印发现交易所给的公开 k 线 api 和网页上实时的 api 相同时间数据不一样(有比如)!!!

如果你用交易所公开的 api 永远算不出相同的指标!

下面是细节,相同的时间戳 k 线值不一样~!

公开 K 线接口返回的是: Open: 0.5316 High: 0.5354 Low : 0.5251 Close: 0.5274

但网页图表接口返回的是:

Open: 0.5311 High: 0.5349 Low : 0.5263 Close: 0.5316

然后我把公开接口换成了内部接口,我改成模拟网页请求,requests.Session(),这样算法一样,数据一样总一样了吧

但问题还没完全结束。

因为 SMC 这种指标不是只看最后几根 K 线,它还会记住前面的结构。 比如前面哪里形成了高点、低点,哪里有 OB ,哪些 OB 已经失效,当前 K 线有没有临时结构。这些都是隐藏的规则

所以我又发现一个细节:网页如果只加载 limit=1000 根 K 线,那 Python 也要按 1000 根去算。 如果我自己多拉 60 天、90 天,历史起点不一样,后面的结构也会跟网页不一样。

后面又对齐了几个小隐藏的规则,比如:

  1. 网页用 limit=1000 ,Python 也用 1000 根
  2. OB 的 ATR 处理要和网页一致
  3. BOS / CHoCH 在网页上显示的是一条结构线,不是单根 K 线

最后基本对齐了:

K 线对齐 Order Block 对齐 BOS / CHoCH 基本对齐

也就是说,最后 Python 算出来的 SMC ,已经和交易所图上的 SMC 完全一致了。哇!

这次最大的收获是:

以后这个交易所网页上的基本所有的技术指标,就算官方不给 API ,也可以用类似方法,还原出来。