核心用法
futu-client 是富途证券(Futu Securities)OpenAPI 的 Python 封装层,通过本地 FutuOpenD 网关(默认 127.0.0.1:11111)与券商服务器通信。主要能力覆盖:
- 账户与持仓:
get_positions/get_account_info返回 DataFrame 格式持仓及资金购买力 - 交易执行:
place_order/modify_order支持限价单,区分真实环境TrdEnv.REAL与模拟环境TrdEnv.SIMULATE - 行情与自选:
get_quote/get_market_snapshot提供实时价格;get_watchlist读取用户自选股分组 - 历史数据:
get_history_orders/get_history_deals支持成交与委托历史回溯
代码示例:
from futu_client import FutuClient client = FutuClient() pos = client.get_positions() # 当前持仓 acc = client.get_account_info() # 账户资金 client.close()
显著优点
1. 官方封装可信度高:底层依赖富途官方 futu-api SDK,接口与券商系统直连,延迟低、数据实时性强
2. 多市场统一接口:HK(港股)、US(美股)、SH/SZ(沪深)代码前缀标准化,便于跨市场策略编写
3. 模拟交易隔离:内置 SIMULATE 环境,策略回测与实盘开关明确分离,降低误操作风险
4. Pandas 原生支持:返回 DataFrame,与量化分析生态(NumPy、pandas-ta 等)无缝衔接
潜在缺点与局限性
- 本地化依赖重:必须常驻运行 FutuOpenD(C++ 本地程序),跨平台部署(Docker/云服务器)复杂
- 账户与权限门槛:真实交易需开通富途证券账户并申请 API 权限,部分地区受限
- 功能边界明确:仅覆盖富途支持的标的,衍生品、期权等高级品种支持有限;无组合交易、算法单等高级功能
- 网络单点:依赖本地 11111 端口,断连或防火墙拦截即失效
适合人群
- 已有富途证券账户的量化个人投资者
- 需要自动化跟踪港股/美股/沪深持仓及执行条件单的策略交易者
- 熟悉 Python 与 pandas,追求轻量级交易脚本而非全功能回测框架的用户
常规风险
- 本地网关安全风险:FutuOpenD 以明文或弱加密本地通信,若部署在共享环境,需限制 11111 端口访问
- 实盘误操作:代码中硬编码
TrdEnv.REAL或逻辑错误可能导致非预期下单,务必先用SIMULATE验证 - 依赖更新滞后:富途 API 升级时第三方封装可能跟进延迟,需锁定
futu-api版本 - 合规与监管:自动化交易可能触发券商风控或监管报备要求,用户需自行确认当地法规