获取订单信息

大约 8 分钟

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)

说明

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

参数

参数名类型是否必填描述
accountstrNo账户id,若不填则使用 client_config 中的默认 account
sec_typeSecurityTypeNo证券类型, 可以使用 tigeropen.common.consts.SecurityType 下的常量
marketMarketNo所属市场,可以使用 tigeropen.common.consts.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】订单状态,可以使用 tigeropen.common.consts.OrderStatus 的枚举
sort_byOrderSortByNo】排序和起止时间作用字段,LATEST_CREATED/LATEST_STATUS_UPDATED; 默认值:LATEST_CREATED
secret_keystrNo机构交易员密钥,机构用户专有,需要在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获取指定的订单

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
idintyes在提交订单后返回的全局订单id
order_idintno】本地订单id
is_briefboolno】是否返回精简的订单数据
secret_keystrno机构交易员密钥,机构用户专有,需要在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)

说明

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

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecurityTypeno证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量
marketMarketno所属市场,可以使用 tigeropen.common.consts.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对象

示例

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)

说明

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

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecurityTypeno证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量
marketMarketno所属市场,可以使用 tigeropen.common.consts.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对象

示例

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-交易-如何判断订单是部分成交状态

参数

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
sec_typeSecurityTypeno证券类型,可以使用 tigeropen.common.consts.SecurityType 下的常量
marketMarketno所属市场,可以使用 tigeropen.common.consts.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对象

示例

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,要么传 symbolsec_type,两者必填其一

参数名类型是否必填描述
accountstrno账户id,若不填则使用 client_config 中的默认 account
order_idintyes/no(当symbol+sec_type未传时本参数必填)下单后返回的全局订单ID,非本地订单ID
symbolstryes/no(当order_id未传时本参数必填)标的代码。使用symbol查询时sec_type为必传
sec_typeSecurityTypeyes/no(当order_id未传时本参数必填)标的类型。使用symbol查询时sec_type为必传
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

示例

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'})]
        
上次编辑于: