技术博客
国际原油价格查询:原油涨跌监控与趋势预警搭建指南

国际原油价格查询:原油涨跌监控与趋势预警搭建指南

作者: 万维易源
2026-09-02
国际原油价格查询原油价格APIWTI原油布伦特原油免费接口
# 国际原油价格查询:原油涨跌监控与趋势预警搭建指南 > 接口:国际原油价格查询(apiCode=1108,接入点 1108-1)| 免费 | 请求方式 POST/GET | 返回 JSON | 适用人群:量化爱好者、运营、个人投资者 | 阅读时间:约 6 分钟 ## 核心要点 - 用 `diff_rate`(涨跌幅度)或 `diff_num`(涨跌金额)做阈值判断,超过即提醒。 - 接口每小时整点更新,监控任务每小时跑一次最经济,无需高频轮询。 - `diff_rate` 是带百分号的字符串,比较前先去掉 `%` 转浮点。 ## Why 原油单日波动几个百分点并不罕见,盘中异动往往影响决策。与其一直盯着屏幕,不如让程序每小时拉一次价、比对涨跌阈值,超阈值就发一条提醒。国际原油价格查询返回里正好有 `diff_rate` 和 `diff_num`,拿来写监控非常顺手。 ## What | 项目 | 说明 | |------|------| | 监控依据 | `diff_rate`(幅度,含 `%`)/ `diff_num`(金额) | | 拉取节奏 | 每小时一次(对齐整点更新) | | 触发动作 | 邮件 / 站内信 / webhook 等自定义 | ## How ### 阈值监控最小实现 ```python import requests APP_KEY = "YOUR_APPKEY" URL = "https://route.showapi.com/1108-1" THRESHOLD = 2.0 # 涨跌超过 2% 触发提醒 def check(code="wti"): r = requests.get(URL, params={"appKey": APP_KEY, "code": code}, timeout=10).json() b = r["showapi_res_body"] if b["ret_code"] != 0: return rate = float(b["diff_rate"].rstrip("%")) # "1.13%" -> 1.13 if abs(rate) >= THRESHOLD: notify(b["name"], b["nowPrice"], b["diff_rate"]) def notify(name, price, rate): # 此处替换为你的实际通知渠道(邮件/Webhook/短信网关) print(f"[预警] {name} 当前 {price} 美元/桶,涨跌 {rate}%,已超阈值") # 每小时执行一次(可用系统定时任务 / 云函数定时器触发) check("wti") check("blt") ``` **Node.js(fetch 阈值判断)** ```javascript const APP_KEY = "YOUR_APPKEY"; async function watch(code = "wti", threshold = 2.0) { const r = await fetch( "https://route.showapi.com/1108-1?appKey=" + APP_KEY, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: "code=" + code, signal: AbortSignal.timeout(10000), } ).then((x) => x.json()); const b = r.showapi_res_body; if (b.ret_code !== 0) return; const rate = parseFloat(b.diff_rate.replace("%", "")); if (Math.abs(rate) >= threshold) { console.log(`[预警] ${b.name} ${b.nowPrice} ${b.diff_rate}`); } } ``` ## 返回示例与解析 监控只用 `diff_rate` / `diff_num` / `nowPrice` / `name` 几个字段,均在 `showapi_res_body` 内。注意 `diff_rate` 为字符串且带百分号,`diff_num` 为字符串(涨跌金额)。完整字段见 [返回字段全解](https://www.showapi.com/guides/crude-oil-price-fields-1108)。 ## 进阶 / 边界 - **每小时一次足够**:数据整点更新,监控频率高于此无新收益,还耗免费额度。 - **阈值取绝对值**:涨跌都可能是异动,用 `abs(rate)` 同时覆盖上涨与下跌预警。 - **仅供参考**:本接口为每小时汇总的基准油价,非实时逐笔行情,预警用于参考而非交易指令。 ## FAQ **Q:diff_rate 和 diff_num 用哪个做阈值?** `diff_rate` 是百分比幅度,更适合"波动多大"的预警;`diff_num` 是绝对金额,适合关心"每桶涨跌几美元"的场景。 **Q:监控频率设多高?** 建议每小时一次,与接口整点更新对齐;更频繁不会拿到新数据。 **Q:能监控布伦特吗?** 能,对 `code=blt` 同样跑一遍判断即可。 **Q:这个预警能当交易信号吗?** 不能。数据为每小时汇总基准价、仅供参考,不构成投资建议。 ## 相关能力 / 下一步阅读 - [国际原油价格查询返回字段全解:nowPrice / diff_rate / stockNum 一文读懂](https://www.showapi.com/guides/crude-oil-price-fields-1108) - [国际原油价格查询:整点更新意味着什么?数据时效与缓存设计](https://www.showapi.com/guides/crude-oil-price-update-frequency-1108) - [国际原油价格查询:免费档位下如何设计缓存节省调用成本?](https://www.showapi.com/guides/crude-oil-price-cache-strategy-1108) - **本系列共 12 篇**:查看[国际原油价格查询官方指南总目录](https://www.showapi.com/guides/crude-oil-price-guides-1108)