Python WebSocket 实时订阅 usdcnh 离岸人民币汇率完整开发流程

📅 2026/7/10 7:55:42
Python WebSocket 实时订阅 usdcnh 离岸人民币汇率完整开发流程
在跨境外贸结算、离岸资产对冲、人民币汇率趋势分析程序开发场景中美元离岸人民币 usdcnh 是核心监测货币对。轮询方式会产生固定延迟采用 WebSocket 长连接能够实时捕捉汇率瞬间波动完整覆盖心跳保活、断线重连、数据包解析全流程下文全部代码可直接本地运行附带完整服务端返回 JSON 结构便于业务逻辑开发。一、通信基础规范1、长连接统一地址ws://39.107.99.235/ws2、目标订阅编码usdcnh3、心跳强制规则客户端每 10 秒推送 {ping: 十位 Unix 时间戳}长时间无心跳会被服务端断开连接4、订阅报文格式连接成功后发送 {Key:品种编码}单品种直接填写 usdcnh5、推送机制仅价格、盘口产生变动时下发数据包无重复冗余推送二、完整可运行 Python 代码import websocket import json import time import threading # 配置订阅标的 target_code fx_susdcnh def heartbeat_task(ws_conn): # 独立子线程持续发送心跳 while True: timestamp int(time.time()) ws_conn.send(json.dumps({ping: timestamp})) time.sleep(10) def on_open(ws_conn): print(离岸人民币行情长连接建立完成发起订阅) sub_msg json.dumps({Key: target_code}) ws_conn.send(sub_msg) # 启动守护心跳线程 threading.Thread(targetheartbeat_task, args(ws_conn,), daemonTrue).start() def on_message(ws_conn, msg_text): try: raw_data json.loads(msg_text) if body in raw_data: quote_info raw_data[body] print( fx_susdcnh 离岸人民币实时行情 ) print(f品种编码{quote_info[StockCode]}) print(f实时汇率{quote_info[Price]}) print(f当日开盘{quote_info[Open]}) print(f昨日收盘{quote_info[LastClose]}) print(f日内高低区间{quote_info[High]}/{quote_info[Low]}) print(f买一档报价{quote_info[BP1]}卖一档报价{quote_info[SP1]}) print(f单日涨跌额{quote_info[Diff]}涨跌幅{quote_info[DiffRate]}%) print(f数据更新时间戳{quote_info[LastTime]}) print(\n) except Exception as e: print(行情数据包解析异常, str(e)) def on_close(ws_conn, close_code, tips): print(离岸人民币行情连接断开3秒后自动重连) time.sleep(3) start_ws_service() def on_error(ws_conn, err_info): print(长连接通信异常, str(err_info)) def start_ws_service(): ws_app websocket.WebSocketApp( urlws://39.107.99.235/ws, on_openon_open, on_messageon_message, on_closeon_close, on_erroron_error ) ws_app.run_forever() if __name__ __main__: start_ws_service()三、服务端完整返回 JSON 样例{ body: { StockCode: fx_susdcnh, Price: 7.2468, Open: 7.2312, LastClose: 7.2295, High: 7.2513, Low: 7.2241, Time: 2026-07-09 10:18:32, LastTime: 1783664312, BP1: 7.2462, BV1: 3210, SP1: 7.2468, SV1: 2876, TotalVol: , Diff: 0.0173, DiffRate: 0.24 } }四、字段详细说明StockCode交易品种唯一编码区分在岸 / 离岸人民币Price实时兑换价格Open/LastClose当日开盘、前一日收盘High/Low日内最高最低汇率BP1、SP1买卖一档挂单价格DiffRate当日涨跌幅五、工程落地注意事项1、程序必须保留自动重连逻辑本地断网、服务端网络波动均可自动恢复行情接收2、心跳线程设置为守护模式主线程退出同步终止心跳循环3、离岸人民币全天具备交易流动性程序无需设置休眠停机逻辑4、解析层增加异常捕获防止畸形数据包直接导致脚本崩溃。