对象

PortfolioAccount 资产(综合/模拟账户)

说明

账户资产对象,适用于综合/模拟账户。包含账户的总资产、盈亏、持仓市值、现金、可用资金、保证金、杠杆等相关信息。

对象属性

属性名类型描述
accountstr对应的账户 id
update_timestampint更新时间, 毫秒为单位的13位数字时间戳
segmentstigeropen.trade.domain.prime_account.Segment按照交易品种区分的账户信息。内容是一个dict,分别有两个key,'S'表示证券,'C' 表示期货,value均为

Segment 分品种资产(综合/模拟账户)

说明

将资产按照股票/期货交易品种划分,每部分为一个Segment。

对象属性

属性名类型描述
currencystr币种, 如 USD, HKD
capabilitystr账户类型, 保证金账户: RegTMargin, 现金账户: Cash。保证金账户支持融资融券功能,T+0交易次数不受限制,最大购买力于日内最高4倍,隔日最高2倍。
categorystr交易品种分类 C: (Commodities 期货), S: (Securities 股票), F: (基金)
cash_balancefloat现金额。现金额就是当前所有币种的现金余额之和。如果您当前帐户产生了融资或借款,需要注意的是利息一般是按天算,按月结,具体以融资天数计算。每日累计,下个月初5号左右统一扣除,所以在扣除利息之前,用户看到的现金余额是没有扣除利息的,如果扣除利息前现金余额为零,可能扣除后会产生欠款,即现金余额变为负值。
cash_available_for_tradefloat可用资金。可用资金用来检查是否可以开仓或打新。开仓是指做多买入股票、做空融券卖出股票等交易行为。需要注意的是可用资金不等于可用现金,是用总资产、期权持仓市值、冻结资金和初始保证金等指标算出来的一个值,当可用资金大于0时,代表该账户可以开仓,可用资金_4 为账户的最大可用购买力。算法,可用资金=总资产-美股期权市值-当前总持仓的初始保证金-冻结资金。其中初始保证金的算法是∑(持仓个股市值_当前股票的开仓保证金比例)。举例:小虎当前账户总资产为10000美元,持有1000美元美股期权,持有总市值为2000美元的苹果,苹果的初始保证金比例当前为45%,没有冻结资金,小虎的可用资金=10000-1000-2000*45%=8100美元
cash_available_for_withdrawalfloat当前账号内可以出金的现金金额
buying_powerfloat最大购买力。 最大购买力是账户最大的可用购买金额。可以用最大购买力的值来估算账户最多可以买多少金额的股票,但是由于每只股票的最多可加的杠杆倍数不一样,所以实际购买单支股票时可用的购买力要根据具体股票保证金比例来计算。算法,最大购买力=4*可用资金。举例:小虎的可用资金是10万美元,那么小虎的最大购买力是40万美元,假设当前苹果股价是250美元一股,苹果的初始保证金比例是30%,小虎最多可以买100000/30%=33.34万美金的苹果,假设苹果的初始保证金比例为25%,小虎最多可以买100000/25%=40万美金的苹果。保证金账户日内最多有四倍于资金(未被占用做保证金的资金)的购买力 隔夜最多有两倍的购买力
gross_position_valuefloat证券总价值,是账户持仓证券的总市值之和,即全部持仓的总市值。算法,持仓证券总市值之和;备注:所有持仓市值都会按主币种计算;举例1,若小虎同时持有市值3000美元苹果(也就是做多),持有市值-1000美元的谷歌(也就是做空),小虎证券总价值=3000美元苹果+(-1000美元谷歌)=2000美元;举例2,小虎持有市值1万美元的苹果,市值5000美元的苹果做多期权,小虎证券总价值=10000+5000=15000美元
equity_with_loanfloat含贷款价值总权益,即ELV,ELV是用来计算开仓和平仓的数据指标;算法,现金账户=现金余额,保证金账户=现金余额+证券总市值-美股期权市值;ELV = 总资产 - 美股期权
net_liquidationfloat总资产(净清算值)。总资产就是我们账户的净清算现金余额和证券总市值之和,通常用来表示目前账户中有多少资产。算法,总资产=证券总市值+现金余额+应计分红-应计利息;举例:小虎账户有1000美元现金,持仓价值1000美元的苹果(即做多苹果),没有待发放的股息和融资利息和未扣除的利息,那么小虎的总资产=现金1000+持仓价值1000=2000美元,若小虎账户有1000美元现金,做空1000美元的苹果,此时证券总市值-1000美元,现金2000美元,用户总资产=现金2000+(持仓市值-1000),账户总资产共计1000美元。
init_marginfloat初始保证金。当前所有持仓合约所需的初始保证金要求之和。初次执行交易时,只有当含贷款价值总权益大于初始保证金才允许开仓。为满足监管机构的保证金要求,我们会在临近收盘前15分钟提升初始保证金与维持保证金要求至最低50%。
maintain_marginfloat维持保证金。当前所有持仓合约所需的维持保证金要求之和。持有头寸时,当含贷款价值总权益小于维持保证金会引发强平。为满足监管机构的保证金要求,我们会在临近收盘前15分钟提升初始保证金与维持保证金要求至最低50%。
overnight_marginfloat隔夜保证金。隔夜保证金是在收盘前15分钟开始检查账户所需的保证金,为满足监管机构的保证金要求,我们会在临近收盘前15分钟提升初始保证金与维持保证金要求至最低50%。老虎国际的隔夜保证金比例均在50%以上。如果账户含货款价值总权益低于隔夜保证金,账户在收盘前15分钟存在被强制平仓的风险。算法,∑(持仓个股隔夜时段的维持保证金)。个股的维持保证金率用户能够在“个股详情页-报价区-点击融资融券标识"查询。举例:小虎账户总资产为10万美元,苹果开仓保证金比例是40%,日内维持保证金是20%,日内全仓买入苹果共25万美元,到收盘前15分钟(隔夜时段)维持保证金比例将被提高到50%,此时的用户隔夜保证金为:25万*50%=12.5万,用户的含贷款价值总权益为10万小于12.5万,用户将会被平仓部分股票。
unrealized_plfloat持仓盈亏。定义,持仓个股、衍生品的未实现盈亏金额;算法,当前价*股数-持仓成本
realized_plfloat已实现盈亏是当前持仓周期内已减仓的个股、衍生品的已实现盈亏总和。已实现盈亏= Σ【(卖出价-买入价)*卖出股数-手续费
excess_liquidationfloat当前剩余流动性。当前剩余流动性是衡量当前账户潜在的被平仓风险的指标,当前剩余流动性越低账户被平仓的风险越高,当小于0时会被强制平掉部分持仓。具体的算法为:当前剩余流动性=含货款价值总权益(equity_with_loan)-账户维持保证金(maintain_margin) 。为满足监管机构的保证金要求,我们会在临近收盘前15分钟提升初始保证金与维持保证金要求至最低50%。举例:(1)、客户总资产1万美金,买入苹果12000美金(假设苹果开仓和维持保证金比例为50%)。当前剩余流动性=总资产10000-账户维持保证金6000=4000。(2)、随着股票的下跌,假设股票市值跌到8000,这个时候当前剩余流动性=总资产 (-2000+8000)-账户维持保证金4000=2000。(3)、此时用户又买入了1000美金的美股期权,那么账户的当前剩余流动性还剩下2000-1000=1000。若您的账户被强制平仓,则会以市价单在强制平仓时进行成交,强平的股票对象由券商自行决定,请您注意风控值和杠杆等指标。
overnight_liquidationfloat隔夜剩余流动性。隔夜剩余流动性是指用 含货款价值总权益(equity_with_loan)-隔夜保证金(overnight_margin) 算出来的值。为满足监管机构的保证金要求,我们会在临近收盘前15分钟提升初始保证金与维持保证金要求至最低50%。如果账户的隔夜剩余流动性低于0,在收盘前15分钟起账户存在被强行平掉部分持仓的风险。若您的账户被强制平仓,则会以市价单在强制平仓时进行成交,强平的股票对象由券商自行决定,请您注意风控值和杠杆等指标。
leveragefloat杠杆。杠杆是衡量账户风险程度的重要指标,可以帮助用户快速了解账户融资比例和风险程度;算法,杠杆=证券市值绝对值之和/总资产;备注1,保证金账户日内最大杠杆4倍,隔夜2倍;备注2,老虎考虑到历史波动、流动性和风险等因素,并不是每只股票都能4倍杠杆买入,一般做多保证金比例范围在25%-100%之间,保证金比例等于25%的股票,可以理解为4倍杠杆买入,保证金比例等于100%的股票,可以理解为0倍杠杆买入,即全部用现金买入。需要留意做空保证金可能会大于100%。备注3,个股保证金比例用户能够在“个股详情页-报价区-点击融资融券标识”查询;举例,小虎账户总资产10万美元,想买苹果,苹果当前个股做多初始保证金比例50%(1/50%=2倍杠杆),小虎最多只能买入20万市值的苹果股票;小虎想做空谷歌,谷歌做空保证金比例200%,小虎最多能做空10/200%=5万谷歌股票;小虎想买入微软,微软初始保证金100%(1/100%=1倍杠杆),小虎最多只能买入10万美元的微软股票
currency_assetsdict按照交易币种区分的账户资产信息,是以币种为 key 的 dict, 值为 CurrencyAsset 对象
uncollectedfloat在途资金
locked_fundsfloat锁定资金

