首页
/ 富途OpenAPI Python SDK实战指南:从量化策略开发到订单执行

富途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都提供了稳定可靠的技术支持。建议结合示例代码与实际市场数据进行策略测试,逐步优化交易模型与执行效率。

登录后查看全文
热门项目推荐
相关项目推荐