原生Python
调用方法
python
from xtquant import xtdata
xtdata.get_market_data_ex(
    field_list=[],# 字段
    stock_list=[],# 合约代码列表
    period='1d',# 数据周期——1m、5m、1d、tick
    start_time='',# 数据起始时间%Y%m%d或%Y%m%d%H%M%S
    end_time='',# 数据结束时间%Y%m%d或%Y%m%d%H%M%S
    count=-1, # 数据个数
    dividend_type='none', # 除权方式
    fill_data=True, # 是否填充数据
)
参数
| 名称 | 类型 | 描述 | 
|---|---|---|
| field | list | 数据字段,详情见下方field字段表 | 
| stock_list | list | 合约代码列表 | 
| period | str | 数据周期——1m、5m、1d、tick | 
| start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 | 
| end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 | 
| count | int | 数据个数 | 
| dividend_type | str | 除权方式 | 
| fill_data | bool | 是否填充数据 | 

- field字段可选:
| field | 数据类型 | 含义 | 
|---|---|---|
| time | int | 时间 | 
| open | float | 开盘价 | 
| high | float | 最高价 | 
| low | float | 最低价 | 
| close | float | 收盘价 | 
| volume | float | 成交量 | 
| amount | float | 成交额 | 
| settle | float | 今结算 | 
| openInterest | float | 持仓量 | 
| preClose | float | 前收盘价 | 
| suspendFlag | int | 停牌1停牌,0 不停牌 | 
- period周期为tick时,- field字段可选:
| 字段名 | 数据类型 | 含义 | 
|---|---|---|
| time | int | 时间戳 | 
| stime | string | 时间戳字符串形式 | 
| lastPrice | float | 最新价 | 
| open | float | 开盘价 | 
| high | float | 最高价 | 
| low | float | 最低价 | 
| lastClose | float | 前收盘价 | 
| amount | float | 成交总额 | 
| volume | int | 成交总量(手) | 
| pvolume | int | 原始成交总量(未经过股手转换的成交总量)【不推荐使用】 | 
| stockStatus | int | 证券状态 | 
| openInterest | int | 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明 | 
| transactionNum | float | 成交笔数(期货没有,单独计算) | 
| lastSettlementPrice | float | 前结算(股票为0) | 
| settlementPrice | float | 今结算(股票为0) | 
| askPrice | list[float] | 多档委卖价 | 
| askVol | list[int] | 多档委卖量 | 
| bidPrice | list[float] | 多档委买价 | 
| bidVol | list[int] | 多档委买量 | 
返回值
- period为1m5m1dK线周期时- 返回dict { field1 : value1, field2 : value2, ... }
- value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columns为time_list
- 各字段对应的DataFrame维度相同、索引相同
 
示例
from xtquant import xtdata
import time
def my_download(stock_list,period,start_date = '', end_date = ''):
  '''
  用于显示下载进度
  '''
  if "d" in period:
    period = "1d"
  elif "m" in period:
    if int(period[0]) < 5:
      period = "1m"
    else:
      period = "5m"
  elif "tick" == period:
    pass
  else:
    raise KeyboardInterrupt("周期传入错误")
  n = 1
  num = len(stock_list)
  for i in stock_list:
    print(f"当前正在下载{n}/{num}")
    
    xtdata.download_history_data(i,period,start_date, end_date)
    n += 1
  print("下载任务结束")
def do_subscribe_quote(stock_list:list, period:str):
  for i in stock_list:
    xtdata.subscribe_quote(i,period = period)
  time.sleep(1) # 等待订阅完成
if __name__ == "__main__":
  start_date = '20231001'# 格式"YYYYMMDD",开始下载的日期,date = ""时全量下载
  end_date = "" 
  period = "1d" 
  need_download = 1  # 取数据是空值时,将need_download赋值为1,确保正确下载了历史数据
  
  code_list = ["000001.SZ", "600519.SH"] # 股票列表
  if need_download: # 判断要不要下载数据, gmd系列函数都是从本地读取历史数据,从服务器订阅获取最新数据
    my_download(code_list, period, start_date, end_date)
  
  ############ 仅获取历史行情 #####################
  count = -1 # 设置count参数,使gmd_ex返回全部数据
  data1 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date)
  ############ 仅获取最新行情 #####################
  do_subscribe_quote(code_list,period)# 设置订阅参数,使gmd_ex取到最新行情
  count = 1 # 设置count参数,使gmd_ex仅返回最新行情数据
  data2 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date, count = 1) # count 设置为1,使返回值只包含最新行情
  ############ 获取历史行情+最新行情 #####################
  do_subscribe_quote(code_list,period) # 设置订阅参数,使gmd_ex取到最新行情
  count = -1 # 设置count参数,使gmd_ex返回全部数据
  data3 = xtdata.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date, count = -1) # count 设置为1,使返回值只包含最新行情
  print(data1[code_list[0]].tail())# 行情数据查看
  print(data2[code_list[0]].tail())
  print(data3[code_list[0]].tail())
仅获取历史行情
当前正在下载1/2
当前正在下载2/2
下载任务结束
                amount  close   high    low   open  openInterest  preClose  \
stime                                                                        
20231124  6.914234e+08  10.10  10.13  10.08  10.11            15     10.15   
20231127  8.362684e+08  10.01  10.09   9.97  10.09            15     10.10   
20231128  7.844058e+08   9.95  10.02   9.95   9.99            15     10.01   
20231129  1.438320e+09   9.72   9.97   9.70   9.95            15      9.95   
20231130  8.714817e+08   9.68   9.73   9.62   9.69            15      9.72   
          settelementPrice     stime  suspendFlag           time   volume  
stime                                                                      
20231124               0.0  20231124            0  1700755200000   684695  
20231127               0.0  20231127            0  1701014400000   836188  
20231128               0.0  20231128            0  1701100800000   786175  
20231129               0.0  20231129            0  1701187200000  1467597  
20231130               0.0  20231130            0  1701273600000   901765 仅获取最新行情
                amount  close  high   low  open  openInterest  preClose  \
stime                                                                     
20231130  8.714817e+08   9.68  9.73  9.62  9.69            15      9.72   
          settelementPrice     stime  suspendFlag           time  volume  
stime                                                                     
20231130               0.0  20231130            0  1701273600000  901765  
获取历史和最新行情
                amount  close   high    low   open  openInterest  preClose  \
stime                                                                        
20231124  6.914234e+08  10.10  10.13  10.08  10.11            15     10.15   
20231127  8.362684e+08  10.01  10.09   9.97  10.09            15     10.10   
20231128  7.844058e+08   9.95  10.02   9.95   9.99            15     10.01   
20231129  1.438320e+09   9.72   9.97   9.70   9.95            15      9.95   
20231130  8.714817e+08   9.68   9.73   9.62   9.69            15      9.72   
          settelementPrice     stime  suspendFlag           time   volume  
stime                                                                      
20231124               0.0  20231124            0  1700755200000   684695  
20231127               0.0  20231127            0  1701014400000   836188  
20231128               0.0  20231128            0  1701100800000   786175  
20231129               0.0  20231129            0  1701187200000  1467597  
20231130               0.0  20231130            0  1701273600000   901765  



