CurrencyAsset 分币种资产(综合/模拟账户)

说明

按币种区分的资产。

对象属性

属性名类型描述
currencystr当前的货币币种,常用货币包括: USD-美元,HKD-港币,SGD-新加坡币,CNH-人民币
cash_balancefloat可以交易的现金,加上已锁定部分的现金(如已购买但还未成交的股票,还包括其他一些情形也会有锁定现金情况)
cash_available_for_tradefloat当前账号内可以交易的现金金额

PortfolioAccount 资产(环球账户)

说明

账户资产对象,适用于环球账户。包含账户的总资产、盈亏、持仓市值、现金、可用资金、保证金、杠杆等相关信息

对象属性

属性名类型描述
accountstr对应的账户 id
summarytigeropen.trade.domain.account.Account账户汇总信息,对segments的统计
segmentsdict按照交易品种区分的账户信息。分别有两个key,'S'对应证券,value为一个

Account 汇总资产(环球账户)

说明

账户各交易品种资产汇总信息。

对象属性

属性名类型描述
accrued_cashfloat当前月份的累积应付利息,按照日频更新
accrued_dividendfloat累计分红. 指的是所有已执行但仍未支付的分红累加值
available_fundsfloat可用资金(可用于交易)。 计算方法为 equity_with_loan - initial_margin_requirement
∆ buying_powerfloat购买力: 预估您还可以购入多少美元的股票资产。保证金账户日内最多有四倍于资金(未被占用做保证金的资金)的购买力。隔夜最多有两倍的购买力
cashfloat现金量
currencystr币种, 含义参考枚举参数-币种
cushionfloat剩余流动性占总资产的比例,计算方法为:excess_liquidity/net_liquidation
∆ day_trades_remainingint当日剩余日内交易次数, -1 表示无限制
equity_with_loanfloat含借贷值股权(含贷款价值资产) 。 证券 Segment: 现金价值 + 股票价值 。 期货 Segment: 现金价值 - 维持保证金
excess_liquidityfloat剩余流动性- 证券 Segment: 计算方法: equity_with_loan - maintenance_margin_requirement- 期货 Segment: 计算方法: net_liquidation - maintenance_margin_requirement
∆ gross_position_valuefloat证券总价值: 做多股票的价值+做空股票价值+做多期权价值+做空期权价值。
initial_margin_requirementfloat初始保证金
maintenance_margin_requirementfloat维持保证金
realized_pnlfloat本日已实现盈亏
unrealized_pnlfloat浮动盈亏
net_liquidationfloat总资产(净清算价值)。 证券 Segment: 现金价值 + 股票价值 + 股票期权价值。 期货 Segment: 现金价值 + 盯市盈亏
∆ regt_equityfloat仅针对证券Segment,即根据 Regulation T 法案计算的 equity with loan(含借贷股权值)
∆ regt_marginfloat仅针对证券Segment, 即根据 Regulation T 法案计算的 initial margin requirements(初始保证金)
∆ smafloat仅针对证券Segment。隔夜风控值,每个交易日收盘前10分钟左右对账户持仓的隔夜风险进行检查,隔夜风控值需要大于0,否则会在收盘前对账户部分头寸强制平仓。如果交易日盘中出现隔夜风控值低于0,而时间未到收盘前10分钟,账户不会出发强平。
timestampint更新时间

