准备工作

环境要求

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

依赖库

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

用途
cpprestsdk (C++ REST SDK)HTTP 请求和 JSON 处理
OpenSSL加密和签名
Boost基础库支持
Protobuf推送数据的序列化与反序列化

获取 SDK 并编译

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

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

# 编译
cd openapi-cpp-sdk
mkdir build && cd build
cmake ..
make

开发工具

使用 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/prepare-cpp 帮我获取持仓信息"。

注册开发者信息

使用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=20150001
account=12345678
license=TBHK
env=PROD

购买行情(可选)

我们免费提供延迟行情接口,但实时行情需要另外购买。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("/path/to/your/properties/"));

方式二:代码中直接配置

#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("TBSG");
config.lang = U("zh_CN");

ClientConfig 常用配置项介绍

// 构造函数
ClientConfig config(false, U("/path/to/your/properties/"));

// 主要属性
config.tiger_id;       // Tiger ID
config.private_key;    // 私钥
config.account;        // 资金账号
config.license;        // 牌照,如 "TBSG"
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