富途OpenAPI Python SDK实战指南:从量化策略开发到订单执行
2026-04-16 08:27:26作者:劳婵绚Shirley
功能总览:构建量化投资的API调用框架
富途OpenAPI Python SDK为量化投资开发者提供了全面的市场数据获取与交易执行能力。通过该SDK,开发者可快速构建从行情分析到策略执行的完整量化交易系统。核心能力包括:实时行情订阅、历史数据查询、订单管理、资产监控等功能模块,支持多市场(港股、A股、美股等)的金融数据接入与交易操作。
SDK采用模块化设计,主要包含四大核心组件:
- 行情模块:提供实时行情推送、历史K线数据、盘口数据等市场信息获取能力
- 交易模块:支持订单创建、修改、撤销及持仓管理等交易操作
- 公共模块:处理网络通信、数据解析、日志记录等基础功能
- 工具模块:提供策略分析、数据可视化等辅助开发工具
快速上手:量化策略开发的五步实战指南
环境准备与安装
📌 步骤1:克隆项目仓库
git clone https://gitcode.com/gh_mirrors/py/py-futu-api
cd py-futu-api
📌 步骤2:安装依赖包
pip install -r requirements.txt
行情获取示例
📌 步骤3:初始化行情上下文
from futu.quote import OpenQuoteContext
# 初始化行情连接
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
📌 步骤4:获取市场快照
# 获取腾讯控股(00700.HK)的市场快照
ret, data = quote_ctx.get_market_snapshot('HK.00700')
if ret == 0:
print(data)
else:
print(f"获取数据失败,错误码:{ret}")
📌 步骤5:订阅实时行情
# 订阅腾讯控股的实时行情
quote_ctx.subscribe(['HK.00700'], [SubType.QUOTE])
# 循环获取推送数据
while True:
ret, data = quote_ctx.get_stock_quote('HK.00700')
if ret == 0:
print(f"最新价格: {data['last_price'][0]}")
time.sleep(1)
交易执行示例
from futu.trade import OpenTradeContext
# 初始化交易连接
trade_ctx = OpenTradeContext(host='127.0.0.1', port=11111)
# 解锁交易
ret, data = trade_ctx.unlock_trade(password='your_password')
if ret != 0:
print(f"解锁失败: {data}")
exit()
# 下单交易
ret, data = trade_ctx.place_order(
code='HK.00700',
price=300.0,
qty=100,
trd_side=TrdSide.BUY,
order_type=OrderType.NORMAL
)
if ret == 0:
print(f"下单成功,订单号: {data['order_id'][0]}")
else:
print(f"下单失败: {data}")
核心模块解析:构建专业量化系统的技术指南
行情模块(quote)深度应用
「quote」模块适用于分钟级至日线级行情分析,提供全面的市场数据接口:
-
实时数据接口:
get_market_snapshot(): 获取股票最新快照数据get_order_book(): 获取盘口数据get_rt_ticker(): 获取逐笔成交数据
-
历史数据接口:
get_history_kl(): 获取历史K线数据get_history_kl_points(): 获取历史K线的具体点位数据get_rehab(): 获取复权因子数据
应用场景示例:
# 获取近30天的日K线数据
ret, data = quote_ctx.get_history_kl(
code='HK.00700',
kl_type=KLType.K_DAY,
start='2023-01-01',
end='2023-01-31'
)
交易模块(trade)功能解析
「trade」模块提供完整的交易生命周期管理能力,支持多种订单类型与交易策略:
-
账户管理:
get_acc_list(): 获取账户列表get_funds(): 查询资金情况get_position_list(): 获取持仓信息
-
订单操作:
place_order(): 下单modify_order(): 修改订单cancel_order(): 取消订单get_order_list(): 查询订单列表
公共模块(common)技术架构
公共模块提供SDK的核心基础设施,包括:
- 网络通信:
network_manager.py负责与FutuOpenD网关的通信管理 - 数据解析:
pbjson.py处理Protocol Buffers与JSON格式的转换 - 错误处理:
err.py定义了完整的错误码体系 - 日志系统:
ft_logger.py提供分级日志记录功能
进阶配置:优化量化策略的运行参数
连接配置参数
| 参数名 | 默认值 | 常用配置 | 应用场景 |
|---|---|---|---|
| host | 127.0.0.1 | 127.0.0.1 | 本地开发环境 |
| port | 11111 | 11111 | 标准API端口 |
| is_encrypt | False | True | 生产环境安全连接 |
| timeout | 30 | 60 | 网络不稳定环境 |
配置示例:
# 加密连接配置
quote_ctx = OpenQuoteContext(
host='127.0.0.1',
port=11111,
is_encrypt=True,
timeout=60
)
行情订阅优化
| 参数 | 说明 | 适用场景 |
|---|---|---|
| SubType.QUOTE | 基本行情订阅 | 价格监控策略 |
| SubType.ORDER_BOOK | 盘口数据订阅 | 套利策略 |
| SubType.TICKER | 逐笔成交订阅 | 高频交易策略 |
| SubType.KL_1M | 1分钟K线订阅 | 短线交易策略 |
订阅示例:
# 多类型订阅组合
quote_ctx.subscribe(
['HK.00700', 'US.AAPL'],
[SubType.QUOTE, SubType.ORDER_BOOK, SubType.KL_5M]
)
订单参数配置
| 参数 | 常用值 | 策略应用 |
|---|---|---|
| OrderType.NORMAL | 普通订单 | 一般交易 |
| OrderType.LIMIT | 限价订单 | 精确价格成交 |
| OrderType.MARKET | 市价订单 | 快速成交 |
| OrderType.STOP | 止损订单 | 风险控制 |
常见问题导航
- 连接问题:无法连接到FutuOpenD网关
- 权限问题:行情/交易功能权限不足
- 数据延迟:行情数据更新不及时
- 订单失败:下单被拒的常见原因
- 性能优化:高频策略的SDK配置建议
通过以上指南,开发者可快速掌握富途OpenAPI Python SDK的核心功能,构建从市场数据获取到交易执行的完整量化投资系统。无论是入门级策略开发还是专业级量化交易,该SDK都提供了稳定可靠的技术支持。建议结合示例代码与实际市场数据进行策略测试,逐步优化交易模型与执行效率。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust069- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00
项目优选
收起
暂无描述
Dockerfile
687
4.45 K
Ascend Extension for PyTorch
Python
540
664
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
386
69
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
953
919
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
646
230
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
407
322
Oohos_react_native
React Native鸿蒙化仓库
C++
336
385
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.59 K
923
昇腾LLM分布式训练框架
Python
145
172
暂无简介
Dart
935
234