SecuritySegment 股票资产(环球账户)

说明

股票资产信息。

对象属性

属性名类型描述
accrued_cashfloat当前月份的累积应付利息,按照日频更新。
accrued_dividendfloat累计分红. 指的是所有已执行但仍未支付的分红累加值
available_fundsfloat可用资金(可用于交易)。 计算方法为 equity_with_loan - initial_margin_requirement
cashfloat现金
equity_with_loanfloat含借贷值股权(含贷款价值资产)。计算方法: 现金价值 + 股票价值
excess_liquidityfloat剩余流动性。计算方法: equity_with_loan - maintenance_margin_requirement
gross_position_valuefloat证券总价值: 做多股票的价值+做空股票价值+做多期权价值+做空期权价值。
initial_margin_requirementfloat初始保证金
maintenance_margin_requirementfloat维持保证金
leveragefloat仅用于证券 Segment gross_position_value / net_liquidation
net_liquidationfloat总资产(净清算价值)。 计算方法: 现金价值 + 股票价值 + 股票期权价值
∆ regt_equityfloat仅针对证券Segment,即根据 Regulation T 法案计算的 equity with loan(含借贷股权值)
∆ regt_marginfloat仅针对证券Segment, 即根据 Regulation T 法案计算的 initial margin requirements(初始保证金)
∆ smafloat仅针对证券Segment。隔夜风控值,每个交易日收盘前10分钟左右对账户持仓的隔夜风险进行检查,隔夜风控值需要大于0,否则会在收盘前对账户部分头寸强制平仓。如果交易日盘中出现隔夜风控值低于0,而时间未到收盘前10分钟,账户不会出发强平。
timestampint更新时间

