准备工作

大约 7 分钟

环境要求

  • 操作系统要求:
    • Windows
    • MacOS
    • Linux
  • 编程语言版本要求:c++ 11

安装C++

Mac

在 Mac 上配置 C++ 开发环境有几种选择:

  • 安装 Xcode:Xcode 是一个专为 macOS 设计的开发环境,包含 C++ 编译器。你可以从 App Store 中安装 Xcode。安装完成后,你就可以使用命令行工具来编译和运行 C++ 程序了。

  • 安装独立的 C++ 编译器:Mac 上有很多 C++ 编译器可供选择,包括 GCC 和 Clang。你可以从网上下载并安装它们。

  • 使用包管理器:像 Homebrew 或 MacPorts 这样的包管理器可以轻松地安装开源软件,包括 C++ 编译器。

Linux

在 Linux 上配置 C++ 开发环境有几种选择:

  • 安装 GCC: GCC 是一种流行的 C++ 编译器,在大多数 Linux 发行版中都已经安装。你可以使用以下命令来检查是否已安装 GCC:
g++ --version

如果没有安装,你可以使用以下命令来安装:

sudo apt-get install build-essential  # 适用于 Debian/Ubuntu 
  • 安装 Clang:Clang 是另一种流行的 C++ 编译器,可以替代 GCC。你可以使用以下命令来安装 Clang:
sudo apt-get install clang # 适用于 Debian/Ubuntu

  • 使用包管理器:像 apt 或 yum 这样的包管理器可以轻松地安装软件,包括 C++ 编译器

Windows

在 Windows 上配置 C++ 开发环境有几种选择:

  • 安装 Visual Studio:Visual Studio 是微软为 Windows 设计的开发环境,包含 C++ 编译器。你可以从微软官网下载并安装 Visual Studio。

  • 安装 MinGW:MinGW 是一种在 Windows 上使用的开源 C++ 编译器。你可以从 MinGW 官网下载并安装它。

  • 安装 Cygwin:Cygwin 是一种在 Windows 上使用的 Unix-like 环境,包含 C++ 编译器。你可以从 Cygwin 官网下载并安装

  • 使用 WSL2 (Windows Subsystem for Linux )

安装Tiger Open API C++ SDK

Linux/Mac

安装 Boost参考文档open in new window

安装方式一:使用 homebrew

brew install boost 

安装方式二:源码安装

  1. 下载源码到任意路径: https://www.boost.org/users/history/version_1_81_0.md,
    以 /usr/local/ 为例
    cd /usr/local/
    wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2
    
  2. 解压:
    tar --bzip2 -xf boost_1_81_0.tar.bz2
    
  3. 编译
    cd /usr/local/boost_1_81_0
    ./bootstrap.sh
    ./b2 headers
    ./b2
    

编译安装 cpprestsdk

cd /tmp  # 选择暂存源码的目录,此处用 /tmp,也可根据本机环境指定其他系统路径
git clone https://github.com/microsoft/cpprestsdk.git
cd cpprestsdk
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
make -j 8
make install

说明参考文档open in new window 直接通过包管理软件安装的 cpprestsdk 可能不是最新版本, 可能会有未知问题

编译安装 tigerapi sdk 源码下载: openapi-cpp-sdkopen in new window 若使用编译好的sdk,此步骤可跳过
准备工作:根据系统环境调整 CMakeLists.txt 的相关路径

  1. 进入源码目录
  2. 创建编译目录
    mkdir build
    cd build
    
  3. 编译
    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
    make -j 6
    make install
    
  4. 安装 tigerapi sdk 将头文件放入头文件路径, 如 /usr/local/include 将库文件放入库文件路径, 如 /usr/local/lib/

Windows

依赖:Visual Stodio C++ 开发环境 https://visualstudio.microsoft.com/zh-hans/ 下载安装Visual Stodio Installer,勾选 "使用C++的桌面开发"

安装 tigerapi sdk 源码output里的dll或lib为sdk编译后的库,项目配置引入后即可调用sdk。 可编译 openapi_cpp_test 项目进行 sdk 的测试

安装IDE

推荐使用 CLion 或 Visual Stodio 作为集成开发环境

注册开发者信息

使用API之前请首先点击链接访问老虎量化官网开通权限并登记开发者身份open in new window推荐使用Chrome浏览器打开

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

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

登记开发者身份需要准备的信息有:

信息是否必填说明
RSA公钥用户在API官网注册开发者时,会自动生成RSA密钥对,用户需要在本地电脑里妥善保存好私钥,防止泄露。生成的RSA公钥会提交到老虎开放平台用于接口验证。通过RSA的双向签名验证机制,防止接口请求被恶意篡改。如需变更私钥,可以在开发者注册页面重新生成。
IP白名单只有在白名单内的IP才可以访问API接口,多个IP间以 “;” 分隔
回调URL用户应用程序的回调地址,可以用于接收订单、持仓、资产的变更消息。用户也可以直接通过SDK提供的订阅接口接收回调消息

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

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

注册开发者信息成功后只会返回已成功入金的资金账号和模拟账号。如果用户的环球账号和综合账号都已成功入金,则都会返回。

开发者注册页面: 通过手机号和验证码注册即可。

开发者注册

开发者信息页面: 其中Tiger ID,实盘账户,模拟盘账号,牌照等信息需要在OpenAPI中用到。

开发者信息

注意:需要把下图中的私钥部分保存到本地并妥善保管以防泄露,如发现泄露请及时更新。 私钥不会在老虎服务端保存,用户在刷新页面前需要保存好。页面刷新后该私钥会自动消失,如私钥未保存好,可以通过重新生成按钮进行替换。

用户可根据不同SDK的调用需求保存相应类型的私钥,C++ 使用PKCS#1格式私钥。若使用SDK遇到问题时,注意先检查私钥的格式是否正确。

RSA密钥

购买行情(可选)

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

个人客户

有两种购买方式:

1、登录个人中心open in new window购买行情

行情购买

2、在手机端APP Tiger Trade APP - 我的 - 行情权限 - OpenAPI权限 中进行购买

机构客户

机构中心-行情权限 中进行购买

行情购买

API 相关配置

在使用API之前,你需要完成API接口调用的相关配置。具体的配置信息(包括tigerId、账户、许可证、privateKey和其他配置,首选tiger_openapi_config.properties文件的值)可以在开发者信息页面找到。

 ClientConfig config = ClientConfig(true);

    /**
    * 可以从我们的开发者页面信息里获取相关的配置字段:
    * https://developer.itigerup.com/profile
    */
    config.private_key = "你的私钥内容";
    config.tiger_id = "tiger id";
    config.account = "tiger trading account id";
		config.license = "你的license";

    /**
     * 使用示例:使用封装好的行情接口 QuoteClient 查询行情权限
     */
    std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
    value result = quote_client->get_quote_permission();
    cout << result << endl;
上次编辑于: