准备工作

环境要求

  • 操作系统要求:
    • Windows
    • MacOS
    • Linux
  • 编程语言版本要求:C++14 及以上
  • 编译器要求:支持 C++14 的编译器(如 GCC 5+、Clang 3.4+、MSVC 2015+)

依赖库

C++ SDK 依赖以下第三方库:

版本要求用途
cpprestsdk (C++ REST SDK)latestHTTP 请求和 JSON 处理
OpenSSL3.x加密和签名
Boost>= 1.86基础库支持
Protobuf5.28.3推送数据的序列化与反序列化

获取 SDK 并编译

SDK 源代码托管在 GitHub:tigerfintech/openapi-cpp-sdk

git clone https://github.com/tigerfintech/openapi-cpp-sdk.git
# 安装依赖(Homebrew)
brew install cmake openssl boost cpprestsdk protobuf

# 一键编译(自动处理依赖版本)
cd openapi-cpp-sdk
chmod +x scripts/build_linux_mac.sh
./scripts/build_linux_mac.sh

编译产物位于 output/Mac/Debug/output/Mac/Release/

开发工具

使用 AI 编程工具可以自动阅读 Tiger OpenAPI 文档,通过自然语言描述需求即可生成可运行的 SDK 代码,极大降低上手门槛。

使用方式

  1. 按上述步骤完成 SDK 编译
  2. 将配置文件 tiger_openapi_config.properties 放入项目目录
  3. Tiger OpenAPI 文档 添加为 AI 工具的上下文(参考下方各工具说明)
  4. 用自然语言描述需求,AI 会阅读文档并生成对应的 SDK 代码

例如,你可以直接说:"获取 AAPL 最近 30 天的日 K 线数据" 或 "下一个 NVDA 的限价买单",AI 会参考文档自动生成完整代码。

Cursor / Trae / Windsurf

在项目中添加文档作为上下文:

  • Cursor:在 Settings > Docs 中添加 Tiger OpenAPI 文档地址,对话时 AI 会自动检索
  • Trae:将文档链接或关键页面添加到 Knowledge Base,AI 会基于文档生成代码
  • Windsurf:通过 @docs 引用在线文档,或将文档内容放入项目目录供 AI 读取

VS Code + GitHub Copilot

在 VS Code 中安装 GitHub Copilot 扩展,通过 Chat 面板与 AI 对话生成代码。可使用 #file 引用项目中的文档或代码文件作为上下文。

Claude Code / Kiro

终端 AI 工具,启动后可直接在对话中引用文档链接,AI 会抓取并理解文档内容:

# 安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 在项目目录启动
cd openapi-cpp-sdk
claude

启动后,将文档链接发给 AI 即可,例如:"参考 https://docs.itigerup.com/docs/accounts-cpp#get_positions 帮我获取持仓信息"。

注册开发者信息

使用 API 之前请首先开通权限, 个人用户访问 API 官网登记开发者身份
推荐使用 Chrome 浏览器打开

注意:开通 Open API 需要在老虎开户并入金,同时会要求开发人员和用户签署 API 授权协议

随后需要在此页面中完成开发者信息的登记,请填入并提交您的信息。

注册成功后您可在此页面中获取以下信息:

  • tiger_id: 开放平台为每一位开发者分配的唯一 ID,用来标识一个开发者,所有 API 接口的调用都会用到 tiger_id。
  • account: 用户的资金账号,在请求交易相关接口时需要用到资金账号。具体分为环球账号、综合账号与模拟账号,
    • 环球资金账号(Global):以大写字母 U 开头,如:U12300123,
    • 综合资金账号(Standard):为一串较短的数字(5 到 10 位),如:51230321,
    • 模拟资金账号(Paper):17 位数字,如:20191106192858300,

注意:需要把私钥部分保存到本地并妥善保管以防泄露,如发现泄露请及时更新。 私钥不会在老虎服务端保存,用户在刷新页面前需要保存好。

C++ SDK 使用的私钥为 PKCS#8 格式。若使用 SDK 遇到问题时,注意先检查私钥的格式是否正确。

生成的配置文件 tiger_openapi_config.properties 文件内容格式如下,account 为默认账号,可以在实盘资金账号和模拟盘账号之间替换。如果是机构账户,还需要配置 secret_key (需在机构中心获取).

private_key_pk8=MIICeAIBADANBgkqhkiG9w0BAQ...
tiger_id=YOUR_TIGER_ID
account=12345678
license=TBHK
env=PROD

license 为账户所属的牌照主体,取值为 TBNZ / TBSG / TBHK / TBAU / TBUS,请使用下载到的配置文件中的实际值;下文示例统一使用 TBHK

购买行情(可选)

我们免费提供延迟行情接口,但实时行情需要另外购买。Open API 的行情权限独立与 APP 与 PC 端,如果您已经购买了 APP 或 PC 行情,也需要另外购买 Open API 的行情权限以获得实时数据。

API 相关配置

在正式请求接口前,需要完成 API 接口调用的相关配置。

方式一:使用配置文件(推荐)

在开发者网站导出配置文件 tiger_openapi_config.properties,放入合适的系统路径。然后通过 ClientConfig 构造函数传入路径:

#include "tigerapi/client_config.h"

using namespace TIGER_API;

// 通过配置文件初始化(推荐)
ClientConfig config(false, U("your_config_directory_path"));

方式二:代码中直接配置

#include "tigerapi/client_config.h"

using namespace TIGER_API;

ClientConfig config(U("your_tiger_id"), U("your_private_key"), U("your_account"));
config.license = U("TBHK");
config.lang = U("zh_CN");

ClientConfig 常用配置项介绍

// 构造函数
ClientConfig config(false, U("your_config_directory_path"));

// 主要属性
config.tiger_id;       // Tiger ID
config.private_key;    // 私钥
config.account;        // 资金账号
config.license;        // 牌照,取值 TBNZ / TBSG / TBHK / TBAU / TBUS,需与账户一致
config.lang;           // 语言,如 "zh_CN"、"en_US"
config.secret_key;     // 机构账户密钥

// 推送相关配置
config.use_full_tick;    // 是否使用完整 tick 数据,默认 false
config.send_interval;    // 发送间隔(毫秒),默认 10000
config.receive_interval; // 接收间隔(毫秒),默认 10000

What’s Next

Did this page help you?