CommoditySegment 期货资产(环球账户)

说明

期货资产信息。

对象属性

属性名类型描述
accrued_cashfloat当前月份的累积应付利息,按照日频更新。
accrued_dividendfloat累计分红. 指的是所有已执行但仍未支付的分红累加值
available_fundsfloat可用资金(可用于交易)。 计算方法为 equity_with_loan - initial_margin_requirement
cashfloat现金
equity_with_loanfloat含借贷值股权(含贷款价值资产)计算方法:现金价值 - 维持保证金
excess_liquidityfloat剩余流动性。计算方法: net_liquidation - maintenance_margin_requirement
initial_margin_requirementfloat初始保证金
maintenance_margin_requirementfloat维持保证金
net_liquidationfloat总资产(净清算价值)。计算方法:现金价值 + 盯市盈亏
timestampint更新时间

MarketValue 分币种资产(环球账户)

说明

按币种区分的资产信息。

对象属性

属性名类型描述
currencystr货币单位
net_liquidationfloat总资产(净清算价值)
cash_balancefloat现金
stock_market_valuefloat股票市值
option_market_valuefloat期权市值
warrant_valuefloat窝轮市值
futures_pnlfloat盯市盈亏
unrealized_pnlfloat未实现盈亏
realized_pnlfloat已实现盈亏
exchange_ratefloat对账户主币种的汇率
net_dividendfloat应付股息与应收股息的净值
timestampint更新时间

Position 持仓

说明

账户持仓信息。包括持仓的合约标的、持仓数量、成本、盈亏等信息。

对象属性

属性名类型描述
accountstr对应的账户ID
contracttigeropen.trade.domain.contract.Contract合约对象
position_qtyfloat持仓数量
quantityint持仓数量 (废弃),在实际持仓有小数时需要结合 position_scale 处理
position_scaleint持仓数量小数偏移 (废弃) 如 position=11123, positionScale=2,那么实际 position=11123*10^(-2)=111.23
average_costfloat含佣金的平均成本
market_valuefloat市值
salable_qtyfloat可卖数量
average_cost_of_carryfloat累计持仓成本(A股模式计算方式)
market_pricefloat市价
is_level0_priceboolean是否为lv0(延迟)行情
realized_pnlfloatfifo模式下已实现盈亏
unrealized_pnlfloat浮动盈亏
unrealized_pnl_by_cost_of_carryfloat浮动盈亏(A股模式计算方式)
unrealized_pnl_percent_by_cost_of_carryfloat浮动盈亏率(A股模式计算方式)
today_pnlfloat今日盈亏额
today_pnl_percentfloat今日盈亏率
yesterday_pnlfloat基金昨日盈亏
last_close_pricefloat最后盘中收盘价(前复权),美股盘中为上个交易日的收盘价

Order 订单

说明

订单对象。查询订单会返回该对象,下单改单的参数也需要使用该对象。

对象属性

属性名类型描述
accountstr订单所属的账户
idlong全局订单 id
order_idint账户自增订单号,已废弃
parent_idlong母订单id,目前只用于 TigerTrade App端的附加订单中
order_timeint下单时间,毫秒单位13位数字时间戳
trade_timeint订单状态更新时间,对于已成交订单,代表成交时间,对于已撤销订单,代表成功撤销的时间,毫秒单位13位数字时间戳
update_timeint订单更新时间, 订单的属性发生变化时(比如改单改价), 此时间会更新,毫秒单位13位数字时间戳
expire_timeintGTD订单过期时间, 毫秒单位13位数字时间戳
reasonstr下单失败时,会返回失败原因的描述
actionstr交易方向, 'BUY' / 'SELL'
quantityint下单数量
quantity_scaleint下单数量的偏移量,默认为0。碎股单的 quantity 和 quantity_scale 结合起来代表真实下单数量,如 quantity=111 quantity_scale=2,那么真实 quantity=111*10^(-2)=1.11
total_cash_amountfloat下单总金额,按股数下单时为 None
filled_cash_amountfloat已成交金额,按股数下单时为 None
refund_cash_amountfloat退回金额,等于下单总金额-已成交金额。按股数下单或订单未终结时为 None
filledint成交数量
avg_fill_pricefloat不含佣金的平均成交价
commissionfloat包含佣金、印花税、证监会费等系列费用
gstfloat税费 Goods and Service Tax
realized_pnlfloat实现盈亏
trail_stop_pricefloat跟踪止损价格
limit_pricefloat限价单价格
aux_pricefloat在止损单中,表示出发止损单的价格, 在移动止损单中, 表示跟踪的价差
trailing_percentfloat跟踪止损单-百分比,取值范围为0-100
percent_offsetfloat<该字段未使用>
order_typestr订单类型, 'MKT'市价单/'LMT'限价单/'STP'止损单/'STP_LMT'止损限价单/'TRAIL'跟踪止损单
time_in_forcestr有效期,'DAY'日内有效/'GTC'撤销前有效/'GTD'日期前有效(需额外指定expire_time)
outside_rthbool是否支持盘前盘后交易,美股专属。
trading_session_typestr夜盘交易.
contractContract

