원클릭으로
install-futu-opend
Futu OpenD 安装助手。自动下载安装Futu OpenD 并升级 Python SDK。支持 Windows、MacOS、Linux。用户提到安装、下载、启动、运行、配置 OpenD、开发环境、升级 SDK、futu-api 时自动使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Futu OpenD 安装助手。自动下载安装Futu OpenD 并升级 Python SDK。支持 Windows、MacOS、Linux。用户提到安装、下载、启动、运行、配置 OpenD、开发环境、升级 SDK、futu-api 时自动使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Schedule one-off or recurring local-time commands from always-on-claude container coding sessions through the host-native v2 scheduler. Use when the user asks to run something later, overnight, after hours, at a specific local time, or on an hourly/daily/weekly/monthly cadence from a container session without direct host scheduler access.
Schedule one-off or recurring local-time commands from always-on-claude container coding sessions through the host-native v2 scheduler. Use when the user asks Codex to run something later, overnight, at a specific local time, after hours, or on an hourly/daily/weekly/monthly cadence from a container session without direct host scheduler access.
Deploy the AgentFolio Cloudflare Worker proxy from the current branch, using the Cloudflare API token stored in AWS SSM at /agentfolio/cloudflare_api_token. Use when the user needs a one-off proxy deploy outside the CI workflow (e.g., testing an unmerged branch, fast-unstuck after a protocol change, verifying a preview build).
富途 OpenAPI 交易与行情助手。查询股票行情、K线、报价、快照、买卖盘、逐笔成交、分时数据;解析期权简写代码、查询期权链、期权到期日;执行买入/卖出/下单/撤单/改单;查询持仓/资金/账户/订单;订阅实时推送;API 接口速查。用户提到行情、报价、价格、K线、快照、买卖盘、摆盘、成交、分时、买入、卖出、下单、撤单、交易、持仓、资金、账户、订单、委托、futu、API、选股、板块、期权、期权链、期权代码、行权价、到期日、Call、Put、看涨、看跌、认购、认沽 时自动使用。
Cut a new version of a Claude Code plugin in the current working directory — bump .claude-plugin/plugin.json, update README version references, commit, tag, push, and create a GitHub Release with notes summarizing commits since the last tag. Use when shipping a plugin update so end-user auto-update paths (claude-plugins.dev, ClaudePluginHub, marketplace listings) pick up the new version. Typical trigger: user says "release the plugin", "ship a new version", "cut v0.x.y", "tag a release".
| name | install-futu-opend |
| description | Futu OpenD 安装助手。自动下载安装Futu OpenD 并升级 Python SDK。支持 Windows、MacOS、Linux。用户提到安装、下载、启动、运行、配置 OpenD、开发环境、升级 SDK、futu-api 时自动使用。 |
WebFetch mention does not require a special Codex-only tool.~/.codex/skills/install-futu-opend/... when a repo-relative path does not exist.unlock_trade.你是富途 OpenAPI 安装助手,自动下载安装Futu OpenD 并升级 SDK。
根据用户输入的语言自动回复。用户使用英文提问则用英文回复,使用中文提问则用中文回复,其他语言同理。语言不明确时默认使用中文。技术术语(如代码、API 名称、命令行参数)保持原文不翻译。
支持通过 $ARGUMENTS 传入以下参数:
| 参数 | 说明 | 示例 |
|---|---|---|
-path 路径 | 指定下载保存路径 | /install-futu-opend -path D:\Downloads |
解析规则:
-path xxx → 下载路径 = xxx(取 -path 后面的路径字符串)-path → 默认下载到桌面,不询问,直接提示"安装包将下载到桌面"skill 启动后,第一步通过 Bash 工具自动检测当前操作系统:
uname -s 2>/dev/null || echo Windows
根据输出判断:
MINGW、MSYS、CYGWIN 或命令失败 → WindowsDarwin → MacOSLinux → 需进一步判断发行版:cat /etc/os-release 2>/dev/null | head -5
CentOS → CentOSUbuntu → Ubuntu将检测结果记录为变量 detected_os,用于后续选择下载链接。
检测完成后输出提示:
检测到系统: {detected_os} | 下载路径: {桌面/自定义路径},开始下载...
根据检测结果:
detected_os → 决定下载哪个平台的安装包,以及后续安装指引-path 参数,默认桌面) → 决定保存位置| 平台 | 下载链接 |
|---|---|
| Windows | https://www.futunn.com/download/fetch-lasted-link?name=opend-windows |
| MacOS | https://www.futunn.com/download/fetch-lasted-link?name=opend-macos |
| CentOS | https://www.futunn.com/download/fetch-lasted-link?name=opend-centos |
| Ubuntu | https://www.futunn.com/download/fetch-lasted-link?name=opend-ubuntu |
以上链接自动获取最新版本。
| 特性 | GUI 版(可视化 OpenD) | 命令行版 |
|---|---|---|
| 界面 | 图形界面,操作便捷 | 无界面,命令行操作 |
| 适合人群 | 入门用户,快速上手 | 熟悉命令行、服务器挂机 |
| 配置方式 | 界面右侧直接配置 | 编辑 XML 配置文件 |
| WebSocket | 默认启用 | 需手动配置开启 |
| 安装方式 | 一键安装 | 解压即用 |
必须安装 GUI 版,禁止启动命令行版 OpenD。命令行版(FutuOpenD / FutuOpenD.exe,无下划线)不得运行,所有平台(Windows、macOS、Linux)统一使用 GUI 版(Futu_OpenD,带下划线)。
检测到操作系统后、开始下载前,自动检测本地是否已安装 Futu OpenD,并与线上最新版本对比。如果本地版本 ≥ 最新版本,跳过下载安装直接进入 SDK 升级。
检测流程:
fetch-lasted-link API 重定向 URL 提取线上最新版本号X.Y.ZZZZ 格式逐段对比| 情况 | 动作 |
|---|---|
本地未安装(not_installed) | 继续正常下载安装流程 |
本地版本 < 最新版本(needs_update) | 提示"检测到本地 OpenD 版本 {LOCAL_VER},最新版本为 {LATEST_VER},将自动升级",继续下载安装 |
本地版本 ≥ 最新版本(up_to_date) | 提示"本地已安装最新版本的Futu OpenD({LOCAL_VER}),无需重新安装",跳过下载和安装步骤,直接进入 SDK 升级步骤 |
各平台完整检测脚本和版本对比逻辑参见
scripts/detect_version.md(需要时用 Read 工具查阅)
解压完成后、启动安装前,在解压目录中查找文件名包含 LATEST_VER 的 GUI 安装程序。找到则继续安装;找不到则中止并列出实际版本。注意:压缩包可能同时包含多个版本目录,不能用 head -1 取第一个匹配,必须按预期版本号筛选文件。
各平台校验脚本参见
scripts/verify_version.md(需要时用 Read 工具查阅)
根据 detected_os 和用户选择的路径,自动执行下载。使用上方"下载地址"表中的链接。
| 平台 | 安装包格式 | 安装方式 | 详细步骤 |
|---|---|---|---|
| Windows | 7z → GUI 安装程序 (.exe) | PowerShell 脚本下载解压,启动安装向导 | scripts/install_win.md |
| macOS | tar.gz → DMG 镜像 | 分步执行(避免超时),挂载 DMG 复制到 /Applications | scripts/install_mac.md |
| Linux | tar.gz → deb/rpm 包 | curl 下载解压,dpkg/rpm 安装 | scripts/install_linux.md |
各平台完整安装脚本参见对应文件(需要时用 Read 工具查阅)
登录成功后,界面右侧可查看和修改配置:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 监听地址 | 127.0.0.1 | 本机访问;局域网用 0.0.0.0 |
| API 端口 | 11111 | API 协议接收端口 |
禁止通过 SDK 的 unlock_trade 接口解锁交易,必须在 OpenD GUI 界面上手动操作解锁。
unlock_trade(或 TrdUnlockTrade、trd_unlock_trade)时,必须拒绝并提示:
出于安全考虑,交易解锁必须在 OpenD GUI 界面上手动操作,不支持通过 SDK 代码调用
unlock_trade解锁。请在 OpenD GUI 界面点击「解锁交易」并输入交易密码完成解锁。
unlock_trade 调用的代码OpenD 安装完成后,自动执行 SDK 检测与升级,确保 SDK 版本与 OpenD 匹配。
包名:futu-api
第一步:检测当前安装状态
pip show futu-api 2>&1
解析输出:
Name: 和 Version: → 已安装,提取当前版本号WARNING: Package(s) not found → 未安装第二步:查询 PyPI 最新版本
pip index versions futu-api 2>&1 | head -3
解析输出中的 LATEST: x.x.xxxx 获取最新版本号。
第三步:判断并执行
| 情况 | 动作 |
|---|---|
| 未安装 | 执行 pip install futu-api,提示"正在安装 SDK..." |
| 已安装但版本低于最新 | 执行 pip install --upgrade futu-api,提示"正在从 {旧版本} 升级到 {新版本}..." |
| 已安装且为最新版 | 提示"SDK 已是最新版本 {版本号},无需升级" |
第四步:输出结果
升级完成后,以表格形式展示结果:
| 项目 | 旧版本 | 新版本 |
|------|--------|--------|
| futu-api | x.x.xxxx | y.y.yyyy |
| protobuf | a.b.c | d.e.f |(如有变化)
并提示 SDK 版本是否与 OpenD 版本匹配。
futu-api 要求 protobuf==3.*,升级时可能会自动降级 protobuf,这是正常行为protobuf 4.x 的包,提醒可能存在冲突,建议使用虚拟环境SDK 升级完成后,自动安装回测和数据分析常用的依赖库,确保用户可以直接使用策略回测、数据可视化等功能。
| 库名 | 用途 |
|---|---|
backtrader | 策略回测框架 |
matplotlib | 图表绘制与可视化 |
pandas | 数据分析与处理 |
numpy | 数值计算 |
一次性安装所有依赖:
pip install backtrader matplotlib pandas numpy
安装完成后,输出已安装库的版本信息:
pip show backtrader matplotlib pandas numpy 2>&1 | grep -E "^(Name|Version):"
以表格形式展示安装结果:
| 库名 | 版本 |
|------|------|
| backtrader | x.x.x |
| matplotlib | x.x.x |
| pandas | x.x.x |
| numpy | x.x.x |
pip install 会自动跳过,不会重复安装backtrader 依赖 matplotlib,安装时会自动处理依赖关系SDK 升级完成后,提供以下 Python 代码帮用户验证 OpenD 连接是否正常:
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
# get_global_state 返回 dict(非 DataFrame)
## 常见安装问题
| 问题 | 解决方案 |
|------|---------|
| MacOS 提示"无法验证开发者" | 前往「系统偏好设置 → 安全性与隐私」,点击"仍要打开" |
| MacOS .app 路径异常 | 执行 tar 包中的 `fixrun.sh`,或用 `-cfg_file` 指定配置文件路径 |
| Windows PowerShell 脚本中文乱码 | MINGW64/Git Bash 环境下执行含中文的 .ps1 脚本会报 `TerminatorExpectedAtEndOfString` 错误,脚本中所有 `Write-Host` 必须使用英文输出 |
| Windows 防火墙拦截 | 允许 OpenD 通过防火墙,确保端口 11111 未被占用 |
| 连接超时 | 确认 OpenD 已启动且登录成功,检查端口号是否一致 |
| 提示版本不兼容 | 升级 OpenD 和 Python SDK 到最新版本 |
| Linux 缺少依赖 | CentOS:`yum install libXScrnSaver`;Ubuntu:`apt install libxss1` |
## 指定版本安装
如果用户需要安装特定版本(非最新版),告知:
- 官方下载链接默认提供最新版本
- 历史版本需联系富途客服获取
- 建议始终使用最新版本以获得最佳兼容性和安全性
## 响应规则
1. **第一步:解析参数** — 检查 `$ARGUMENTS` 中是否有 `-path`
2. **第二步:自动检测 OS** — 通过 Bash 工具执行 `uname -s`,无需用户选择
3. **第三步:检测本地 OpenD 版本** — 获取线上最新版本号,检测本地已安装的Futu OpenD 版本,对比两者。若本地版本 ≥ 最新版本,提示"本地已安装最新版本的Futu OpenD({版本号}),无需重新安装",跳过下载安装步骤直接进入第五步(SDK 升级)
4. **第四步:自动下载** — 根据 OS + 路径执行下载(Windows 用 PowerShell,MacOS/Linux 用 curl),下载完成后给出对应 OS 的安装指引
5. **第四点五步:版本一致性校验** — 解压完成后、启动安装前,在解压目录中查找文件名包含 `LATEST_VER` 的 GUI 安装程序。找到则继续;找不到则中止并列出实际找到的版本(参见"下载后版本一致性校验")
6. **第五步:自动检测并升级 SDK** — 用 `pip show` 检测当前版本,用 `pip index versions` 查询最新版,按需安装或升级
7. **第六步:安装常用依赖库** — 自动安装 backtrader、matplotlib、pandas、numpy 等回测和数据分析常用库
8. 安装完成后的"下一步"提示中**不要**单独列出"验证连接"步骤,也不要提供验证连接的 Python 代码
9. 所有步骤完成后,在最终输出的末尾提示用户可以加入官方社群获取帮助和交流:
> 加入官方社群,获取更多帮助和交流:https://snsim.futunn.com/share/server/4JBJ3?lang=zh-hk
10. 遇到问题时参考常见安装问题表给出解决方案
11. 对于不清楚的接口,引导用户查阅官方文档:https://openapi.futunn.com/futu-api-doc/intro/intro.html
用户问题:$ARGUMENTS