xtdata 模块帮助信息
PTD
阅读:22
2025-06-09 16:04:13
评论:0
===== xtdata 模块帮助信息 =====
--- 类: QuoteServer ---
None
--- _BSON_call_common ---
None
--- _convert_component_info ---
None
--- _covert_hk_broke_data ---
None
--- _download_history_data ---
None
--- _download_history_data_by_metaid ---
None
--- _get_data_file_path ---
None
--- _get_index_mirror_data ---
获取指标全推数据
参数:
code_list:
list[str] 市场或股票代码列表
period:
str 指标全推支持周期
hftransactioncount 大单统计
fullspeedorderbook 全速盘口
返回:
dict
--- _get_instrument_detail ---
None
--- _get_market_data_ex_221207 ---
None
--- _get_market_data_ex_250414 ---
None
--- _get_market_data_ex_ori_221207 ---
None
--- _get_market_data_ex_tuple_period ---
None
--- _get_market_data_ex_tuple_period_ori ---
None
--- _get_tabular_data ---
None
--- _needconvert_period ---
None
--- _validate_period ---
验证周期的有效性。
根据输入周期类型(元组或字符串),在预定义的周期映射中查找并返回标准化后的周期信息。
Args:
period (tuple | str): 需要验证的周期。
- 如果是元组,期望格式为 (metaid, period_num),例如 (3001, 60000)。
- 如果是字符串,例如 '1m', 'etfiopv'。
Returns:
tuple: 包含三个元素的元组 (str_period, meta_id, period_num)
- str_period (str): 标准化的周期字符串。如果输入是元组且在 __STR_PERIODS 中找不到,则为空字符串。
如果输入是字符串,则为原始字符串或在 __TUPLE_PERIODS 中定义的名称。
- meta_id (int): 周期的元数据ID。如果找不到,则为 -1 (当输入为字符串时) 或元组中的原始值。
- period_num (int): 周期的数值表示。如果找不到,则为 -1 (当输入为字符串时) 或元组中的原始值。
--- add_sector ---
增加自定义板块
:param sector_name: 板块名称 e.g. "我的自选"
:param stock_list: (list)stock.market组成的股票代码列表
--- bind_formula ---
None
--- bnd_get_amount_change ---
查询可转债剩余规模变动
stock_code: str 转债代码
start_time: str 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: str 结束时间(可不填),格式为"%Y%m%d",默认为""
--- bnd_get_call_info ---
查询可转债赎回信息
stock_code: str 转债代码
start_time: str 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: str 结束时间(可不填),格式为"%Y%m%d",默认为""
--- bnd_get_conversion_price ---
查询可转债转股价变动信息
stock_code: str 转债代码
start_time: str 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: str 结束时间(可不填),格式为"%Y%m%d",默认为""
--- bnd_get_put_info ---
查询可转债回售信息
stock_code: str 转债代码
start_time: str 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: str 结束时间(可不填),格式为"%Y%m%d",默认为""
--- call_formula ---
None
--- compute_coming_trading_calendar ---
未来交易日函数
note: 历史交易日,可以使用get_trading_calendar函数
--- connect ---
None
--- create_array ---
None
--- create_formula ---
创建策略
formula_name: str 策略名称
formula_content: str 策略内容
formula_params: dict 策略参数
返回: None
如果成功,返回None
如果失败,会抛出异常信息
--- create_sector ---
创建板块
:parent_node str: 父节点,''为'我的' (默认目录)
:sector_name str: 要创建的板块名
:overwrite bool:是否覆盖 True为跳过,False为在sector_name后增加数字编号,编号为从1开始自增的第一个不重复的值
--- create_sector_folder ---
创建板块目录节点
:parent_node str: 父节点,''为'我的' (默认目录)
:sector_name str: 要创建的板块目录名称
:overwrite bool:是否覆盖 True为跳过,False为在folder_name后增加数字编号,编号为从1开始自增的第一个不重复的值
--- datetime_to_timetag ---
None
--- del_formula ---
删除策略
formula_name: str 策略名称
--- disconnect ---
None
--- download_cb_data ---
None
--- download_etf_info ---
None
--- download_financial_data ---
:param stock_list: 股票代码列表
:param table_list: 财务数据表名列表,[]为全部表
可选范围:['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD
例如:'20200427'
- datetime.datetime对象
:param end_time: 结束时间 同上,若是未来某时刻会被视作当前时间
--- download_financial_data2 ---
:param stock_list: 股票代码列表
:param table_list: 财务数据表名列表,[]为全部表
可选范围:['Balance','Income','CashFlow','Capital','Top10FlowHolder','Top10Holder','HolderNum','PershareIndex']
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD
例如:'20200427'
- datetime.datetime对象
:param end_time: 结束时间 同上,若是未来某时刻会被视作当前时间
--- download_his_st_data ---
下载历史st数据
--- download_history_contracts ---
下载过期合约数据
incrementally: bool 是否增量
--- download_history_data ---
:param stock_code: str 品种代码,例如:'000001.SZ'
:param period: str 数据周期
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss 或 ''
例如:'20230101' '20231231235959'
空字符串代表全部,自动扩展到完整范围
- datetime.datetime对象c
:param end_time: str 结束时间 格式同开始时间
:param incrementally: 是否增量下载
bool: 是否增量下载
None: 使用start_time控制,start_time为空则增量下载
--- download_history_data2 ---
:param stock_list: 股票代码列表 e.g. ["000001.SZ"]
:param period: 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss
例如:'20200427' '20200427093000'
若取某日全量历史数据,时间需要具体到秒,e.g."20200427093000"
- datetime.datetime对象
:param end_time: 结束时间 同上,若是未来某时刻会被视作当前时间
:return: bool 是否成功
--- download_holiday_data ---
None
--- download_index_weight ---
下载指数权重数据
--- download_metatable_data ---
下载metatable信息
通常在客户端启动时自动获取,不需要手工调用
--- download_sector_data ---
下载行业板块数据
--- download_tabular_data ---
下载表数据,可以按条数或按时间范围下载
stock_list: 股票列表
- list
period: 周期
- str 例如 '1m' '5m' '1d'
start_time: 起始时间
- str 格式yyyyMMdd/yyyyMMddHHmmss,例如:
'20240101' '20240101000000'
'' 代表 '19700101'
- datetime.datetime对象
end_time: 结束时间
- str 格式yyyyMMdd/yyyyMMddHHmmss,例如:
'20241231' '20241231235959'
'' 代表 '20380119'
- datetime.datetime对象
incrementally: 是否增量
- bool
download_type: 下载类型
- str
'bypage' - 按条数下载
'byregion' - 按时间范围下载
'validatebypage' - 数据校验按条数下载
source: 指定下载地址
- str
--- fetch_quote_server_from_config ---
None
--- gen_factor_index ---
生成因子指数扩展数据
--- generate_index_data ---
formula_name:
str 模型名称
formula_param:
dict 模型参数
例如 {'param1': 1.0, 'param2': 'sym'}
stock_list:
list 股票列表
period:
str 周期
'1m' '5m' '1d'
dividend_type:
str 复权方式
'none' - 不复权
'front_ratio' - 等比前复权
'back_ratio' - 等比后复权
start_time:
str 起始时间 '20240101' '20240101000000'
'' - '19700101'
end_time:
str 结束时间 '20241231' '20241231235959'
'' - '20380119'
fill_mode:
str 空缺填充方式
'fixed' - 固定值填充
'forward' - 向前延续
fill_value:
float 填充数值
float('nan') - 以NaN填充
result_path:
str 结果文件路径,feather格式
--- getDividFactors ---
None
--- get_all_kline_trading_periods ---
获取全部市场的分割K线交易时间段
--- get_all_sub_info ---
获取客户端所有订阅信息
返回: list
例如: [{'addr': '42.228.16.210:55300', 'stockCode': '000300.SH', 'period': 60000, 'metaId': 3001}]
--- get_all_trading_periods ---
获取全部市场的真实交易时间段
--- get_authorized_market_list ---
获取所有已授权的市场
返回 list
--- get_broker_queue_data ---
None
--- get_cb_info ---
None
--- get_client ---
None
--- get_current_connect_sub_info ---
获取当前连接订阅的数据信息
返回: list
例如:[{'subId': 1, 'stockCode': '000001.SZ', 'period': 60000, 'metaId': 3001, 'isSub': True}]
--- get_data_dir ---
如果更改过`xtdata.data_dir`变量的值,优先返回变量设置的值
没有设置过,返回服务的数据路径
注意----设置`xtdata.data_dir`的值可以强制指定读取本地数据的位置,谨慎修改
--- get_divid_factors ---
获取除权除息日及对应的权息
:param stock_code: (str)股票代码
:param date: (str)日期
:return: pd.DataFrame 数据集
--- get_etf_info ---
None
--- get_field_list ---
None
--- get_financial_data ---
获取财务数据
:param stock_list: (list)合约代码列表
:param table_list: (list)报表名称列表
:param start_time: (str)起始时间
:param end_time: (str)结束时间
:param report_type: (str) 时段筛选方式 'announce_time' / 'report_time'
:return:
field: list[str]
date: list[int]
stock: list[str]
value: list[list[float]]
--- get_financial_data_ori ---
None
--- get_formula_result ---
根据模型ID获取模型结果
request_id: 模型ID,例如subscribe_formula返回值
start_time: 起始时间 "20200101" "20200101093000"
end_time: 结束时间 "20201231" "20201231150000"
count: 数量 -1全部/n: 从结束时间向前数n个
timeout_second: 等待时间,-1无限等待,0立即返回,+n等待n秒,超时抛异常
--- get_formulas ---
查询所有的策略
--- get_full_kline ---
k线全推获取最新交易日数据
--- get_full_tick ---
获取盘口tick数据
:param code_list: (list)stock.market组成的股票代码列表
:return: dict
{'stock.market': {dict}}
--- get_fullspeed_orderbook ---
获取全速盘口数据
参数:
code_list:
list[str] 市场或股票代码列表
返回:
dict
--- get_his_option_list ---
获取历史上某日的指定品种期权信息列表
:param undl_code: (str)标的代码,格式 stock.market e.g."000300.SH"
:param date: (str)日期 格式YYYYMMDD,e.g."20200427"
:return: dataframe
--- get_his_option_list_batch ---
获取历史上某段时间的指定品种期权信息列表
:param undl_code: (str)标的代码,格式 stock.market e.g."000300.SH"
:param start_time,start_time: (str)日期 格式YYYYMMDD,e.g."20200427"
:return: {date : dataframe}
--- get_his_st_data ---
None
--- get_hk_broker_dict ---
None
--- get_holidays ---
获取节假日列表
:return: 8位int型日期
--- get_index_weight ---
获取某只股票在某指数中的绝对权重
:param index_code: (str)指数名称
:return: dict
--- get_instrument_detail ---
获取合约信息
:param stock_code: 股票代码 e.g. "600000.SH"
:return: dict
ExchangeID(str):合约市场代码
, InstrumentID(str):合约代码
, InstrumentName(str):合约名称
, ProductID(str):合约的品种ID(期货)
, ProductName(str):合约的品种名称(期货)
, ProductType(str):合约的类型
, ExchangeCode(str):交易所代码
, UniCode(str):统一规则代码
, CreateDate(str):上市日期(期货)
, OpenDate(str):IPO日期(股票)
, ExpireDate(str):退市日或者到期日
, PreClose(double):前收盘价格
, SettlementPrice(double):前结算价格
, UpStopPrice(double):当日涨停价
, DownStopPrice(double):当日跌停价
, FloatVolume(double):流通股本
, TotalVolume(double):总股本
, LongMarginRatio(double):多头保证金率
, ShortMarginRatio(double):空头保证金率
, PriceTick(double):最小变价单位
, VolumeMultiple(int):合约乘数(对期货以外的品种,默认是1)
, MainContract(int):主力合约标记
, LastVolume(int):昨日持仓量
, InstrumentStatus(int):合约停牌状态
, IsTrading(bool):合约是否可交易
, IsRecent(bool):是否是近月合约,
--- get_instrument_detail_list ---
获取合约信息列表
stock_list: list
股票代码列表 [ stock1, stock2,... ]
iscomplete: bool
是否返回完整信息,默认False,只返回部分信息
return: dict
合约信息列表 { stock1: inst1, stock2: inst2, ... }
stock: 股票代码
inst: 合约信息字典,格式同get_instrument_detail返回值
--- get_instrument_type ---
判断证券类型
:param stock_code: 股票代码 e.g. "600000.SH"
:return: dict{str : bool} {类型名:是否属于该类型}
--- get_ipo_info ---
None
--- get_kline_trading_period ---
获取指定品种的K线时段
stock_code: str 合约代码
返回: dict
{
'market': market,
'codeRegex': codeRegex,
'product': [ product_code1, product_code2, ... ],
'category': [ category1, category2, ... ],
'tradings': [ trading_period1, trading_period2, ... ],
}
market: str 市场代码
codeRegex: str 代码匹配规则
product_code: str 产品代码
category: int 证券分类
通过指定stock_code获取到的交易时段信息已经是和这个品种匹配的,
通常不需要使用codeRegex, product, category这三个字段
trading_period: dict 交易时段
{ 'type': type, ... }
type: str 交易时段类型
'auction' - 竞价交易
'continuous' - 连续交易
type为不同类型时,其余字段内容不同
type为auction时,字段内容如下:
{
'type': 'auction',
'source': [
trading_day_offset
, [ begin_time, boundary_type ]
, [ end_time, boundary_type ]
],
'bartime': [ trading_day_offset, target_time ],
}
使用竞价交易时段合并K线时,任何在source范围内的tick数据都应该被视为时间点为bartime的tick数据
type为continuous时,字段内容如下:
{
'type': 'continuous',
'bartime': [ trading_day_offset, begin_time, end_time ],
}
使用连续交易时段合并K线时,在begin_time和end_time之间的tick数据按具体K线周期合并为K线
trading_day_offset: int 交易日偏移
begin_time: int 开始时间, 时分秒
例如 930000 表示 09:30:00
1130000 表示 11:30:00
特殊地,负数表示小时为0点以前的时间,例如 -45500 表示前一个自然日的 20:55:00
超过24小时的时间,表示24点后的时间,例如 263000 表示下一个自然日的 02:30:00
end_time: int 结束时间, 时分秒
boundary_type: int 边界类型, 范围为 -1 0 1
以begin_time为例,
-1表示边界时间点小于begin_time
0表示边界时间点等于begin_time
1表示边界时间点大于begin_time
例如begin_time为93000, boundary_type为1, 则开始时间为09:30:00之后,且09:30:00不在范围内
例如end_time为210000, boundary_type为-1, 则结束时间为21:00:00之前,且21:00:00不在范围内
--- get_l2_order ---
level2逐笔委托
--- get_l2_quote ---
level2实时行情
--- get_l2_transaction ---
level2逐笔成交
--- get_l2thousand_queue ---
获取千档盘口队列数据
参数:
stock_code:
str 股票代码 例如 '000001.SZ'
gear_num:
int 订阅的档位数
传 None 表示订阅全部档位
price:
list[float] | tuple(2) 订阅的价格范围
传 None 表示订阅全部价格
返回:
dict
--- get_local_data ---
None
--- get_main_contract ---
获取主力合约/历史主力合约
注意:获取历史主力合约需要先调用下载函数xtdata.download_history_data(symbol, 'historymaincontract', '', '')
Args:
code_market: 主力连续合约code,如"IF00.IF","AP00.ZF"
start_time: 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: 结束时间(可不填),格式为"%Y%m%d",默认为""
Return:
str:默认取当前主力合约代码
str:当指定start_time,不指定end_time时,返回指定日期主力合约代码
pd.Series:当指定start_time,end_time,返回区间内主力合约组成的Series,index为时间戳
Example:
xtdata.get_main_contract("AP00.ZF") # 取当前主力合约
xtdata.get_main_contract("AP00.ZF","20230101") # 取历史某一天主力合约
xtdata.get_main_contract("AP00.ZF","20230101","20240306") # 取某个时间段的主力合约序列
--- get_market_data ---
获取历史行情数据
:param field_list: 行情数据字段列表,[]为全部字段
K线可选字段:
"time" #时间戳
"open" #开盘价
"high" #最高价
"low" #最低价
"close" #收盘价
"volume" #成交量
"amount" #成交额
"settle" #今结算
"openInterest" #持仓量
分笔可选字段:
"time" #时间戳
"lastPrice" #最新价
"open" #开盘价
"high" #最高价
"low" #最低价
"lastClose" #前收盘价
"amount" #成交总额
"volume" #成交总量
"pvolume" #原始成交总量
"stockStatus" #证券状态
"openInt" #持仓量
"lastSettlementPrice" #前结算
"askPrice1", "askPrice2", "askPrice3", "askPrice4", "askPrice5" #卖一价~卖五价
"bidPrice1", "bidPrice2", "bidPrice3", "bidPrice4", "bidPrice5" #买一价~买五价
"askVol1", "askVol2", "askVol3", "askVol4", "askVol5" #卖一量~卖五量
"bidVol1", "bidVol2", "bidVol3", "bidVol4", "bidVol5" #买一量~买五量
:param stock_list: 股票代码 "000001.SZ"
:param period: 周期 分笔"tick" 分钟线"1m"/"5m"/"15m" 日线"1d"
Level2行情快照"l2quote" Level2行情快照补充"l2quoteaux" Level2逐笔委托"l2order" Level2逐笔成交"l2transaction" Level2大单统计"l2transactioncount" Level2委买委卖队列"l2orderqueue"
Level1逐笔成交统计一分钟“transactioncount1m” Level1逐笔成交统计日线“transactioncount1d”
期货仓单“warehousereceipt” 期货席位“futureholderrank” 互动问答“interactiveqa”
:param start_time: 起始时间 "20200101" "20200101093000"
:param end_time: 结束时间 "20201231" "20201231150000"
:param count: 数量 -1全部/n: 从结束时间向前数n个
:param dividend_type: 除权类型"none" "front" "back" "front_ratio" "back_ratio"
:param fill_data: 对齐时间戳时是否填充数据,仅对K线有效,分笔周期不对齐时间戳
为True时,以缺失数据的前一条数据填充
open、high、low、close 为前一条数据的close
amount、volume为0
settle、openInterest 和前一条数据相同
为False时,缺失数据所有字段填NaN
:return: 数据集,分笔数据和K线数据格式不同
period为'tick'时:{stock1 : value1, stock2 : value2, ...}
stock1, stock2, ... : 合约代码
value1, value2, ... : np.ndarray 数据列表,按time增序排列
period为其他K线周期时:{field1 : value1, field2 : value2, ...}
field1, field2, ... : 数据字段
value1, value2, ... : pd.DataFrame 字段对应的数据,各字段维度相同,index为stock_list,columns为time_list
--- get_market_data3 ---
None
--- get_market_data_ex ---
None
--- get_market_data_ex_ori ---
None
--- get_market_data_ori ---
None
--- get_market_last_trade_date ---
None
--- get_markets ---
获取所有可选的市场
返回 dict
{ <市场代码>: <市场名称>, ... }
--- get_metatable_config ---
获取metatable列表原始配置信息
--- get_metatable_fields ---
获取metatable数据表字段信息
table: str
数据表代码 table_code 或 数据表名称 table_name
return: pd.DataFrame
columns = ['code', 'name', 'type']
--- get_metatable_info ---
获取metatable数据表信息
table: str
数据表代码 table_code 或 数据表名称 table_name
return: dict
{
'code': table_code
, 'name': table_name
, 'desc': desc
, 'fields': fields
}
table_code: str
数据表代码
table_name: str
数据表名称
desc: str
描述
fields: dict
{ 'code': field_code, 'name': field_name, 'type': field_type }
--- get_metatable_list ---
获取metatable列表
return:
{ table_code1: table_name1, table_code2: table_name2, ... }
table_code: str
数据表代码
table_name: str
数据表名称
--- get_option_detail_data ---
None
--- get_option_list ---
None
--- get_option_undl_data ---
None
--- get_order_rank ---
获取委托在千档队列中的排名, 需要订阅千档数据,并且数据源为本地计算的千档数据
:param code: 股票代码 e.g. "000001.SZ"
:param order_time: 委托时间 支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss,e.g."20200427" "20200427093000"
- datetime对象
:param order_type: 委托类型,即买卖方向,e.g.'buy' 'sell'
:param order_price: 委托价格
:param order_volume: 委托量
:param order_left_volume: 委托未成量
:return: dict
pricerank:价内排名
--- get_period_list ---
None
--- get_quote_server_config ---
获取连接配置
result: [info, ...]
--- get_quote_server_status ---
获取当前全局连接状态
result: {
quote_key: info
, ...
}
--- get_sec_main_contract ---
获取次主力合约/历史次主力合约
注意:获取历史次主力合约需要先调用下载函数xtdata.download_history_data(symbol, 'historymaincontract', '', '')
Args:
code_market: 主力连续合约code,如"IF00.IF","AP00.ZF"
start_time: 开始时间(可不填),格式为"%Y%m%d",默认为""
end_time: 结束时间(可不填),格式为"%Y%m%d",默认为""
Return:
str:默认取当前次主力合约代码
str:当指定start_time,不指定end_time时,返回指定日期次主力合约代码
pd.Series:当指定start_time,end_time,返回区间内次主力合约组成的Series,index为时间戳
Example:
xtdata.get_sec_main_contract("AP00.ZF") # 取当前次主力合约
xtdata.get_sec_main_contract("AP00.ZF","20230101") # 取历史某一天次主力合约
xtdata.get_sec_main_contract("AP00.ZF","20230101","20240306") # 取某个时间段的次主力合约序列
--- get_sector_info ---
获取板块信息
:param sector_name: (str) 板块名称,默认为空字符串,表示获取所有板块信息
:return: (pandas.DataFrame) 包含板块信息的数据框
--- get_sector_list ---
获取板块列表
:return: (list[str])
--- get_stock_list_in_sector ---
获取板块成份股,支持客户端左侧板块列表中任意的板块,包括自定义板块
:param sector_name: (str)板块名称
:real_timetag: 时间:1512748800000 或 ‘20171209’,可缺省,缺省为获取最新成份,不缺省时获取对应时间的历史成份
:return: list
--- get_stock_type ---
判断证券类型
:param stock_code: 股票代码 e.g. "600000.SH"
:return: dict{str : bool} {类型名:是否属于该类型}
--- get_tabular_bson ---
None
--- get_tabular_data ---
获取历史行情数据
:param field_list: 行情数据字段列表,[]为全部字段
K线可选字段:
"time" #时间戳
"open" #开盘价
"high" #最高价
"low" #最低价
"close" #收盘价
"volume" #成交量
"amount" #成交额
"settle" #今结算
"openInterest" #持仓量
:param stock_list: 股票代码 "000001.SZ"
:param period: 周期 分钟线"1m"/"5m"/"15m" 日线"1d"
:param start_time: 起始时间 "20200101" "20200101093000"
:param end_time: 结束时间 "20201231" "20201231150000"
:param count: 数量 -1全部/n: 从结束时间向前数n个
:param dividend_type: 除权类型"none" "front" "back" "front_ratio" "back_ratio"
:param fill_data: 对齐时间戳时是否填充数据,仅对K线有效,分笔周期不对齐时间戳
为True时,以缺失数据的前一条数据填充
open、high、low、close 为前一条数据的close
amount、volume为0
settle、openInterest 和前一条数据相同
为False时,缺失数据所有字段填NaN
:return: pd.DataFrame 字段对应的数据,各字段维度相同,index为为time_list,包含symbol列
--- get_tabular_formula ---
None
--- get_trading_calendar ---
获取指定市场交易日历
未来交易日根据节假日推算
:param market: str 市场
:param start_time: str 起始时间 '20200101'
:param end_time: str 结束时间 '20201231'
:return:
note: 查看节假日未公布的未来交易日,可以使用compute_coming_trading_calendar函数
--- get_trading_contract_list ---
获取当前主力合约可交易标的列表
stockcode:
str, 合约代码,需要用主力合约
date:
str, 查询日期, 8位日期格式,默认为最新交易日
--- get_trading_dates ---
根据市场获取交易日列表
: param market: 市场代码 e.g. 'SH','SZ','IF','DF','SF','ZF'等
: param start_time: 起始时间 '20200101'
: param end_time: 结束时间 '20201231'
: param count: 数据个数,-1为全部数据
:return list(long) 毫秒数的时间戳列表
--- get_trading_period ---
获取指定品质真实交易时间段
stock_code: str 合约代码
返回:dict
{
'market': market,
'codeRegex': codeRegex,
'product': [ product_code1, product_code2, ... ],
'category': [ category1, category2, ... ],
'tradings': [ trading_period1, trading_period2, ... ],
}
market: str 市场代码
codeRegex: str 代码匹配规则
product_code: str 产品代码
category: int 证券分类
通过指定stock_code获取到的交易时段信息已经是和这个品种匹配的,
通常不需要使用codeRegex, product, category这三个字段
trading_period: dict 交易时段
{
'status': status,
'time': [
trading_day_offset
, [ begin_time, boundary_type ]
, [ end_time, boundary_type ]
],
}
status: int 交易时段类型
2 - 盘前竞价
3 - 连续交易
8 - 尾盘竞价
15 - 集合竞价对盘时段(港股)
trading_day_offset: int 交易日偏移
begin_time: int 开始时间, 时分秒
例如 930000 表示 09:30:00
1130000 表示 11:30:00
特殊地,负数表示小时为0点以前的时间,例如 -45500 表示前一个自然日的 20:55:00
超过24小时的时间,表示24点后的时间,例如 263000 表示下一个自然日的 02:30:00
end_time: int 结束时间, 时分秒
boundary_type: int 边界类型, 范围为 -1 0 1
以begin_time为例,
-1表示边界时间点小于begin_time
0表示边界时间点等于begin_time
1表示边界时间点大于begin_time
例如begin_time为93000, boundary_type为1, 则开始时间为09:30:00之后,且09:30:00不在范围内
例如end_time为210000, boundary_type为-1, 则结束时间为21:00:00之前,且21:00:00不在范围内
--- get_transactioncount ---
获取大单统计数据
参数:
code_list:
list[str] 市场或股票代码列表
返回:
dict
--- get_wp_market_list ---
获取所有外盘的市场
返回 list
--- gld ---
None
--- gmd ---
获取历史行情数据
:param field_list: 行情数据字段列表,[]为全部字段
K线可选字段:
"time" #时间戳
"open" #开盘价
"high" #最高价
"low" #最低价
"close" #收盘价
"volume" #成交量
"amount" #成交额
"settle" #今结算
"openInterest" #持仓量
分笔可选字段:
"time" #时间戳
"lastPrice" #最新价
"open" #开盘价
"high" #最高价
"low" #最低价
"lastClose" #前收盘价
"amount" #成交总额
"volume" #成交总量
"pvolume" #原始成交总量
"stockStatus" #证券状态
"openInt" #持仓量
"lastSettlementPrice" #前结算
"askPrice1", "askPrice2", "askPrice3", "askPrice4", "askPrice5" #卖一价~卖五价
"bidPrice1", "bidPrice2", "bidPrice3", "bidPrice4", "bidPrice5" #买一价~买五价
"askVol1", "askVol2", "askVol3", "askVol4", "askVol5" #卖一量~卖五量
"bidVol1", "bidVol2", "bidVol3", "bidVol4", "bidVol5" #买一量~买五量
:param stock_list: 股票代码 "000001.SZ"
:param period: 周期 分笔"tick" 分钟线"1m"/"5m"/"15m" 日线"1d"
Level2行情快照"l2quote" Level2行情快照补充"l2quoteaux" Level2逐笔委托"l2order" Level2逐笔成交"l2transaction" Level2大单统计"l2transactioncount" Level2委买委卖队列"l2orderqueue"
Level1逐笔成交统计一分钟“transactioncount1m” Level1逐笔成交统计日线“transactioncount1d”
期货仓单“warehousereceipt” 期货席位“futureholderrank” 互动问答“interactiveqa”
:param start_time: 起始时间 "20200101" "20200101093000"
:param end_time: 结束时间 "20201231" "20201231150000"
:param count: 数量 -1全部/n: 从结束时间向前数n个
:param dividend_type: 除权类型"none" "front" "back" "front_ratio" "back_ratio"
:param fill_data: 对齐时间戳时是否填充数据,仅对K线有效,分笔周期不对齐时间戳
为True时,以缺失数据的前一条数据填充
open、high、low、close 为前一条数据的close
amount、volume为0
settle、openInterest 和前一条数据相同
为False时,缺失数据所有字段填NaN
:return: 数据集,分笔数据和K线数据格式不同
period为'tick'时:{stock1 : value1, stock2 : value2, ...}
stock1, stock2, ... : 合约代码
value1, value2, ... : np.ndarray 数据列表,按time增序排列
period为其他K线周期时:{field1 : value1, field2 : value2, ...}
field1, field2, ... : 数据字段
value1, value2, ... : pd.DataFrame 字段对应的数据,各字段维度相同,index为stock_list,columns为time_list
--- gmd2 ---
None
--- gmd3 ---
None
--- gsl ---
获取板块成份股,支持客户端左侧板块列表中任意的板块,包括自定义板块
:param sector_name: (str)板块名称
:real_timetag: 时间:1512748800000 或 ‘20171209’,可缺省,缺省为获取最新成份,不缺省时获取对应时间的历史成份
:return: list
--- hello ---
None
--- import_formula ---
导入策略
formula_name: str 策略名称
file_path: str 文件路径
一般为.rzrk文件,可以从qmt客户端导出得到
--- is_stock_type ---
None
--- push_custom_data ---
None
--- read_feather ---
读取feather格式的arrow文件
:param file_path: (str)
:return: param_bin: (dict), df: (pandas.DataFrame)
--- reconnect ---
None
--- remove_sector ---
删除自定义板块
:param sector_name: 板块名称 e.g. "我的自选"
--- remove_stock_from_sector ---
移除板块成分股
:param sector_name: 板块名称 e.g. "我的自选"
:stock_list: (list)stock.market组成的股票代码列表
--- reset_market_stock_list ---
None
--- reset_market_trading_day_list ---
None
--- reset_sector ---
重置板块
:param sector_name: 板块名称 e.g. "我的自选"
:stock_list: (list)stock.market组成的股票代码列表
--- run ---
阻塞线程接收行情回调
--- show_quote_server_status ---
获取每个key对应的连接的地址
返回:dict,{'0_SH_L1':'ip:port', ...}
--- subscribe_callback_wrapper ---
None
--- subscribe_callback_wrapper_1820 ---
None
--- subscribe_callback_wrapper_convert ---
None
--- subscribe_formula ---
None
--- subscribe_l2thousand ---
订阅千档盘口
参数:
stock_code:
str 股票代码 例如 '000001.SZ'
gear_num:
int 订阅的档位数
传 None 表示订阅全部档位
callback:
def ondata(data):
print(data)
返回:
int 订阅号
示例:
def on_data(data):
print(data)
seq = xtdata.subscribe_l2thousand('000001.SZ', gear_num = 10, callback = on_data)
数据示例:
data: dict
{'002594.SZ': [{'time': 1733120580630, 'askPrice': [282.14, 282.18, 282.19, 282.2, 282.21, 282.22, 282.24, 282.25, 282.26, 282.29], 'askVolume': [4, 2, 3, 4, 5, 6, 54, 3, 1, 4], 'bidPrice': [282.08, 282.06, 282.05, 282.02, 282.01, 282.0, 281.99, 281.98, 281.95, 281.94], 'bidVolume': [3, 3, 3, 2, 5, 58, 1, 2, 1, 4], 'price': 282.14}]}
--- subscribe_l2thousand_queue ---
订阅千档盘口队列
参数:
stock_code:
str 股票代码 例如 '000001.SZ'
callback:
def ondata(data):
print(data)
gear_num:
int 订阅的档位数
传 None 表示订阅全部档位
price:
float 指定一个订阅价格档位
list[float] 指定多个订阅价格档位
tuple(2) 指定价格范围,从tuple[0]到tuple[1],精度0.01
传 None 表示订阅全部价格
返回:
int 订阅号
示例:
def ondata(data):
print(data)
# 订阅买卖2档
seq1 = xtdata.subscribe_l2thousand_queue('000001.SZ', callback = ondata, gear_num = 2)
# 订阅价格为11.3的档位
seq2 = xtdata.subscribe_l2thousand_queue('000001.SZ', callback = ondata, price = 11.3)
# 订阅价格范围为11.3到11.4的档位
seq3 = xtdata.subscribe_l2thousand_queue('000001.SZ', callback = ondata, price = (11.3, 11.4))
# 订阅价格为11.3和11.4的档位,只包含这两个具体价格
seq4 = xtdata.subscribe_l2thousand_queue('000001.SZ', callback = ondata, price = [11.3, 11.4])
数据示例:
data: dict
{'000001.SZ': [{'time': 1733120970090, 'bidGear': [1, 2], 'bidPrice': [11.36, 11.35], 'bidVolume': [[91, 100, 100, 100, 20, 100, 50, 29, 3, 51, 12, 308, 8, 20, 10, 5, 1, 1, 3, 12, 100, 100, 10, 62, 2, 35, 300, 51, 9, 100, 100, 10, 131, 5, 30, 4, 20, 30, 5, 20, 20, 12, 5, 3, 19, 11, 9, 5, 10, 5], [38, 26, 7, 15, 29, 3, 6, 25, 30, 20, 100, 17, 10, 60, 3, 38, 4, 3, 119, 200, 8, 5, 78, 2, 2, 1, 10, 22, 2, 13, 50, 2, 2, 100, 5, 8, 10, 12, 5, 10, 10, 50, 40, 3, 10, 1, 16, 10, 100, 24]], 'askGear': [1, 2], 'askPrice': [11.37, 11.38], 'askVolume': [[11, 15, 18, 10, 1, 2, 2, 1, 5, 2, 1, 5, 21, 5, 1, 67, 2, 225, 1, 3, 5, 5, 104, 4, 21, 300, 3, 18, 17, 1, 102, 6, 2, 4, 2, 2, 4, 2, 4, 2, 1, 5, 2, 2, 34, 2, 1, 60, 1, 118], [12, 7, 20, 1, 10, 6, 5, 71, 1, 7, 794, 2, 100, 40, 28, 429, 13, 16, 7, 9, 130, 6, 11, 3, 4, 1, 5, 1, 167, 11, 12, 84, 56, 7, 3, 2, 10, 1, 1, 20, 10, 1, 22, 10, 2, 70, 30, 7, 3, 1]]}]}
--- subscribe_quote ---
订阅股票行情数据
:param stock_code: 股票代码 e.g. "000001.SZ"
:param period: 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"等周期
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss,e.g."20200427" "20200427093000"
- datetime对象
若取某日全量历史数据,时间需要具体到秒,e.g."20200427093000"
:param end_time: 结束时间 同“开始时间”
:param count: 数量 -1全部/n: 从结束时间向前数n个
:param callback:
订阅回调函数onSubscribe(datas)
:param datas: {stock : [data1, data2, ...]} 数据字典
:return: int 订阅序号
--- subscribe_quote2 ---
订阅股票行情数据第二版
与第一版相比增加了除权参数dividend_type,默认None
:param stock_code: 股票代码 e.g. "000001.SZ"
:param period: 周期 分笔"tick" 分钟线"1m"/"5m" 日线"1d"等周期
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss,e.g."20200427" "20200427093000"
- datetime对象
若取某日全量历史数据,时间需要具体到秒,e.g."20200427093000"
:param end_time: 结束时间 同“开始时间”
:param count: 数量 -1全部/n: 从结束时间向前数n个
:param dividend_type: 除权类型"none" "front" "back" "front_ratio" "back_ratio"
:param callback:
订阅回调函数onSubscribe(datas)
:param datas: {stock : [data1, data2, ...]} 数据字典
:return: int 订阅序号
--- subscribe_whole_quote ---
订阅全推数据
参数:
code_list:
list
[market1, market2, ...]
或 [stock1, stock2, ...]
callback:
def ondata(datas):
pass
datas:
{stock1 : data1, stock2 : data2, ...}
返回:
int 订阅号
示例:
def on_data(datas):
print(datas)
seq1 = xtdata.subscribe_whole_quote(['SH', 'SZ'], on_data)
seq2 = xtdata.subscribe_whole_quote(['600000.SH', '000001.SZ'], on_data)
数据示例:
datas: dict
{'000001.SZ': {'time': 1733118954000, 'lastPrice': 11.39, 'open': 11.39, 'high': 11.4, 'low': 11.31, 'lastClose': 11.38, 'amount': 862127800.0, 'volume': 758613, 'pvolume': 75861284, 'stockStatus': 3, 'openInt': 13, 'transactionNum': 37062, 'lastSettlementPrice': 11.38, 'settlementPrice': 0.0, 'pe': 0.0, 'askPrice': [11.4, 11.41, 11.42, 11.43, 11.44], 'bidPrice': [11.39, 11.38, 11.370000000000001, 11.36, 11.35], 'askVol': [10929, 12401, 6671, 4555, 6708], 'bidVol': [2429, 7127, 7146, 9111, 12189], 'volRatio': 0.0, 'speed1Min': 0.0, 'speed5Min': 0.0}}
--- supply_history_data ---
:param stock_code: str 品种代码,例如:'000001.SZ'
:param period: str 数据周期
:param start_time: 开始时间,支持以下格式:
- str格式: YYYYMMDD/YYYYMMDDhhmmss 或 ''
例如:'20230101' '20231231235959'
空字符串代表全部,自动扩展到完整范围
- datetime.datetime对象c
:param end_time: str 结束时间 格式同开始时间
:param incrementally: 是否增量下载
bool: 是否增量下载
None: 使用start_time控制,start_time为空则增量下载
--- t2d ---
将毫秒时间转换成日期时间
:param timetag: (int)时间戳毫秒数
:param format: (str)时间格式
:return: str
--- timetagToDateTime ---
None
--- timetag_to_datetime ---
将毫秒时间转换成日期时间
:param timetag: (int)时间戳毫秒数
:param format: (str)时间格式
:return: str
--- try_except ---
None
--- unsubscribe_formula ---
None
--- unsubscribe_quote ---
:param seq: 订阅接口subscribe_quote返回的订阅号
:return:
--- watch_quote_server_status ---
监控全局连接状态变化
def callback(info):
#info: {address : 'ip:port', status: ''}
#status: 'connected', 'disconnected'
return
--- watch_xtquant_status ---
监控xtquant连接状态变化
def callback(info):
#info: {address : 'ip:port', status: ''}
#status: 'connected', 'disconnected'
return
--- write_feather ---
将panads.DataFrame转换为arrow.Table以feather格式写入文件
:param dest_path: (str)路径
:param param: (dict) schema的metadata
:param df: (pandas.DataFrame) 数据
:return: (bool) 成功/失败
===== xttrader 模块帮助信息 =====
--- 类: XtQuantTrader ---
None
--- 类: XtQuantTraderCallback ---
None
--- cp ---
None
--- title ---
None
本文由 海星量化研究所 作者提供,转载请保留链接和署名!网址:https://qmt.hxquant.com/?id=41
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源; 2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任; 3.作者投稿可能会经我们编辑修改或补充。