tigeropen.trade.domain.order.Charge 对象属性

属性类型描述
categorystr费用类型(TIGER/THIRD_PARTY)
category_descstr费用类别描述:Tiger Charge; Third Parties
totalfloat当前类别费用总额
detailstigeropen.trade.domain.order.ChargeDetail费用明细

tigeropen.trade.domain.order.ChargeDetail 对象属性

属性类型描述
typestr费用类型:SETTLEMENT_FEE/STAMP_DUTY/TRANSACTION_LEVY/EXCHANGE_FEE/FRC_TRANSACTION_LEVY
type_descstr费用类型描述:Settlement Fee(结算费); Stamp Duty(印花税); Transaction Levy(交易征费); Exchange Fee(交易所费用); AFRC Transaction Levy(会计及才会局交易征费)
original_amountfloat费用金额
after_discount_amountfloat抵扣后的费用

**构建方法 **:

通过 SDK 中的 tigeropen.common.util.order_utils 在本地生成订单对象: order_utils 仅提供了常用的参数,如果需要额外的参数,可生成订单对象后,修改其属性即可

from tigeropen.common.util.contract_utils import stock_contract
from tigeropen.common.util.order_utils import (market_order,        # 市价单
                                            limit_order,         # 限价单
                                            stop_order,          # 止损单
                                            stop_limit_order,    # 限价止损单
                                            trail_order,         # 移动止损单
                                            order_leg)           # 附加订单
                        
contract = stock_contract('AAPL', currency='USD')
order = limit_order('your account', contract, 'BUY', 100, 150.5)
order.time_in_force = 'GTC' # 设置订单属性
     
# 后续操作...                                    

market_order 市价单

market_order(account, contract, action, quantity)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户、环球账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


limit_order 限价单

limit_order(account, contract, action, quantity, limit_price)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户、环球账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


stop_order 止损单

stop_order(account, contract, action, quantity, aux_price)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户、环球账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


stop_limit_order 限价止损单

stop_limit_order(account, contract, action, quantity, limit_price, aux_price)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户、环球账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


trail_order 移动止损单

trail_order(account, contract, action, quantity, trailing_percent=None, aux_price=None)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户、环球账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


order_leg 附加订单

order_leg(leg_type, price, time_in_force='DAY', outside_rth=None)

参数

参数名类型描述
leg_typestr附加订单类型. 'PROFIT' 止盈单类型, 'LOSS' 止损单类型
pricefloat附加订单价格
time_in_forcestr附加订单有效期. 'DAY'(当日有效)和'GTC'(取消前有效 Good-Til-Canceled).
outside_rthbool附加订单是否允许盘前盘后交易(美股专属). True 允许, False 不允许

返回

OrderLeg 对象 tigeropen.trade.domain.order.OrderLeg


auction_limit_order 竞价限价单

auction_limit_order(account, contract, action, quantity, limit_price, time_in_force)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


auction_market_order 竞价市价单

auction_market_order(account, contract, action, quantity, time_in_force)

参数

参数名类型描述
accountstr下单账户, 可以使用综合账户或模拟账户
contracttigeropen.trade.domain.contract.Contract要交易的

返回

Order 对象


Transaction 成交记录

tigeropen.trade.domain.order.Transaction

说明

订单的成交记录

对象属性

对象属性类型描述
accountstr账户
order_idint订单id
contractContract

OrderLeg 附加订单

tigeropen.trade.domain.order.OrderLeg

说明

下主订单同时携带的附加订单

对象属性

对象属性类型描述
leg_typestr附加订单类型. 'PROFIT' 止盈单类型, 'LOSS' 止损单类型
pricefloat附加订单价格.
time_in_forcestr附加订单有效期. 'DAY'(当日有效)和'GTC'(取消前有效 Good-Til-Canceled).
outside_rthbool附加订单是否允许盘前盘后交易(美股专属). True 允许, False 不允许.

