准备工作
环境要求
- 操作系统要求:
- 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参考文档
安装方式一:使用 homebrew
brew install boost
安装方式二:源码安装
- 下载源码到任意路径: 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
- 解压:
tar --bzip2 -xf boost_1_81_0.tar.bz2
- 编译
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
说明参考文档 直接通过包管理软件安装的 cpprestsdk 可能不是最新版本, 可能会有未知问题
编译安装 tigerapi sdk 源码下载: openapi-cpp-sdk 若使用编译好的sdk,此步骤可跳过
准备工作:根据系统环境调整 CMakeLists.txt 的相关路径
- 进入源码目录
- 创建编译目录
mkdir build cd build
- 编译
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .. make -j 6 make install
- 安装 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之前请首先点击链接访问老虎量化官网开通权限并登记开发者身份,推荐使用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遇到问题时,注意先检查私钥的格式是否正确。
购买行情(可选)
我们免费提供延迟行情接口,但实时行情与历史行情权限需要另外购买。Open API的行情权限独立与APP与PC端,如果您已经购买了APP或PC行情,也需要另外购买Open API的行情权限以获得实时数据。具体购买方法如下:
个人客户
有两种购买方式:
1、登录个人中心购买行情
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;