获取订单信息

大约 8 分钟

get_orders 获取订单列表

value get_orders(string account, SecType sec_type = SecType::ALL,
Market market = Market::ALL,
string symbol = "", long start_time = -1, long end_time = -1, int limit = 100,
bool is_brief = false, const value &states = value::array(),
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
SegmentType seg_type = SegmentType::SEC)

说明

获取账户的订单历史,包括所有状态、各个证券类型的订单,可以传参数进行筛选

参数

参数名类型是否必填描述
accountstrNo账户id,若不填则使用 client_config 中的默认 account
sec_typeSecTypeNo证券类型, 可以使用 tigerapi/enums.h SecType 下的常量
marketMarketNo所属市场,可以使用 tigerapi/enums.h Market 下的常量
symbolstrNo证券代码
start_timestr或intNo起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤)
end_timestr或intNo截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤)
limitintNo每次获取订单的数量,默认:100, 最大值:300
is_briefboolNo】是否返回精简的订单数据
statusOrderStatusNo】订单状态,可以使用 tigerapi/enums.h OrderStatus 的枚举
sort_byOrderSortByNo】排序和起止时间作用字段,LATEST_CREATED/LATEST_STATUS_UPDATED; 默认值:LATEST_CREATED
secret_keystrNo机构交易员密钥,机构用户专有,需要在client_config中配置

返回

value

示例

#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"

using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;

/**
 * 调用交易接口
 */
class TestTradeClient {
public:
    static void test_get_orders(const std::shared_ptr<TradeClient>& trade_client) {
        value res = trade_client->get_orders();
        cout << "orders: " << res << endl;
    }

    static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
        TestTradeClient::test_get_orders(trade_client);
    }
};

int main(int argc, char *args[]) {
    cout << "Tiger Api main" << endl;
    /************************** set config **********************/
    ClientConfig config = ClientConfig();

    config.private_key = "xxxxxx your private key string xxxxxxxx";
    config.tiger_id = "your tiger id";
    config.account = "your account";



    /**
     * 使用封装后的交易接口 TradeClient
     */
    std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
    TestTradeClient::test_trade(trade_client);


    return 0;
}

返回示例

[
    {
    "account": "402901",
    "action": "BUY",
    "algoStrategy": "LMT",
    "attrDesc": "",
    "avgFillPrice": 0,
    "canCancel": false,
    "canModify": false,
    "commission": 0,
    "currency": "USD",
    "discount": 0,
    "filledQuantity": 0,
    "id": 29404332116673536,
    "identifier": "AAPL",
    "latestTime": 1673313004000,
    "limitPrice": 100,
    "liquidation": false,
    "market": "US",
    "name": "Apple Inc",
    "openTime": 1673236450000,
    "orderId": 1276,
    "orderType": "LMT",
    "outsideRth": true,
    "realizedPnl": 0,
    "remark": "Order is expired",
    "secType": "STK",
    "source": "OpenApi",
    "status": "Cancelled",
    "symbol": "AAPL",
    "timeInForce": "DAY",
    "totalQuantity": 1,
    "updateTime": 1673313004000,
    "userMark": ""
    },
    {
    "account": "402901",
    "action": "BUY",
    "algoStrategy": "LMT",
    "attrDesc": "",
    "avgFillPrice": 0,
    "canCancel": false,
    "canModify": false,
    "commission": 0,
    "currency": "USD",
    "discount": 0,
    "filledQuantity": 0,
    "id": 29404332093867008,
    "identifier": "AAPL",
    "latestTime": 1673236453000,
    "limitPrice": 100,
    "liquidation": false,
    "market": "US",
    "name": "Apple Inc",
    "openTime": 1673236450000,
    "orderId": 1275,
    "orderType": "LMT",
    "outsideRth": true,
    "realizedPnl": 0,
    "secType": "STK",
    "source": "OpenApi",
    "status": "Cancelled",
    "symbol": "AAPL",
    "timeInForce": "DAY",
    "totalQuantity": 1,
    "updateTime": 1673236453000,
    "userMark": ""
    }
]

get_order 获取指定订单

Order get_order(long id);

说明

通过id获取指定的订单

参数

参数名类型是否必填描述
idintyes在提交订单后返回的全局订单id

返回

Order对象

具体字段含义详见 Order 对象

示例

#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"

using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;

/**
 * 调用交易接口
 */
class TestTradeClient {
public:
    static void test_get_order(const std::shared_ptr<TradeClient>& trade_client) {
//        Contract contract = stock_contract("AAPL", "USD");
//        Order order = limit_order(contract, "BUY", 1, 100.0);
//        trade_client->place_order(order);
        Order my_order = trade_client->get_order(29270263515317248);
        cout << "order : " << my_order.to_string() << endl;
    }

    static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
        TestTradeClient::test_get_order(trade_client);
    }
};

int main(int argc, char *args[]) {
    cout << "Tiger Api main" << endl;
    /************************** set config **********************/
    ClientConfig config = ClientConfig();

    config.private_key = "xxxxxx your private key string xxxxxxxx";
    config.tiger_id = "your tiger id";
    config.account = "your account";



    /**
     * 使用封装后的交易接口 TradeClient
     */
    std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
    TestTradeClient::test_trade(trade_client);


    return 0;
}

返回示例

