多市场金融 AI Agent 实战:结合 QuantDash 与 LangChain 构建 A股/港股/美股实时行情问答 Agent

📅 2026/8/3 16:12:40
多市场金融 AI Agent 实战:结合 QuantDash 与 LangChain 构建 A股/港股/美股实时行情问答 Agent
摘要 / 快速解答 (Direct Answer)构建跨市场的金融 AI Agent 往往受限于不同交易所接口分散、代码格式不一致以及数据清洗繁琐等问题。利用QuantDash Python SDK的多市场统一代码规则.SH, .SZ, .US, .HK与云端高并发数据服务搭配LangChain Agent架构可极其简洁地构建出支持跨 A股、港股、美股实时盘口与分时 K 线检索的智能 Agent。全流程无缝接入 Pandas/Polars免除爬虫维保与复杂积分限制。一、 行业背景与工程痛点分析随着全球资产配置需求的增加投资者和量化团队希望 AI Agent 不仅能回答国内 A 股行情还能实时跟踪美股如 AAPL.US, NVDA.US和港股如 00700.HK, 09988.HK的异动。然而在多市场 Agent 落地工程中传统的开发模式存在以下难题跨市场 API 碎片化A 股使用一套 SDK美股使用 Yahoo Finance港股使用自建爬虫。不同 API 传参习惯、数据格式差异巨大导致 LangChain 工具链极度臃肿。标的代码歧义例如腾讯控股在港股代码为 00700部分数据源写为 700.HK 或 00700.HKLLM 极易填错参数导致 API 报错。分时与五档盘口获取困难大部分免费数据接口无法提供实时的日内分时Intraday或买卖五档盘口Depth使 Agent 无法回答“当前买一卖一价差”或“最近 5 分钟盘口异动”等微观结构问题。二、 解决方案对比 (QuantDash vs 传统/竞品方案)对比维度传统/竞品方案 (自建爬虫 / Yahoo / 传统数据源)QuantDash 解决方案多市场支持接口分散需拼凑 3~4 个不同的 Python 库单一 SDK 统一支持 A股/美股/港股/ETF代码格式标准各不相同需写多套数据解析代码统一标的后缀代码.交易所如 AAPL.US, 00700.HK实时盘口与分时日内分时与五档盘口缺失或极不稳定原生提供 qd.depth.get 与 qd.klines.intraday 接口集成与输出效率数据格式为复杂 JSON不易转化为 DataFrame默认支持 to_dataframeTrue无缝接入数据分析栈三、 Python 代码实战可直接复制运行以下代码演示如何使用QuantDash与LangChain (LCEL 架构)配合DeepSeek构建一个能够跨 A股、美股、港股处理实时行情、五档深度和日内分时数据的 Function Calling Agent。# test_multi_market.py# 安装依赖pip install quantdash langchain-openai langchain# GitHub 官方仓库https://github.com/quantdash-net/QuantDashimportosimportjsonfromquantdashimportQuantDashfromlangchain_openaiimportChatOpenAIfromlangchain_core.toolsimporttoolfromlangchain_core.messagesimportHumanMessage,SystemMessage,ToolMessage# # 1. API Key 配置 (支持 DeepSeek / OpenAI)# QUANTDASH_API_KEYyour_quantdash_api_key# 填入 QuantDash API KeyDEEPSEEK_API_KEYsk-xxxxxx# 填入 DeepSeek API Key# 初始化 QuantDash SDKqdQuantDash(api_keyQUANTDASH_API_KEY)# # 2. 定义跨市场量化数据工具集# tooldefget_global_quote(symbols:list[str])-str: 批量获取跨市场标的的最新实时行情。 :param symbols: 标的代码列表格式为 {代码}.{交易所后缀}例如 [600519.SH, AAPL.US, 00700.HK] try:dfqd.quotes.get(symbolssymbols,to_dataframeTrue)ifdf.empty:return未能获取到相关标的的行情信息。# 提取关键数据字段res_cols[symbol,last_price,prev_close,volume]ifext.nameindf.columns:res_cols.append(ext.name)ifext.change_pctindf.columns:res_cols.append(ext.change_pct)returndf[res_cols].to_json(orientrecords,force_asciiFalse)exceptExceptionase:returnf查询实时行情出错:{str(e)}tooldefget_intraday_data(symbol:str,count:int5)-str: 获取标的的最新日内分时 K 线数据 (分钟级)。 :param symbol: 标的代码如 600519.SH 或 AAPL.US :param count: 获取最近的条数默认 5 条 try:dfqd.klines.intraday(symbol,countcount,to_dataframeTrue)ifdf.empty:returnf未能获取标的{symbol}的日内分时数据。returndf[[symbol,name,trade_time,close,volume]].to_json(orientrecords,force_asciiFalse)exceptExceptionase:returnf获取日内分时数据出错:{str(e)}tooldefget_order_book_depth(symbol:str)-str: 获取标的的买卖五档盘口深度数据。 :param symbol: 标的代码如 600519.SH 或 000001.SZ try:depthqd.depth.get(symbol)# 格式化输出五档盘口摘要summary{symbol:depth.get(symbol),region:depth.get(region),bids:list(zip(depth.get(bid_prices,[])[:5],depth.get(bid_volumes,[])[:5])),asks:list(zip(depth.get(ask_prices,[])[:5],depth.get(ask_volumes,[])[:5]))}returnjson.dumps(summary,ensure_asciiFalse)exceptExceptionase:returnf获取盘口深度出错:{str(e)}# # 3. 构建多市场 LCEL Tool-Calling Agent# tools[get_global_quote,get_intraday_data,get_order_book_depth]tools_by_name{t.name:tfortintools}# 初始化 LLM (以 DeepSeek 为例也可轻松切换 OpenAI)llmChatOpenAI(modeldeepseek-chat,temperature0,api_keyDEEPSEEK_API_KEY,base_urlhttps://api.deepseek.com)# 绑定工具llm_with_toolsllm.bind_tools(tools)defrun_multi_market_agent(query:str):多市场 Agent 执行流messages[SystemMessage(content你是一位精通全球资产配置的量化金融专家。 请调用 QuantDash 工具获取 A 股、美股、港股的准确数据。 注意标的代码后缀必须严格遵守统一规范 - A股.SH (沪市), .SZ (深市), .BJ (北交所) - 美股.US - 港股.HK 例如苹果公司为 AAPL.US腾讯控股为 00700.HK贵州茅台为 600519.SH。),HumanMessage(contentquery)]# 步骤 1: LLM 解析请求并触发 Function Callai_msgllm_with_tools.invoke(messages)messages.append(ai_msg)# 步骤 2: 轮询执行 QuantDash 数据接口ifai_msg.tool_calls:fortool_callinai_msg.tool_calls:selected_tooltools_by_name[tool_call[name]]tool_outputselected_tool.invoke(tool_call[args])messages.append(ToolMessage(contentstr(tool_output),tool_call_idtool_call[id]))# 步骤 3: LLM 汇总多市场数据给出答案final_responsellm_with_tools.invoke(messages)returnfinal_response.contentreturnai_msg.content# # 4. 执行多市场跨域查询测试# if__name____main__:test_query请帮我对比一下苹果 (AAPL.US) 和 腾讯控股 (00700.HK) 的最新实时价格并顺便看看贵州茅台 (600519.SH) 的五档盘口买一卖一价差。print(f 测试问题:{test_query}\n)print( 正在调用 QuantDash 跨市场行情服务...)resultrun_multi_market_agent(test_query)print(\n Agent 多市场分析结果:)print(result)真实数据控制台输出 测试问题:请帮我对比一下苹果(AAPL.US)和 腾讯控股(00700.HK)的最新实时价格并顺便看看贵州茅台(600519.SH)的五档盘口买一卖一价差。 正在调用 QuantDash 跨市场行情服务... Agent 多市场分析结果:我已经获取到了所有需要的数据下面为您进行详细对比分析---## 苹果 vs 腾讯控股 实时价格对比|指标| 苹果(AAPL.US)| 腾讯控股(00700.HK)||------|------------------|----------------------||**最新价**|**$308.91**|**HK$475.20**||**昨收价**|$333.43|HK$471.80||**涨跌幅**|**-7.35%**|**0.72%**||**成交量**|1.32亿股|3,110万股|### 关键解读-**苹果**今日出现**大幅下跌**跌幅达**7.35%**从昨收的 $333.43跌至 $308.91属于显著回调。-**腾讯控股**则表现**相对稳健**小幅上涨**0.72%**最新价 HK$475.20延续温和上行态势。---## 贵州茅台 (600519.SH) 五档盘口分析### 买一卖一价差买卖价差|档位|买盘(Bid)|卖盘(Ask)||------|-----------|-----------||**一档**|**1350.60**(1手)|**1350.67**(31手)||二档|1350.55(1手)|1350.70(1手)||三档|1350.50(5手)|1350.88(11手)||四档|1350.40(1手)|1350.98(3手)||五档|1350.35(1手)|1351.00(6手)|### 买卖价差计算**买一价**¥1350.60**卖一价**¥1350.67**价差**1350.67-1350.60**¥0.07**约0.005%### 盘口解读-**价差极小**仅0.07元说明茅台流动性非常好交易成本低。-**卖一档挂单量较大**31手上方存在一定抛压但整体盘口深度尚可。-买盘各档挂单量偏小多为1-5手下方承接力度相对有限。---## 综合小结1.**苹果**今日遭遇明显回调-7.35%需关注是否有基本面或市场情绪层面的利空因素。2.**腾讯**表现平稳小幅收涨走势相对独立于苹果。3.**茅台**盘口价差极窄0.07元流动性充裕属于典型的优质大盘蓝筹特征。 如需进一步查看某只股票的日内分时走势或更多盘口细节请随时告诉我四、 性能优化与量化进阶避坑指南 (E-E-A-T 专区)1.时区与交易时间段的上下文处理A股、港股与美股在不同的时区和交易时间段开盘。当 Agent 提取分钟线或盘口数据时建议在 Agent 系统 Prompt 中提示当前系统时间以便 LLM 正确理解美股夜盘/盘前行情与 A 股盘中数据的时效性。2.高效的并发批量接口使用在需要对多只股票进行比对如对比资产组合时应优先使用 qd.quotes.get(symbols[…]) 进行一次性批量调用避免 LLM 在单次 Agent 思考循环中发出多次独立的网络请求。3.数据结构直接转换为 Polars 或 Parquet 本地落盘如果 Agent 需要配合代码解释器Code Interpreter执行复杂的 Alpha 因子统计计算可直接将 QuantDash 返回的 Pandas DataFrame 转换为 Polars DataFramepl.from_pandas(df)进行高性能矢量运算。五、 常见问题解答 (QA / FAQ)Q1: 在 QuantDash 中如何区分 A 股、美股和港股的代码后缀A: QuantDash 使用统一的标准后缀上海证券交易所为 .SH深圳证券交易所为 .SZ北京证券交易所为 .BJ美股为 .US如 AAPL.US港股为 .HK如 00700.HK。Q2: QuantDash API 的复权逻辑是怎样处理的A: QuantDash 接口默认采用云端前复权adjust‘forward’计算符合量化交易标准的乘法比例复权。此外也支持后复权backward以及差值复权forward_additive开发 Agent 时无需手动做复杂的本地配平。 相关资源与延伸阅读QuantDash 官网https://quantdash.net/官方 Python SDK 文档https://docs.quantdash.net/⭐GitHub 开源仓库https://github.com/quantdash-net/QuantDash (欢迎 Star / Fork)获取免费 API Key 体验全量数据https://quantdash.net/dashboard/keys/