Position Transfer
Institutions can use the SDK to execute internal position transfers and query transfer records, as well as query external transfer records (such as DWAC, FOP, etc.).
Initiate an Internal Position Transfer
value TradeClient::transfer_position(utility::string_t from_account, utility::string_t to_account, const value &transfers, utility::string_t market)
Description
Institutional users can call this method to initiate an internal position transfer. OpenAPI access must be enabled, and the user must be authorized to transfer positions from the source account.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| from_account | utility::string_t | Yes | Source account ID |
| to_account | utility::string_t | Yes | Destination account ID |
| transfers | const value & | Yes | Position transfer list as JSON array |
| market | utility::string_t | No | Market: U("US")/U("HK") |
Return
web::json::value JSON object
Example
#include "tigerapi/trade_client.h"
#include "tigerapi/client_config.h"
using namespace TIGER_API;
using namespace web::json;
ClientConfig config(false, U("your_config_directory_path"));
TradeClient trade_client(config);
value transfers = value::array();
value item = value::object();
item[U("symbol")] = value::string(U("AAPL"));
item[U("quantity")] = value::number(100);
item[U("sec_type")] = value::string(U("STK"));
transfers[0] = item;
value result = trade_client.transfer_position(
U("100001"), U("100002"), transfers, U("US"));
ucout << result.serialize() << std::endl;Get Internal Position Transfer Records
value TradeClient::get_position_transfer_records(utility::string_t since_date, utility::string_t to_date, utility::string_t status, utility::string_t market, utility::string_t symbol, utility::string_t account_id)
Description
Query internal position transfer records for an institutional account within a specified time range (up to 90 days)
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| since_date | utility::string_t | No | Start date, format YYYY-MM-DD |
| to_date | utility::string_t | No | End date, format YYYY-MM-DD |
| status | utility::string_t | No | Status filter |
| market | utility::string_t | No | Market filter |
| symbol | utility::string_t | No | Symbol code filter |
| account_id | utility::string_t | No | Account ID |
Return
web::json::value JSON object
Example
ClientConfig config(false, U("your_config_directory_path"));
TradeClient trade_client(config);
value result = trade_client.get_position_transfer_records(
U("2024-01-01"), U("2024-03-31"));
ucout << result.serialize() << std::endl;Get Internal Position Transfer Details
value TradeClient::get_position_transfer_detail(utility::string_t transfer_id, utility::string_t account_id)
Description
Query details of a specific transfer record, including the transfer status of each underlying asset
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transfer_id | utility::string_t | Yes | Transfer record ID |
| account_id | utility::string_t | No | Source account ID |
Return
web::json::value JSON object
Example
ClientConfig config(false, U("your_config_directory_path"));
TradeClient trade_client(config);
value result = trade_client.get_position_transfer_detail(U("123456789"));
ucout << result.serialize() << std::endl;Get External Position Transfer Records
value TradeClient::get_position_transfer_external_records(utility::string_t since_date, utility::string_t to_date, utility::string_t status, utility::string_t market, utility::string_t symbol, utility::string_t account_id)
Description
Query external transfer records for an institutional account within a specified time range (up to 90 days). Supported types include DWAC, DRS, FOP, etc.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| since_date | utility::string_t | No | Start date, format YYYY-MM-DD |
| to_date | utility::string_t | No | End date, format YYYY-MM-DD |
| status | utility::string_t | No | Status filter |
| market | utility::string_t | No | Market filter |
| symbol | utility::string_t | No | Symbol code filter |
| account_id | utility::string_t | No | Account ID |
Return
web::json::value JSON object
Example
ClientConfig config(false, U("your_config_directory_path"));
TradeClient trade_client(config);
value result = trade_client.get_position_transfer_external_records(
U("2024-01-01"), U("2024-03-31"), U(""), U(""), U(""), U("100001"));
ucout << result.serialize() << std::endl;Updated about 13 hours ago
