获取订单信息
get_orders 获取订单列表
TradeClient.get_orders(account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None, end_time=None, limit=100, is_brief=False, states=None)
说明
获取账户的订单历史,包括所有状态、各个证券类型的订单,可以传参数进行筛选
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | No | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecurityType | No | 证券类型, 可以使用 tigeropen.common.consts.SecurityType 下的常量 |
market | Market | No | 所属市场,可以使用 tigeropen.common.consts.Market 下的常量 |
symbol | str | No | 证券代码 |
start_time | str或int | No | 起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤) |
end_time | str或int | No | 截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤) |
limit | int | No | 每次获取订单的数量, 默认:100, 最大值:300 |
is_brief | bool | No | 【】是否返回精简的订单数据 |
status | OrderStatus | No | 【】订单状态,可以使用 tigeropen.common.consts.OrderStatus 的枚举 |
sort_by | OrderSortBy | No | 【】排序和起止时间作用字段,LATEST_CREATED/LATEST_STATUS_UPDATED; 默认值:LATEST_CREATED |
secret_key | str | No | 机构交易员密钥,机构用户专有,需要在client_config中配置 |
返回
list
列表中的每个元素都是一个 Order 对象(tigeropen.trade.domain.order.Order),具体字段含义详见 Order 对象
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
orders = trade_client.get_orders(sec_type=SecurityType.STK, market=Market.ALL)
# 限制返回条数;按下单时间过滤(如果 start_time/end_time 传字符串, 服务端默认当北京时间处理;sdk的 client_config.timezone 可设置时区,设置后,时间字符串会当作该时区的时间)
orders = trade_client.get_orders(limit=10,
start_time='2022-09-02 01:00:00', end_time='2022-11-08 00:00:00',
seg_type='SEC'
)
orders = trade_client.get_orders(limit=10,
start_time=1656224964000, end_time=1666224964000,
seg_type='SEC'
)
# 查看订单属性
order1 = orders[0]
print(order1.status) # 订单状态
print(order1.id) # 订单号
print(order1.contract.symbol) # 合约代码
print(order1.contract.sec_type) # 合约类型
返回示例
[Order({'account': '1', 'id': 162998104807903232, 'order_id': 341, 'parent_id': 0, 'order_time': 1557972846184, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557975394512, 'action': 'BUY', 'quantity': 2, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 2}),
Order({'account': '1', 'id': 162998998620389376, 'order_id': 344, 'parent_id': 0, 'order_time': 1557973698590, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557973773622, 'action': 'BUY', 'quantity': 1, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 1}),
Order({'account': '1', 'id': 152239266327625728, 'order_id': 230, 'parent_id': 0, 'order_time': 1547712418243, 'reason': '201:Order rejected - Reason: YOUR ORDER IS NOT ACCEPTED. IN ORDER TO OBTAIN THE DESIRED POSITION YOUR EQUITY WITH LOAN VALUE [1247.90 USD] MUST EXCEED THE INITIAL MARGIN [4989.99 USD]', 'trade_time': 1547712418275, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 5, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': AAPL, 'status': 'REJECTED', 'remaining': 100})]
get_order 获取指定订单
TradeClient.get_order(account=None, id=None, order_id=None, is_brief=False)
说明
通过id获取指定的订单
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
id | int | yes | 在提交订单后返回的全局订单id |
order_id | int | no | 【】本地订单id |
is_brief | bool | no | 【】是否返回精简的订单数据 |
secret_key | str | no | 机构交易员密钥,机构用户专有,需要在client_config中配置,个人开发者无需关注 |
返回
Order
对象
具体字段含义详见 Order 对象
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
order = trade_client.get_order(id=1230001200123)
返回示例
{'account': '1', 'id': 162998104807903232, 'order_id': 341, 'parent_id': 0, 'order_time': 1557972846184, 'reason': '136:Order is already being cancelled.', 'trade_time': 1557975394512, 'action': 'BUY', 'quantity': 2, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': SPY, 'status': 'CANCELLED', 'remaining': 2}
get_open_orders 获取待成交的订单列表
TradeClient.get_open_orders(account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None, end_time=None)
说明
获取待成交的订单列表,可能会包含部分成交但未成交部分依然处于待成交状态的订单。
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecurityType | no | 证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量 |
market | Market | no | 所属市场,可以使用 tigeropen.common.consts.Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回
list
列表中的每个元素是一个 Order 对象(tigeropen.trade.domain.order.Order), 具体字段含义详见Order对象
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
open_orders = trade_client.get_open_orders(sec_type=SecurityType.STK, market=Market.ALL)
返回示例
同 get_orders
get_cancelled_orders 获取已撤销的订单列表
TradeClient.get_cancelled_orders(account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None, end_time=None)
说明
获取已撤销的订单列表。包括主动撤销、系统撤销、已失效的订单等。可能会包含部分成交但未成交部分被撤销的订单。
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecurityType | no | 证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量 |
market | Market | no | 所属市场,可以使用 tigeropen.common.consts.Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回
list
list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
cancelled_orders = trade_client.get_cancelled_orders(sec_type=SecurityType.STK, market=Market.ALL)
返回示例
同 get_orders
get_filled_orders 获取已成交的订单列表
TradeClient.get_filled_orders(account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None, end_time=None)
说明 获取已成交订单列表
订单可能会有部分成交的状态,此时订单状态比较特殊,有可能是HELD,CANCELLED,EXPIRED,REJECTED的任意一种状态,如需查询部分成交的订单,请参考FAQ-交易-如何判断订单是部分成交状态
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecurityType | no | 证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量 |
market | Market | no | 所属市场,可以使用 tigeropen.common.consts.Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回list
list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
filled_orders = trade_client.get_filled_orders(sec_type=SecurityType.STK, market=Market.ALL)
返回示例
同 get_orders
get_transactions 获取订单成交记录
说明
获取已成交订单的详细成交记录(仅适用于综合/模拟账户)。
参数
备注:请求时,要么传 order_id
,要么传 symbol
和 sec_type
,两者必填其一
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
order_id | int | yes/no(当symbol+sec_type未传时本参数必填) | 下单后返回的全局订单ID,非本地订单ID |
symbol | str | yes/no(当order_id未传时本参数必填) | 标的代码。使用symbol查询时sec_type为必传 |
sec_type | SecurityType | yes/no(当order_id未传时本参数必填) | 标的类型。使用symbol查询时sec_type为必传 |
start_time | str或int | no | 订单最后更新时间的起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00 |
end_time | str或int | no | 订单最后更新时间的截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00 |
limit | int | no | 每次获取记录的数量,最多 100,默认为 20 |
expiry | str | no | 过期日(适用于期权)。 形式 'yyyyMMdd', 比如 '220121' |
strike | float | no | 行权价(适用于期权)。如 100.5 |
put_call | str | no | 看涨或看跌(适用于期权)。'PUT' 或 'CALL' |
返回list
列表中每个元素为 Transaction
对象,具体字段含义见 Transaction
示例
from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account', secret_key='机构交易员专有密钥')
trade_client = TradeClient(client_config)
filled_orders = trade_client.get_transactions(symbol='AAPL', sec_type=SecurityType.STK)
返回示例
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'})]