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

ParameterTypeRequiredDescription
from_accountutility::string_tYesSource account ID
to_accountutility::string_tYesDestination account ID
transfersconst value &YesPosition transfer list as JSON array
marketutility::string_tNoMarket: 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

ParameterTypeRequiredDescription
since_dateutility::string_tNoStart date, format YYYY-MM-DD
to_dateutility::string_tNoEnd date, format YYYY-MM-DD
statusutility::string_tNoStatus filter
marketutility::string_tNoMarket filter
symbolutility::string_tNoSymbol code filter
account_idutility::string_tNoAccount 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

ParameterTypeRequiredDescription
transfer_idutility::string_tYesTransfer record ID
account_idutility::string_tNoSource 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

ParameterTypeRequiredDescription
since_dateutility::string_tNoStart date, format YYYY-MM-DD
to_dateutility::string_tNoEnd date, format YYYY-MM-DD
statusutility::string_tNoStatus filter
marketutility::string_tNoMarket filter
symbolutility::string_tNoSymbol code filter
account_idutility::string_tNoAccount 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;

Did this page help you?