mcpField
F
futu

futu

github.com/starchild-ai-agent其他3071 次安装6 天前更新
代码仓库

关于 futu

futu 是通过本地运行的 OpenD 网关访问富途账户和行情数据的命令行技能。它支持选择模拟或实盘账户,券商凭据保留在 OpenD 中。

主要功能

  1. 01通过套接字连接 OpenD
  2. 02查询账户与持仓
  3. 03获取报价和历史数据
  4. 04查看订单与成交记录
  5. 05提交模拟或实盘订单

适用场景

  1. 01检查 OpenD 是否可连接
  2. 02查看账户持仓和订单
  3. 03查询指定格式代码的报价
  4. 04提交整股订单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill futu

安装后在 Claude Code 中输入/futu确认已加载。

附带文件scripts/futu_cli.py

详细介绍

这是什么 — 请先读这里

🖥️ 本地网关代理。 富途并不提供公开的云端 API。你需要在一台机器上运行名为 OpenD 的网关程序,用你的富途账号登录它,而这个 CLI 会通过本地 socket(默认 127.0.0.1:11111)与 OpenD 通信。你的富途凭据保存在 OpenD 内部——它们绝不会到达这个 skill。

⚠️ 这意味着默认情况下它无法从 Starchild 容器中运行,因为 OpenD 运行在你的电脑上,而容器的 127.0.0.1 是容器自身(另一台机器)。有两种使用方式:

  1. 本地运行 —— 在你自己的电脑上运行 OpenD + 这个脚本,且该电脑上已登录 OpenD。(最简单)
  2. 打通网络 —— 在容器可访问的主机上运行 OpenD,然后设置 FUTU_HOST/FUTU_PORT 指向它(网络/防火墙/安全由你自己负责——将 OpenD 暴露到 localhost 之外有风险;请严格绑定)。

如果 status 报告网关不可达,原因就在这里。

设置 OpenD(一次性)

  1. 从 Futu OpenAPI 页面(富途牛牛 / moomoo → OpenAPI)下载适用于你操作系统的 OpenD。它提供 GUI 应用和命令行版本。
  2. 你需要一个已入金/已开通的富途或 moomoo 账户,并已启用 OpenAPI 权限(如需要请在 App 内申请)。
  3. 启动 OpenD,用你的富途凭据(+ 手机/2FA)登录。确认它监听的 API 端口(默认 11111)。
  4. 使用此 skill 时请保持 OpenD 运行。若要进行模拟交易,请确保你的账户拥有 模拟 / paper (SIMULATE) 子账户。

配置(.env)

这里没有密钥——只有网关位置 +(实盘所需的)交易密码 MD5。请通过安全输入申请。

变量必填说明
FUTU_HOST否OpenD 主机,默认 127.0.0.1
FUTU_PORT否OpenD 端口,默认 11111
FUTU_TRD_MARKET否交易市场筛选:HK(默认)/ US / CN / SG
FUTU_SECURITY_FIRM否FUTUSECURITIES(默认)、FUTUINC、FUTUSG
FUTU_ACC_ID否固定指定账户 id;0 = 按环境自动解析
FUTU_TRADE_PWD_MD5仅实盘你的富途交易密码的 MD5(解锁实盘订单所需)

模拟还是实盘由每个账户的 trd_env 决定(SIMULATE = 模拟,REAL = 实盘);--profile 选择使用哪一个,如果 CLI 找不到匹配的账户,就会安全失败。

用法

pip install futu-api(首次运行)。JSON 输出。默认 profile 为 paper。

python skills/futu/scripts/futu_cli.py status                 # checks OpenD reachability + resolves account
python skills/futu/scripts/futu_cli.py account
python skills/futu/scripts/futu_cli.py positions
python skills/futu/scripts/futu_cli.py orders [--executions]
python skills/futu/scripts/futu_cli.py quote --symbol HK.00700
python skills/futu/scripts/futu_cli.py history --symbol US.AAPL --period 1d --limit 90
# place (paper SIMULATE): qty in whole shares; market or limit
python skills/futu/scripts/futu_cli.py place --symbol HK.00700 --side buy --qty 100 --type limit --limit-price 350
python skills/futu/scripts/futu_cli.py cancel --order-id <id>
# live (REAL): needs FUTU_TRADE_PWD_MD5 in .env AND --confirm-live
python skills/futu/scripts/futu_cli.py --profile live --confirm-live place --symbol HK.00700 --side buy --qty 100

代码格式是强制的: <MARKET>.<code> —— HK.00700、US.AAPL、SH.600519、SZ.000001。周期:1m 5m 15m 30m 1h 1d 1w 1M。

注意事项

  • “OpenD gateway not reachable” = OpenD 未运行、未登录、在另一台机器上,或主机/端口错误。请重新阅读“这是什么”一节。
  • 富途要求 --qty 为整股;不支持名义金额订单。
  • 实盘订单需要 FUTU_TRADE_PWD_MD5(你的交易密码的 MD5 哈希,而不是密码本身)。CLI 仅在实盘时解锁交易上下文;模拟盘永远不会解锁。
  • 港股/A 股每手股数限制适用——碎股数量可能会被交易所拒绝。

评论

支持 Markdown