AlgoParams 算法订单参数

tigeropen.trade.domain.order.AlgoParams

说明

算法订单(VWAP/TWAP)参数对象

对象属性

对象属性类型描述
start_timestr或int生效开始时间(时间字符串或时间戳,TWAP和VWAP专用),如 '2020-11-19 23:00:00' 或 1640159945678
end_timestr或int失效时间(时间字符串或时间戳 TWAP和VWAP专用)
no_take_liqbool是否尽可能减少交易次数(VWAP订单专用)
allow_past_end_timebool是否允许失效时间后继续完成成交(TWAP和VWAP专用)
participation_ratefloat参与率(VWAP专用,0.01-0.5)

Contract

tigeropen.trade.domain.contract.Contract source

说明

合约是指交易的买卖对象或者标的物(比如一只股票,或者一个期权),合约是由交易所统一制定的。比如购买老虎证券的股票,可以通过TIGR这个字母代号和市场信息(即market=’US‘,美国市场)来唯一标识。类似的在购买期权或者期货产品时,可能会需要用到其他一些标识字段。通过合约信息,我们在下单或者获取行情时就可以唯一的确定一个标的物了。在Open API Python SDK中,合约信息通过 tigeropen.trade.domain.contract.Contract 对象来保存。Contract 对象可传入构造 Order 订单对象的工具函数中创建 Order 对象,用于下单

常见的合约包括股票合约,期权合约,期货合约等,大部分合约包括如下几个要素:

  • 标的代码(symbol),一般美股、英股等合约代码都是英文字母,港股、A股等合约代码是数字,比如老虎证券的symbol是TIGR。
  • 合约类型(security type),常见合约类型包括:STK(股票),OPT(期权),FUT(期货),CASH(外汇),比如老虎证券股票的合约类型是STK。
  • 货币类型(currency),常见货币包括 USD(美元),HKD(港币)。
  • 交易所(exchange),STK类型的合约一般不会用到交易所字段,订单会自动路由,期货合约都用到交易所字段。

绝大多数股票,差价合约,指数或外汇对可以通过这四个属性来唯一确定。由于其性质,更复杂的合约(如期权和期货)需要一些额外的信息。以下是几种常见类型合约,以及其由哪些要素构成:

股票:

from tigeropen.common.util.contract_utils import stock_contract
contract = stock_contract(symbol='TIGR', currency='USD')
contract1 = stock_contract(symbol='00700', currency='HKD')

期权

from tigeropen.common.util.contract_utils import option_contract, option_contract_by_symbol
contract = option_contract(identifier='AAPL  190118P00160000')
contract = option_contract_by_symbol('JD', expiry='20211015', strike=45.0, put_call='PUT', currency='USD')

期货

from tigeropen.common.util.contract_utils import future_contract
contract = future_contract(symbol='CL', currency='USD', expiry='20190328', multiplier=1.0, exchange='SGX')

港股窝轮

from tigeropen.common.util.contract_utils import war_contract_by_symbol
contract = war_contract_by_symbol('01810', '20221116', 14.52, 'CALL', local_symbol='14759', multiplier=2000,
currency='HKD')

港股牛熊证

from tigeropen.common.util.contract_utils import iopt_contract_by_symbol
contract = iopt_contract_by_symbol('02318', '20200420', 87.4, 'CALL', local_symbol='63379', currency='HKD')

具体字段及构造方法见下文

对象属性

属性名类型描述
identifierstr唯一标识,股票identifier和symbol相同,期权为21位标识符,如:'AAPL 220729C00150000',期货identifier
symbolstr股票代码,期权合约的symbol为对应标的物代码
sec_typestrSTK 股票/OPT 期权/FUT 期货/WAR 窝轮/IOPT 牛熊证等,默认 STK
namestr合约名称
currencystr币种,USD/HKD/CNH
exchangestr交易所
expirystr期权和期货专有,期权或期货过期日
strikefloat期权专有,期权的行权价格
multiplierfloat每手数量
put_callstr期权专有,期权方向,CALL 或者 PUT
local_symbolstr环球账户专有,港股用于识别窝轮和牛熊证
short_marginfloat做空保证金比例(将废弃,请使用short_initial_margin代替)
short_initial_marginfloat做空初始保证金比例
short_maintenance_marginfloat做空维持保证金比例(综合账号有值,环球账号合约没有值)
short_fee_ratefloat做空费率
shortableint做空池剩余
long_initial_marginfloat做多初始保证金
long_maintenance_marginfloat做多维持保证金
contract_monthstr合约月份, 如202201,表示2022年1月
primary_exchangestr股票上市交易所
marketstr市场 /US/HK/CN
min_tickfloat最小报价单位
tickSizeslist股票专有,最小报价单位价格区间,即当挂单价格在begin和end区间时,要满足tickSize要求,begin:价格左区间,end:价格右区间,type:区间类型 OPEN/OPEN_CLOSED/CLOSED/CLOSED_OPEN(开区间/左开右闭/闭区间/左闭右开),tickSize:最小价格单位. 示例:[{"begin":"0","end":"1","tickSize":1.0E-4,"type":"CLOSED"},{"begin":"1","end":"Infinity","tickSize":0.01,"type":"OPEN"}]
trading_classstr合约的交易级别名称
statusstr合约状态
continuousbool期货专有,是否为连续合约
tradebool期货专有,是否可交易
last_trading_datestr期货专有,最后交易日,如 '20211220',表示2021年12月20日
first_notice_datestr期货专有,第一通知日,合约在第一通知日后无法开多仓. 已有的多仓会在第一通知日之前(通常为前三个交易日)被强制平仓,如 '20211222',表示2021年12月22日
last_bidding_close_timeint期货专有,竞价截止时间戳
is_etfbool是否是ETF
etf_leverageintETF杠杆倍数,仅当合约为ETF时会存在该值
discounted_day_initial_marginfloatFutures only, Intraday initial margin discount
discounted_day_maintenance_marginfloatFutures only, Intraday maintenance margin discount
discounted_time_zone_codefloatFutures only, Intraday margin discount period time zone
discounted_start_atfloatFutures only, Intraday margin discount start time
discounted_end_atfloatFutures only, Intraday margin discount end time
lot_sizefloat单笔交易中可交易的最小资产数量
support_overnight_tradingbool是否支持夜盘交易
⚠️

print时只会显示部分属性, 可以用 print(contract.to_str()) 打印全部属性

通过接口获取

Contract 对象可通过以下方法查询:

获取合约信息 get_contract/get_contracts

参数:

参数是否必填描述
symbolYes合约代码 如 00700/AAPL
sec_typeYes合约类型 如 SecurityType.STK/SecurityType.OPT
currencyNo币种 如 Currency.USD/Currency.HKD
exchangeNo交易所 如 SMART/SEHK
expiryNo到期日 交易品种是期权时必传 yyyyMMdd
strikeNo行权价 交易品种是期权时必传
put_callNoCALL/PUT 交易品种是期权时必传
secret_keyNo机构交易员密钥,机构用户专有,需要在client_config中配置

返回

get_contract 返回 Contract 对象; get_contracts 返回 Contract 对象列表. 对象属性参见上文的说明部分

示例

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)

# 获取股票合约
contract = trade_client.get_contract('FB', sec_type=SecurityType.STK)
contracts = trade_client.get_contracts(['AAPL', 'TSLA'], sec_type=SecurityType.STK)

# 获取期货合约
fut_contract = trade_client.get_contract('CL', sec_type=SecurityType.FUT)

# 获取期权合约
opt_contract = trade_client.get_contract('SPY', sec_type=SecurityType.OPT, expiry='20231215', strike=435.0, put_call='CALL')

MarketStatus 市场状态

tigeropen.quote.domain.market_status.MarketStatus

说明

市场交易状态

对象属性

对象属性类型描述
marketstr市场。(US:美股,CN:沪深,HK:港股)
trading_statusstr市场交易状态码。 未开盘 NOT_YET_OPEN; 盘前交易 PRE_HOUR_TRADING; 交易中 TRADING; 午间休市 MIDDLE_CLOSE; 盘后交易 POST_HOUR_TRADING; 已收盘 CLOSING; 提前休市 EARLY_CLOSED; 休市 MARKET_CLOSED;
statusstr市场状态描述(未开盘,交易中,休市等)
open_timedatetime.datetime最近开盘时间

OptionFilter 期权链过滤器

tigeropen.quote.domain.filter.OptionFilter

说明

期权过滤参数对象

对象属性

参数类型是否必填描述
implied_volatilityfloatNo隐含波动率, 反映市场预期的未来股价波动情况, 隐含波动率越高, 说明预期股价波动越剧烈
in_the_moneyboolNo是否价内
open_interestintNo未平仓量, 每个交易日完结时市场参与者手上尚未平仓的合约数. 反映市场的深度和流动性
deltafloatNodelta, 反映股票价格变化对期权价格变化对影响. 股价每变化1元, 期权价格大约变化 delta. 取值 -1.0 ~ 1.0
gammafloatNogamma, 反映股票价格变化对于delta的影响. 股价每变化1元, delta变化gamma
thetafloatNotheta, 反映时间变化对期权价格变化的影响. 时间每减少一天, 期权价格大约变化 theta
vegafloatNovega, 反映波动率对期权价格变化的影响. 波动率每变化1%, 期权价格大约变化 vega
rhofloatNorho, 反映无风险利率对期权价格变化的影响. 无风险利率每变化1%, 期权价格大约变化 rho

