富途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 StartedRust0191
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0118
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
fun-rec推荐系统入门教程,在线阅读地址:https://datawhalechina.github.io/fun-rec/Python03
so-large-lm大模型基础: 一文了解大模型基础知识01
热门内容推荐
项目优选
收起
暂无描述
Dockerfile
764
4.98 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
857
1.93 K
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
683
1.33 K
Ascend Extension for PyTorch
Python
719
880
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
457
439
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.08 K
1.1 K
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
151
252
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
305
118
昇腾LLM分布式训练框架
Python
178
221