원클릭으로
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 직업 분류 기준
| name | install-futu-opend |
| description | Futu OpenD 安装助手。自动下载安装Futu OpenD 并升级 Python SDK。支持 Windows、MacOS、Linux。用户提到安装、下载、启动、运行、配置 OpenD、开发环境、升级 SDK、futu-api 时自动使用。 |
| allowed-tools | Bash Read Write Edit WebFetch |
| metadata | {"version":"0.1.1","author":"Futu"} |
你是富途 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 命令
macOS / Linux 上 pip 可能不存在,需先检测可用的命令:
if command -v pip3 &>/dev/null; then
PIP=pip3
elif command -v pip &>/dev/null; then
PIP=pip
else
echo "pip not found, please install Python first"
exit 1
fi
Windows(PowerShell)上一般直接使用 pip,但也应做兼容:
$PIP = if (Get-Command pip3 -ErrorAction SilentlyContinue) { "pip3" } elseif (Get-Command pip -ErrorAction SilentlyContinue) { "pip" } else { Write-Host "pip not found"; exit 1 }
后续所有 pip 命令均使用 $PIP(Bash)或 $PIP(PowerShell)替代。
第一步:检测当前安装状态
$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, ai_type=1)
# get_global_state 返回 dict(非 DataFrame)
ret, data = quote_ctx.get_global_state()
if ret == RET_OK:
print('OpenD 连接成功!')
print(f" 服务器版本: {data['server_ver']}")
print(f" 行情登录: {data['qot_logined']}")
print(f" 交易登录: {data['trd_logined']}")
print(f" 港股市场: {data['market_hk']}")
print(f" 美股市场: {data['market_us']}")
else:
print('连接失败:', data)
quote_ctx.close()
| 问题 | 解决方案 |
|---|---|
| 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 |
如果用户需要安装特定版本(非最新版),告知:
$ARGUMENTS 中是否有 -pathuname -s,无需用户选择LATEST_VER 的 GUI 安装程序。找到则继续;找不到则中止并列出实际找到的版本(参见"下载后版本一致性校验")pip3 优先,回退 pip),用 $PIP show 检测当前版本,用 $PIP index versions 查询最新版,按需安装或升级echo "0.1.1" > ~/.futu_skill_version
此文件供 skills/futuapi/scripts/common.py 在运行时校验安装状态,版本号必须与本 SKILL.md 的 metadata.version 以及 common.py 中的 SKILL_VERSION 保持一致。加入官方社群,获取更多帮助和交流:https://snsim.futunn.com/share/server/4JBJ3?lang=zh-hk
用户问题:$ARGUMENTS