{
    "account":"402901",
    "action":"BUY",
    "algoStrategy":"LMT",
    "attrDesc":"",
    "avgFillPrice":0,
    "canCancel":false,
    "canModify":false,
    "commission":0,
    "currency":"USD",
    "discount":0,
    "filledQuantity":0,
    "id":29143867257783296,
    "identifier":"AAPL",
    "latestTime":1671330602000,
    "limitPrice":100,
    "liquidation":false,
    "market":"US",
    "name":"Apple Inc",
    "openTime":1671249261000,
    "orderId":1176,
    "orderType":"LMT",
    "outsideRth":true,
    "realizedPnl":0,
    "remark":"Order is expired",
    "secType":"STK",
    "source":"OpenApi",
    "status":"Inactive",
    "symbol":"AAPL",
    "timeInForce":"DAY",
    "totalQuantity":1,
    "updateTime":1671330602000,
    "userMark":""
}

get_active_orders 获取待成交的订单列表

value get_active_orders(string account, SecType sec_type = SecType::ALL,
                        Market market = Market::ALL,
                        string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
                        OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
                        SegmentType seg_type = SegmentType::SEC)

说明

获取待成交的订单列表,可能会包含部分成交但未成交部分依然处于待成交状态的订单。

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecTypeno证券类型,可以使用 tigerapi/enums.h SecType 下的常量
marketMarketno所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US
symbolstrno证券代码
start_timestr或intno开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
end_timestr或intno截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
secret_keystrno机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置

返回

list

列表中的每个元素是一个 Order 对象(tigeropen.trade.domain.order.Order), 具体字段含义详见Order对象

示例

#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"

using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;

/**
 * 调用交易接口
 */
class TestTradeClient {
public:
    static void test_get_active_orders(const std::shared_ptr<TradeClient>& trade_client) {
        value res = trade_client->get_active_orders();
        cout << "active orders: " << res << endl;
    }

    static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
        TestTradeClient::test_get_active_orders(trade_client);
    }
};

int main(int argc, char *args[]) {
    cout << "Tiger Api main" << endl;
    /************************** set config **********************/
    ClientConfig config = ClientConfig();

    config.private_key = "xxxxxx your private key string xxxxxxxx";
    config.tiger_id = "your tiger id";
    config.account = "your account";



    /**
     * 使用封装后的交易接口 TradeClient
     */
    std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
    TestTradeClient::test_trade(trade_client);


    return 0;
}

返回示例

同 get_orders


get_cancelled_orders 获取已撤销的订单列表

value get_cancelled_orders(string account, SecType sec_type = SecType::ALL,
                        Market market = Market::ALL,
                        string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
                        OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
                        SegmentType seg_type = SegmentType::SEC)

说明

获取已撤销的订单列表。包括主动撤销、系统撤销、已失效的订单等。可能会包含部分成交但未成交部分被撤销的订单。

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecTypeno证券类型,可以使用 tigerapi/enums.h SecType 下的常量
marketMarketno所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US
symbolstrno证券代码
start_timestr或intno开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
end_timestr或intno截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
secret_keystrno机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置

返回

list

list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象

返回示例

同 get_orders


get_filled_orders 获取已成交的订单列表

value get_filled_orders(string account, SecType sec_type = SecType::ALL,
                        Market market = Market::ALL,
                        string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
                        OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
                        SegmentType seg_type = SegmentType::SEC)

说明 获取已成交订单列表

订单可能会有部分成交的状态,此时订单状态比较特殊,有可能是HELD,CANCELLED,EXPIRED,REJECTED的任意一种状态,如需查询部分成交的订单,请参考FAQ-交易-如何判断订单是部分成交状态

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecTypeno证券类型,可以使用 tigerapi/enums.h SecType 下的常量
marketMarketno所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US
symbolstrno证券代码
start_timestr或intno开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
end_timestr或intno截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
secret_keystrno机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置

返回list

list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象

示例

返回示例

同 get_orders


get_transactions 获取订单成交记录

说明
获取已成交订单的详细成交记录(仅适用于综合/模拟账户)。

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
order_idintno下单后返回的全局订单ID,非本地订单ID
symbolstrno标的代码。使用symbol查询时sec_type为必传
sec_typeSecTypeno证券类型, 可以使用 tigerapi/enums.h SecType 下的常量
start_timestr或intno订单最后更新时间的起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00
end_timestr或intno订单最后更新时间的截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00
limitintno每次获取记录的数量,最多 100,默认为 20
expirystrno过期日(适用于期权)。 形式 'yyyyMMdd', 比如 '220121'
strikefloatno行权价(适用于期权)。如 100.5
put_callstrno看涨或看跌(适用于期权)。'PUT' 或 'CALL'

返回list 列表中每个元素为 Transaction 对象,具体字段含义见 Transaction

示例

返回示例

Transaction({'account': 111111, 'order_id': 20947299719447552, 'contract': AAPL/STK/USD, 'id': 20947300069016576, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 132.25, 'filled_amount': 132.25, 'transacted_at': '2020-12-23 17:06:54'}), 

Transaction({'account': 111111, 'order_id': 19837920138101760, 'contract': AAPL/STK/USD, 'id': 19837920740508672, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 116.21, 'filled_amount': 116.21, 'transacted_at': '2020-09-16 18:02:00'})]
        
上次编辑于: