富途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 StartedRust0436
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0749
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0304
DeepAuditDeepAudit:人人拥有的 AI 黑客战队,让漏洞挖掘触手可及。国内首个开源的代码漏洞挖掘多智能体系统。小白一键部署运行,自主协作审计 + 自动化沙箱 PoC 验证。支持 Ollama 私有部署 ,一键生成报告。支持中转站。让安全不再昂贵,让审计不再复杂。Python05
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Markdown
823
5.46 K
Ascend Extension for PyTorch
Python
795
1.12 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
491
512
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
957
2.26 K
deepin linux kernel
C
32
16
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
773
1.55 K
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
433
304
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.2 K
1.23 K
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.83 K
749
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
631
255