订单变动

字段说明
id订单号
account资金账号
symbol持仓标的代码,如 'AAPL', '00700', 'ES', 'CN'
expiry仅支持期权、窝轮、牛熊证
strike仅支持期权、窝轮、牛熊证
right仅支持期权、窝轮、牛熊证
identifier标的标识符。股票的identifier与symbol相同。期货的会带有合约月份,如 'CN2201'
multiplier每手数量,仅限 futures, options, warrants, CBBC
action买卖方向。BUY表示买入,SELL表示卖出。
market市场。US、HK
currency币种。USD美元,HKD港币
segType按交易品种划分的分类。S表示股票,C表示期货
secTypeSTK Stocks, OPT Options, WAR Warrants, IOPT CBBC, CASH FOREX, FUT Futures, FOP Future Options
orderType订单类型。'MKT'市价单/'LMT'限价单/'STP'止损单/'STP_LMT'止损限价单/'TRAIL'跟踪止损单
isLong是否多头持仓
totalQuantity下单数量
totalQuantityScale下单数量偏移量,如 totalQuantity=111, totalQuantityScale=2,那么真实 totalQuantity=111*10^(-2)=1.11
filledQuantity成交总数量(订单分多笔成交的,filledQuantity为累计成交总数)
filledQuantityScale成交总数量偏移量
avgFillPrice成交均价
limitPrice限价单价格
stopPrice止损价格
realizedPnl已实现盈亏(只有综合账号有这个字段)
status订单状态
replaceStatus订单改单状态
cancelStatus订单撤单状态
outsideRth是否允许盘前盘后交易,仅适用于美股
canModify是否能修改
canCancel是否能取消
liquidation是否为平仓订单
name标的名称
source订单来源(from 'OpenApi', or other)
errorMsg错误信息
attrDesc订单描述信息
commissionAndFee佣金费用总计
openTime下单时间
timestamp订单状态最后更新时间

持仓变动

字段说明
account用户账户
symbol股票代码
expiry过期日 期权、窝轮、牛熊证专属
strike底层价格 期权、窝轮、牛熊证专属
right期权方向 PUT/CALL 期权、窝轮、牛熊证专属
identifier标的标识符
multiplier1手单位 期权、窝轮、牛熊证专属
market交易市场
currency货币类型
segType按交易品种划分的分类。S表示股票,C表示期货
secType合约类型
position持仓
positionScale持仓数量的偏移量
averageCost平均成本
latestPrice最新价
marketValue市值
unrealizedPnl浮动盈亏
name标的名称
timestamp服务器时间

资产变动

字段说明
account用户账户
currency货币类型
segType按交易品种划分的分类。S表示股票,C表示期货
availableFunds可用资金(含借贷股权-初始保证金)
excessLiquidity剩余流动性(借贷值股权-维持保证金)
netLiquidation净清算值
equityWithLoan含借贷值股权(含贷款价值资产)
buyingPower购买力
cashBalance账户现金余额
grossPositionValue持仓市值
initMarginReq当前初始保证金
maintMarginReq当前维持保证金
timestamp服务器时间

行情变动

  • 基本行情
字段二级字段说明
symbol股票代码
type类型
timestamp行情数据时间
serverTimestamp服务器时间
avgPrice平均价格
latestPrice最新价格
latestPriceTimestamp最新价格的时间戳(盘前,盘后没有)
latestTime最新价格的时间
preClose昨日收盘价
volume当日累计成交量
amount当日累计成交量金额 (期权期货不支持)
open开盘价
high最高价格
low最低价格
hourTradingTag盘前盘后标识(美股盘中没有值),取值:盘前/盘后
marketStatus市场状态
identifier标的标识符(仅限期权)
openInt未平仓数(仅限期权)
tradeTime交易时间(仅限期货)
preSettlement上个结清价(仅限期货)
minTick最小变动价(仅限期货)
mip分钟价格
mia分钟平均价格
mit分钟时间
miv分钟成交量
mio分钟开盘价(仅限期货)
mih分钟最高价(仅限期货)
mil分钟最低价(仅限期货)
  • 盘口最优买卖价行情
字段说明
askPrice卖盘价格
askSize卖盘数量
askTimestampask timestamp(Pre/Post-Mkt data not support)
bidPrice买盘价格
bidSize买盘数量
bidTimestampbid timestamp(Pre/Post-Mkt data not support)