tqsdk2.api - 框架及核心业务
- class tqsdk2.TqApi(self: tqsdk2.tqsdk2.TqApi, account: object = None, auth: object = None, backtest: object = None, web_gui: object = False, debug: object = False, disable_print: bool = False, _md_url: str = '', _srandom: int = 0, _mock_date_time: int = 0)
创建天勤2 接口实例.
- Args:
- account (None/TqSim/TqKq/TqKqStock/TqAccount/TqCtp/TqRohon/TqJees): [可选] 交易账号:
None: 账号将根据环境变量决定, 默认为 :py:class: ~tqsdk2.TqSim
TqSim
: 使用 TqApi 自带的本地模拟账号TqKq
: 使用快期账号登录,直连行情和快期模拟交易服务器, 需提供 auth 参数TqKqStock
: 使用快期账号登录,直连行情和快期股票模拟交易服务器, 需提供 auth 参数TqAccount
: 使用实盘账号, 直连行情和交易中继服务器, 需提供期货公司/帐号/密码TqCtp
: 使用实盘账号, 直连行情和期货公司 CTP 交易服务器, 需提供期货公司/帐号/密码TqRohon
: 直连融航资管柜台TqJees
: 直连杰宜斯资管柜台
auth (TqAuth/str): [必填] 用户信易账户
TqAuth
: 信易账户类,例如:TqAuth("tianqin@qq.com", "123456"), 您可以通过 https://account.shinnytech.com 进行注册管理
debug(bool/str): [可选] 是否将调试信息输出到指定文件,默认值为 False
disable_print(bool): [可选] 是否禁用调试信息输出,默认值为 False
- backtest(TqBacktest): [可选] 进入时光机,此时强制要求 account 类型为
TqSim
TqBacktest
: 传入 TqBacktest 对象,进入回测模式, 在回测模式下, 由 TqBacktest 内部完成回测时间段内的行情推进和 K 线、Tick 更新.
- web_gui(bool/str): [可选]是否启用图形化界面功能, 默认不启用.
启用图形化界面传入参数 web_gui=True 会每次以随机端口生成网页,也可以直接设置本机IP和端口 web_gui=[ip]:port 为网页地址,ip 可选,默认为 0.0.0.0,参考example 6
为了图形化界面能够接收到程序传输的数据并且刷新,在程序中,需要循环调用 api.wait_update的形式去更新和获取数据
推荐打开图形化界面的浏览器为Google Chrome 或 Firefox
- Returns:
TqApi: 返回当前TqApi的一个副本
Example1:
# 使用实盘帐号直连行情和交易服务器 from tqsdk2 import TqApi, TqAuth, TqAccount api = TqApi(TqAccount("H海通期货", "022631", "123456"), auth=TqAuth("信易账户", "账户密码"))
方法列表
__init__
(self[, account, auth, backtest, ...])创建天勤2 接口实例.
cancel_order
(self[, order_or_order_id, account])发送撤单指令, 注意: 与 TqSdk 不同, TqSdk2 撤单指令会立即发出, 无需等待用户调用 wait_update() 函数
close
(self)关闭天勤接口实例并释放相应资源
get_account
(self[, account, trading_unit])获取用户账户资金信息
get_kline_serial
(self[, symbol, ...])获取tick序列数据
get_order
(*args, **kwargs)Overloaded function.
get_position
(*args, **kwargs)Overloaded function.
get_quote
(self, symbol)获取指定合约的盘口行情
get_quote_list
(self, symbols)获取指定合约列表的盘口行情.
get_tick_serial
(self[, symbol, data_length])获取指定时间段内的 K 线序列.
get_trade
(*args, **kwargs)Overloaded function.
get_trading_unit
(self)查询交易单元信息.
insert_order
(self[, symbol, direction, ...])发送下单指令, 注意: 与 TqSdk 不同, TqSdk2 下单指令会立即发出, 无需等待用户调用 wait_update() 函数
is_changing
(*args, **kwargs)Overloaded function.
query_cont_quotes
(self[, exchange_id, ...])根据填写的参数筛选,返回主力连续合约对应的标的合约列表.
query_options
(self[, underlying_symbol, ...])发送合约服务请求查询,查询符合条件的期权列表,并返回查询结果.
query_quotes
(self[, ins_class, exchange_id, ...])根据相应的参数发送合约服务请求查询,并返回查询结果.
wait_update
(self[, deadline])等待业务数据更新.
get_trading_status
(self, symbol)获取指定合约的交易状态
get_margin_rates
(self, symbol[, account])获取指定合约的保证金率
- wait_update(self: tqsdk2.tqsdk2.TqApi, deadline: float = 0.0) bool
等待业务数据更新.
调用此函数将阻塞当前线程, 等待天勤主进程发送业务数据更新并返回
- 注: 它是 TqApi 中最重要的一个函数, 每次调用它时都会发生这些事:
刷新最新的账户状态信息, 包括账户下订阅的行情、tick 和 Klines 数据.
若启动了调仓工具模块, 则执行一次调仓条件判断和下单.
若用户通过控制台暂停策略,那么此函数将不会返回,deadline 参数失效. 若用户从暂停状态恢复策略,若未到达 deadline 参数指定的时间,那么在发生业务数据更新时,此函数将返回 true,如果业务数据没有更新,此函数将不会返回;若到达 deadline,那么此函数将返回 false.
- Args:
deadline (float): [可选]指定截止时间,自unix epoch(1970-01-01 00:00:00 GMT)以来的秒数(time.time()), 默认没有超时(无限等待).
- get_account(self: tqsdk2.tqsdk2.TqApi, account: object = None, trading_unit: int = 0) tqsdk2.tqsdk2.Account
获取用户账户资金信息
- Args:
account (TqAccount/TqKq/TqRohon/TqJees/TqCtp/TqSim): [可选] 指定获取账户资金信息的账户实例, 多账户模式下, 该参数必须指定
trading_unit (int): [可选] 交易单元编号
- Returns:
Account
: 返回一个账户对象引用. 其内容将在 wait_update() 时更新
- get_position(*args, **kwargs)
Overloaded function.
get_position(self: tqsdk2.tqsdk2.TqApi, symbol: str, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Position
get_position(self: tqsdk2.tqsdk2.TqApi, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Positions
获取用户持仓信息
- Args:
symbol (str): [可选]合约代码, 不填则返回所有持仓
account (TqAccount/TqKq/TqSim/TqCtp/TqRohon/TqJees): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定
trading_unit (int): [可选] 交易单元编号
- Returns:
Position
: 当指定了 symbol 时, 返回一个持仓对象引用. 其内容将在 wait_update() 时更新 不填 symbol 参数调用本函数, 将返回包含用户所有持仓的一个集合对象的引用, 使用方法与 dict 一致, 其中每个元素的 key 为合约代码, value 为 Position
- get_order(*args, **kwargs)
Overloaded function.
get_order(self: tqsdk2.tqsdk2.TqApi, order_id: str, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Order
get_order(self: tqsdk2.tqsdk2.TqApi, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Orders
获取用户委托单信息
- Args:
order_id (str): [可选] 委托单号, 不填单号则返回所有委托单
account (TqAccount/TqKq/TqSim/TqCtp/TqRohon/TqJees): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定
trading_unit (int): [可选] 交易单元编号
- Returns:
- get_trade(*args, **kwargs)
Overloaded function.
get_trade(self: tqsdk2.tqsdk2.TqApi, trade_id: str, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Trade
get_trade(self: tqsdk2.tqsdk2.TqApi, account: object = None, trading_unit: int = 0) -> tqsdk2.tqsdk2.Trades
获取用户成交信息
- Args:
trade_id (str): [可选] 成交合同编号, 不填成交号则返回所有委托单
account (TqAccount/TqKq/TqSim/TqCtp/TqRohon/TqJees): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定
trading_unit (int): [可选] 交易单元编号
- Returns:
- get_quote(self: tqsdk2.tqsdk2.TqApi, symbol: str) tqsdk2.tqsdk2.Quote
获取指定合约的盘口行情
- Args:
- symbol (str): 指定合约代码, 合约代码格式为 交易所代码.合约代码. 可用的交易所代码如下:
CFFEX: 中金所
SHFE: 上期所
DCE: 大商所
CZCE: 郑商所
INE: 能源交易所(原油)
SSE: 上交所
SZSE: 深交所
GFEX: 广期所
- Returns:
Quote
: 返回一个盘口行情引用, 其内容将在 wait_update() 时更新, 注意: 在 tqsdk 还没有收到行情数据包时, 此对象中各项内容为 NaN 或 0
- get_quote_list(self: tqsdk2.tqsdk2.TqApi, symbols: List[str]) List[tqsdk2.tqsdk2.Quote]
获取指定合约列表的盘口行情.
- Args:
symbols (list of str): 合约代码列表
- Returns:
list of
Quote
: 返回一个列表,每个元素为指定合约盘口行情引用。
- get_kline_serial(self: object, symbol: object = '', duration_seconds: int = 60, data_length: int = 200) object
获取tick序列数据
- Args:
- symbol (str/list of str): 指定合约代码或合约代码列表.
str: 一个合约代码
list of str: 合约代码列表 (一次提取多个合约的K线并根据相同的时间向第一个合约(主合约)对齐)
- duration_seconds (int): K 线数据周期, 以秒为单位。例如: 1 分钟线为 60,1 小时线为 3600,日线为 86400。
注意: 周期在日线以内时此参数可以任意填写, 在日线以上时只能是日线(86400)的整数倍
data_length (int): 需要获取的序列长度。每个序列最大支持请求 8000 个数据
- Returns:
pandas.DataFrame: 本函数总是返回一个 pandas.DataFrame 实例。包含以下列: - id: 1234 (k线序列号)
datetime: 1501074872000000000 (tick从交易所发出的时间(按北京时间),自unix epoch(1970-01-01 00:00:00 GMT)以来的纳秒数)
open: 51450.0 (K线起始时刻的最新价)
high: 51450.0 (K线时间范围内的最高价)
low: 51450.0 (K线时间范围内的最低价)
close: 51450.0 (K线结束时刻的最新价)
volume: 11 (K线时间范围内的成交量)
open_oi: 27354 (K线起始时刻的持仓量)
close_oi: 27355 (K线结束时刻的持仓量)
- get_tick_serial(self: object, symbol: str = '', data_length: int = 200) object
- 获取指定时间段内的 K 线序列.
请求指定合约的Tick序列数据. 序列数据会随着时间推进自动更新
- Args:
symbol (str): 指定合约代码
data_length (int): 需要获取的序列长度。每个序列最大支持请求 8000 个数据
chart_id (str): [可选]指定序列id, 默认由 api 自动生成
- Returns:
pandas.DataFrame: 本函数总是返回一个 pandas.DataFrame 实例, 包含以下列: - id: 12345 tick序列号
datetime: 1501074872000000000 (tick从交易所发出的时间(按北京时间),自unix epoch(1970-01-01 00:00:00 GMT)以来的纳秒数)
last_price: 3887.0 (最新价)
average: 3820.0 (当日均价)
highest: 3897.0 (当日最高价)
lowest: 3806.0 (当日最低价)
ask_price1: 3886.0 (卖一价)
ask_volume1: 3 (卖一量)
bid_price1: 3881.0 (买一价)
bid_volume1: 18 (买一量)
volume: 7823 (当日成交量)
amount: 19237841.0 (成交额)
open_interest: 1941 (持仓量)
- insert_order(self: tqsdk2.tqsdk2.TqApi, symbol: str = '', direction: str = '', offset: str = '', volume: int = 0, limit_price: object = None, account: object = None, advanced: object = None, trading_unit: int = 0) tqsdk2.tqsdk2.Order
发送下单指令, 注意: 与 TqSdk 不同, TqSdk2 下单指令会立即发出, 无需等待用户调用 wait_update() 函数
Args:
symbol (str): 拟下单的合约symbol, 格式为 交易所代码.合约代码, 例如 "SHFE.cu1801"
direction (str): "BUY" 或 "SELL"
offset (str): "OPEN", "CLOSE" 或 "CLOSETODAY" (上期所和原油分平今/平昨, 平今用"CLOSETODAY", 平昨用"CLOSE"; 其他交易所直接用"CLOSE" 按照交易所的规则平仓)
volume (int): 下单交易数量, 期货为下单手数
account (TqAccount/TqKq/TqSim/TqCtp/TqRohon/TqJees): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定
- advanced (str): [可选] "FAK", "FOK"。默认为 None, 股票交易中该参数不支持。
None: 对于限价单,任意手数成交,委托单当日有效;对于市价单、最优一档、最优五档(与 FAK 指令一致),任意手数成交,剩余撤单。
"FAK": 剩余即撤销,指在指定价位成交,剩余委托自动被系统撤销。(限价单、市价单、最优一档、最优五档有效)
"FOK": 全成或全撤,指在指定价位要么全部成交,否则全部自动被系统撤销。(限价单、市价单有效,郑商所期货品种不支持 FOK)
trading_unit(int): [可选] 交易单元编号
- cancel_order(self: tqsdk2.tqsdk2.TqApi, order_or_order_id: object = None, account: object = None) None
发送撤单指令, 注意: 与 TqSdk 不同, TqSdk2 撤单指令会立即发出, 无需等待用户调用 wait_update() 函数
- Args:
order_or_order_id (str): 拟撤委托单或单号
account (TqAccount/TqKq/TqSim/TqCtp/TqRohon/TqJees): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定
- is_changing(*args, **kwargs)
Overloaded function.
is_changing(self: tqsdk2.tqsdk2.TqApi, arg0: object, arg1: str) -> bool
is_changing(self: tqsdk2.tqsdk2.TqApi, arg0: object) -> bool
is_changing(self: tqsdk2.tqsdk2.TqApi, arg0: object, arg1: list) -> bool
判定 obj 最近是否有更新
当业务数据更新导致 wait_update 返回后可以使用该函数判断 本次业务数据更新是否包含特定obj或其中某个字段 关于判断K线更新的说明: 当生成新K线时,其所有字段都算作有更新,若此时执行 api.is_changing(klines.iloc[-1]) 则一定返回True。
- Args:
obj (any): 任意业务对象, 包括 get_quote 返回的 quote, get_kline_serial 返回的 k_serial, get_account 返回的 account 等
key (str/list of str): [可选]需要判断的字段,默认不指定
- Returns:
bool: 如果本次业务数据更新包含了待判定的数据则返回 True, 否则返回 False
- get_trading_unit(self: tqsdk2.tqsdk2.TqApi) List[int]
查询交易单元信息.
- Returns:
返回截止到现在有储存过数据的交易单元列表(有开仓委托但未成交的节点视为未存储过数据).
- query_quotes(self: tqsdk2.tqsdk2.TqApi, ins_class: str = '', exchange_id: str = '', product_id: str = '', expired: object = None, has_night: object = None) List[str]
根据相应的参数发送合约服务请求查询,并返回查询结果.
- Args:
- ins_class (str): [可选] 合约类型
FUTURE: 期货
CONT: 主连
COMBINE: 组合
INDEX: 指数
OPTION: 期权
STOCK: 股票
- exchange_id (str): [可选] 交易所
CFFEX: 中金所
SHFE: 上期所
DCE: 大商所
CZCE: 郑商所
INE: 能源交易所(原油)
SSE: 上交所
SZSE: 深交所
GFEX: 广期所
product_id (str): [可选] 品种(股票、期权不能通过 product_id 筛选查询)
expired (bool): [可选] 是否已下市
- has_night (bool): [可选] 是否有夜盘,默认为 None。
None 表示筛选结果既包括有夜盘品种也包括无夜盘品种
True 表示筛选结果只包括有夜盘品种
False 表示筛选结果只包括无夜盘品种
- Returns:
list: 符合筛选条件的合约代码的列表,例如: ["SHFE.cu2012", "SHFE.au2012", "SHFE.wr2012"]
- query_options(self: tqsdk2.tqsdk2.TqApi, underlying_symbol: str = '', option_class: str = '', exercise_year: int = 0, exercise_month: int = 0, strike_price: float = 0.0, expired: object = None, has_A: object = None) List[str]
发送合约服务请求查询,查询符合条件的期权列表,并返回查询结果.
- Args:
underlying_symbol (str): 标的合约
- option_class (str): [可选] 期权类型
CALL: 看涨期权
PUT: 看跌期权
exercise_year (int): [可选] 最后行权日年份
exercise_month (int): [可选] 最后行权日月份
strike_price (float): [可选] 行权价格
expired (bool): [可选] 是否下市
has_A (bool): [可选] 是否含有A,输入True代表只含A的期权,输入False代表不含A的期权,默认为None不做区分
Returns:
list: 符合筛选条件的合约代码的列表,例如: ["SHFE.cu2012C24000", "SHFE.cu2012P24000"]
- query_cont_quotes(self: tqsdk2.tqsdk2.TqApi, exchange_id: str = '', product_id: str = '', has_night: object = None) List[str]
根据填写的参数筛选,返回主力连续合约对应的标的合约列表.
- Args:
- exchange_id (str): [可选] 交易所
CFFEX: 中金所
SHFE: 上期所
DCE: 大商所
CZCE: 郑商所
INE: 能源交易所(原油)
SSE: 上交所
SZSE: 深交所
GFEX: 广期所
product_id (str): [可选] 品种(股票、期权不能通过 product_id 筛选查询)
- has_night (bool): [可选] 是否有夜盘,默认为 None。
None 表示筛选结果既包括有夜盘品种也包括无夜盘品种
True 表示筛选结果只包括有夜盘品种
False 表示筛选结果只包括无夜盘品种
- Returns:
list: 符合筛选条件的合约代码的列表,例如: ["SHFE.cu2012", "SHFE.au2012", "SHFE.wr2012"]
- query_all_level_options(self: tqsdk2.tqsdk2.TqApi, underlying_symbol: str, underlying_price: float, option_class: str, exercise_year: int = 0, exercise_month: int = 0, has_A: object = None) List[List[str]]
发送合约服务请求查询,查询符合条件的期权列表,返回全部的实值、平值、虚值期权
- Args:
underlying_symbol (str): [必填] 标的合约 (目前每个标的只对应一个交易所的期权)
underlying_price (float): [必填] 标的价格,该价格用户输入可以是任意值,例如合约最新价,最高价,开盘价等然后以该值去对比实值/虚值/平值期权
- option_class (str): [必填] 期权类型
CALL: 看涨期权
PUT: 看跌期权
exercise_year (int): [可选] 最后行权日年份
exercise_month (int): [可选] 最后行权日月份
has_A (bool): [可选] 是否含有A,输入True代表只含A的期权,输入False代表不含A的期权,默认为None不做区分
Returns:
返回三个列表,分别为实值期权列表、平值期权列表、虚值期权列表。其中,平值期权列表只包含一个元素。
对于看涨期权,返回的实值期权列表、平值期权列表、虚值期权列表其期权行权价依此递增;
对于看跌期权,返回的实值期权列表、平值期权列表、虚值期权列表其期权行权价依此递减。
注:当选择平值期权时,会按以下逻辑进行选择:
根据用户传入参数来生成一个期权列表,在这个期权列表中来选择是否有和传入价格相比的平值期权并返回
如果没有符合的平值期权,则取行权价距离传入价格绝对值相差最小的期权作为平值期权
如果存在最近的两个期权的行权价到传入价格的绝对值最小且相等,则取虚值的那个期权作为平值期权,其他档位期权依次展开
Example:
from tqsdk2 import TqApi, TqAuth, TqAccount api = TqApi(auth=TqAuth("信易账户", "账户密码")) quote = api.get_quote("SHFE.au2112") in_money_options, at_money_options, out_of_money_options = api.query_all_level_options("SHFE.au2112", quote.last_price, "CALL") print(in_money_options) # 实值期权列表 print(at_money_options) # 平值期权列表 print(out_of_money_options) # 虚值期权列表 api.close()
- query_all_level_finance_options(self: tqsdk2.tqsdk2.TqApi, underlying_symbol: str, underlying_price: float, option_class: str, nearbys: object = None, has_A: object = None) List[List[str]]
发送合约服务请求查询,针对 ETF 期权和股指期权,只查询未下市合约,可以按照距离最后行权日的距离的远近,查询符合条件的期权列表,返回全部的实值、平值、虚值期权
- Args:
underlying_symbol (str): [必填] 标的合约 (针对 ETF 期权和股指期权,只支持以下几个合约) * SSE.000300 为中金所股指期权标的 * SSE.510050 为上交所上证 50 ETF 期权标的 * SSE.510300 为上交所上证 300 ETF 期权标的 * SZSE.159919 为深交所沪深 300 ETF 期权标的
underlying_price (float): [必填] 标的价格,该价格用户输入可以是任意值,例如合约最新价,最高价,开盘价等然后以该值去对比实值/虚值/平值期权
- option_class (str): [必填] 期权类型
CALL: 看涨期权
PUT: 看跌期权
- nearbys (int / list of int) [必填] 将所有未下市期权按照最后行权日由近到远排序,参数 0 代表的是当前月/最接近当前月份的未下市期权, 1 代表下一个到期的期权,依此类推
*对于 ETF 期权来说 1 代表在参数 0 后的下月,2 代表随后的第一个一个季月,3 代表随后的第二个季月 *对于股指期权来说 1 代表在参数 0 后的下月,2 代表下下月,3 代表随后第一个季月,4 代表随后第二个季月,5 代表随后第三个季月
has_A (bool): [可选] 是否含有A,输入True代表只含A的期权,输入False代表不含A的期权,默认为None不做区分
Returns:
返回三个列表,分别为实值期权列表、平值期权列表、虚值期权列表。其中,平值期权列表只包含一个元素。
对于看涨期权,返回的实值期权列表、平值期权列表、虚值期权列表其期权行权价依此递增;
对于看跌期权,返回的实值期权列表、平值期权列表、虚值期权列表其期权行权价依此递减。
注:当选择平值期权时,会按以下逻辑进行选择:
根据用户传入参数来生成一个期权列表,在这个期权列表中来选择是否有和传入价格相比的平值期权并返回
如果没有符合的平值期权,则取行权价距离传入价格绝对值相差最小的期权作为平值期权
如果存在最近的两个期权的行权价到传入价格的绝对值最小且相等,则取虚值的那个期权作为平值期权,其他档位期权依次展开
Example:
from tqsdk2 import TqApi, TqAuth, TqAccount api = TqApi(auth=TqAuth("信易账户", "账户密码")) quote = api.get_quote("SSE.510300") in_money_options, at_money_options, out_of_money_options = api.query_all_level_finance_options("SSE.510300", quote.last_price, "CALL", nearbys = 1) print(in_money_options) # 实值期权列表 print(at_money_options) # 平值期权列表 print(out_of_money_options) # 虚值期权列表 api.close()
- get_trading_status(self: tqsdk2.tqsdk2.TqApi, symbol: str) tqsdk2.tqsdk2.TradingStatus
获取指定合约的交易状态
- Args:
symbol (str): 合约
- Returns:
交易状态的引用, 对于每个在交易所交易的品种,它在任意时刻都处于以下三种状态之一.
AUCTIONORDERING : 集合竞价报单, 允许用户报单, 报单不会立即成交, 而是等到集合竞价撮合阶段成交
CONTINOUS : 连续交易. 主要的交易时段
NOTRADING : 非交易时段, 例如午休时间、收盘时间、集合竞价撮合. 不允许用户报单
Example:
# 集合竞价报单阶段进行开盘抢单 from tqsdk2 import TqApi, TqAuth, TqAccount account = TqCtp(front_url, front_broker, app_id, auth_code, account_id, password) api = TqApi(account = account, auth=TqAuth("信易账户", "账户密码")) ts = api.get_trading_status("SHFE.cu2201") while True: api.wait_update() if ts.trade_status == "AUCTIONORDERING": order = api.insert_order("SHFE.cu2201","BUY","OPEN", 1, 71400) break api.close()
- get_margin_rates(self: tqsdk2.tqsdk2.TqApi, symbol: str, account: object = None) List[float]
获取指定合约的保证金率
该方法仅支持直连 CTP 柜台时使用。受限制于 CTP 柜台的流控机制(每秒 1 笔), 短时间发送大量查询指令后, 后续查询指令将会排队等待。 为了避免盘中的查询等待时间, 建议盘前启动程序, 对标的合约提前进行查询。
Args:
symbol (str): 合约
account (
TqCtp
): [可选]指定发送下单指令的账户实例, 多账户模式下,该参数必须指定- Returns:
rates (list) 合约保证金信息, 格式: [合约多仓保证金率, 合约空仓保证金率]
Example:
from tqsdk2 import TqApi, TqAuth, TqCtp account = TqCtp(front_url, front_broker, app_id, auth_code, account_id, password) api = TqApi(account = account, auth=TqAuth("信易账户", "账户密码")) rate = api.get_margin_rates("SHFE.cu2201") print(rate) api.close()