历史数据服务

历史数据服务,是指自己编程通过API接口调用历史K线数据(不包含当前交易日的数据),用于量化回测等场景。

一、可选数据范围

二、服务费用

基础套餐
选配服务单价
WT9的量化套餐
基础价格
tick数据 + k线图+60000元/年/账号/交易所
k线图:1分钟/15分钟/日+30000元/年/账号/交易所
>>>点击去购买授权

三、API使用步骤

第一步:下载C++ API  或  下载Python API
第二步:使用授权账号/密码登录WT9通用版;
第三步:调用API接口的Init函数与WT9客户端建立连接 (WT9本地端口:7800/7600);
第四步:连接建立成功后,调用GetKLineData获取K线数据,调用GetTickData获取Tick数据。

注:测试可选沪铜加权数据。

四、API说明

提供Windows 64位的C++版本的动态库,动态库使用vs2008编译,指定运行以MD进行连接。

1. GetInstance函数

提供静态函数创建CWHDataApi的单例,懒汉模式,程序退出时自动释放内存。

函数原形:
      static CWHDataApi* GetInstance();
参数:
      无
返回结果:
      获取数据的API指针

2. RelaseInstance函数

提供主动释放CWHDataApi单例的方法。

函数原形:
      static void RelaseInstance();
参数:
      无
返回结果:
      无

3. GetApiVersion函数

提供获取API版本号的函数,API与客户端创建连接的时候,会验证版本号,如果版本号不一致会返回登录失败。可以通过该接口确认版本号。

函数原形:
      static const char* GetApiVersion();
参数:
      无
返回结果:
      API接口的版本号

4. Init函数

初始化连接的函数,使用该接口与WT9客户端创建连接,创建连接的过程中会验证行情账户以及API的版本号。

函数原形:
      virtual bool Init(
      const char* szUserName,
      CLIENT_TYPE nClientType,
      char* szErrorMsg,
      size_t nErrorLength) = 0;
参数:
      szUserName:行情账户
      nClientType:连接到哪个客户端 CLIENT_TYPE_T9 连接WT9客户端
      szErrorMsg:存储错误信息的指针,连接失败的时候存储错误提示信息
      nErrorLength:用来存放错误信息内存的长度,防止内部处理越界
返回结果:
      连接是否创建成功
      成功返回true
      失败返回false

5. GetKLineData函数

获取K线数据,返回数据指针和数据长度,内存内部管理,下次调用申请K线数据接口时清空。

函数原形:
      virtual bool GetKLineData(
      CWHKLineData*& pData,
      int& nCount,
      const char* szCode,
      int tBegin,
      int tEnd,
      const char* szPeriod,
      char* szErrorMsg,
      size_t nErrorLength) = 0;
参数:
      pData:返回获取到的数据
      nCount:返回的数据的个数
      szCode:合约的名称、可以是中文名、英文名、或者文华码
      tBegin:起始时间时间戳(秒)
      tEnd:结束时间时间戳(秒)
      szPeriod:周期信息”1Day”:日线 “15Min”:15分钟线 “1Min”:1分钟线
      szErrorMsg:存储错误信息的指针,连接失败的时候存储错误提示信息
      nErrorLength:用来存放错误信息内存的长度,防止内部处理越界
返回结果:
      获取K线数据是否成功
      成功返回true
      失败返回false
数据结构:
      K线数据结构
      struct CWHKLineData
      {
      int Time; // 时间
      float Open; // 开盘价
      float Close; // 收盘价
      float High; // 最高价
      float Low; // 最低价
      float Volume; // 成交量
      float OpI; // 持仓量
      float AVPrice;// 均价
      float Scale; // 主动买卖比例
      };

6. GetKLineDataOfTheYear函数

获取外盘合约年度的K线数据,返回数据指针和数据长度,内存内部管理,下次调用申请K线数据接口时清空。

函数原形:
      virtual bool GetKLineDataOfTheYear(
      CWHKLineData*& pData,
      int& nCount,
      const char* szCode,
      int nYear,
      int tBegin,
      int tEnd,
      const char* szPeriod,
      char* szErrorMsg,
      size_t nErrorLength) = 0;
参数:
      pData:返回获取到的数据
      nCount:返回的数据的个数
      szCode:合约的名称、可以是中文名、英文名、或者文华码
      nYear:外盘合约年度 例如:2023
      tBegin:起始时间时间戳(秒)
      tEnd:结束时间时间戳(秒)
      szPeriod:周期信息”1Day”:日线 “15Min”:15分钟线 “1Min”:1分钟线
      szErrorMsg:存储错误信息的指针,连接失败的时候存储错误提示信息
      nErrorLength:用来存放错误信息内存的长度,防止内部处理越界
返回结果:
      获取外盘合约年度的K线数据是否成功
      成功返回true
      失败返回false
数据结构:
      K线数据结构
      struct CWHKLineData
      {
      int Time; // 时间
      float Open; // 开盘价
      float Close; // 收盘价
      float High; // 最高价
      float Low; // 最低价
      float Volume; // 成交量
      float OpI; // 持仓量
      float AVPrice;// 均价
      float Scale; // 主动买卖比例
      };

7. GetTickData函数

获取Tick数据,返回数据指针和数据长度,内存内部管理,下次调用申请Tick线数据接口时清空。

函数原形:
      virtual bool GetTickData(
      CWHTickData*& pData,
      int& nCount,
      const char* szCode,
      int tTime,
      char* szErrorMsg,
      size_t nErrorLength) = 0;
参数:
      pData:返回获取到的数据
      nCount:返回的数据的个数
      szCode:合约的名称、可以是中文名、英文名、或者文华码
      tTime:时间戳(秒)
      szErrorMsg:存储错误信息的指针,连接失败的时候存储错误提示信息
      nErrorLength:用来存放错误信息内存的长度,防止内部处理越界
返回结果:
      获取Tick线数据是否成功
      成功返回true
      失败返回false
参数结构:
      Tick数据结构
      struct CWHTickData
      {
      int Time; // 时间
      float Price; // 最新价
      float Volume; // 成交量 In Total
      float OpI; // 持仓量 In Total
      int Activity; // 0 主动买 1 主动卖 2 其他
      float AVPrice; // 均价
      float fBid[5]; // 买价1 - 买价5
      float fBidVol[5]; // 买量1 - 买量5
      float fAsk[5]; // 卖价1 - 卖价5
      float fAskVol[5]; // 卖量1 - 卖量5
      };

(一)示例

      import pandas as pd
      from whdata import *
      #初始化
      bInitSuccess = Init('WT9行情账号')
      #获取日线数据
      if bInitSuccess == True:
            df = pd.DataFrame()
            bSuccess = GetKLineData(df, 'cu2205','2022-04-01', '2022-04-14', '1Day')
            if bSuccess == True:
                  print(df)

      #获取外盘合约年度的日线数据
      if bInitSuccess == True:
            df = pd.DataFrame()
            bSuccess = GetKLineDataOfTheYear(df, 'GCZ3', '2023','2023-03-01', '2023-03-31', '1Day')
            if bSuccess == True:
                  print(df)

      #获取tick数据
      if bInitSuccess == True:
            df_tick = pd.DataFrame()
            bSuccess = GetTickData(df_tick, 'cu2205','2022-04-01')
            if bSuccess == True and len(df_tick) > 0:
                  #数据列名称
                  print(df_tick.columns)
                  #取第一笔tick
                  print(df_tick.iloc[0])
                  #取第一笔tick的最新价
                  print(df_tick.iloc[0]['Price'])

(二)接口说明

1. Init(QuoteAccount, ClientType = "WT9")初始化

参数 类型 说明
QuoteAccount str WT9客户端登录的行情账号
ClientType str 客户端类型 "WT9"
返回True初始化成功 False初始化失败

2. GetKLineData(df, code, beginTime, endTime, period='1Day')获取k线数据

参数 类型 说明
df DataFrame 获取到的k线数据
code str 合约代码,支持中文名称、英文名称、文华码
beginTime str 开始时间,格式YYYY-MM-DD
endTime str 结束时间,格式YYYY-MM-DD
period str 周期,'1Day'日线、'1Min'一分钟线、'15Min'十五分钟线
返回True获取数据成功 False获取数据失败
注:参数df是返回的k数据
索引 'Time'(时间)
列名 'Open'(开盘价)
        'Close'(收盘价)
        'High'(最高价)
        'Low'(最低价)
        'Volume'(成交量)
        'OpI'(持仓量)
        'AVPrice'(成交均价)
        'Scale'(买卖比)

3. GetKLineDataOfTheYear(df, code, year, beginTime, endTime, period = ”1Day”) 获取外盘合约年度的K线数据

参数 类型 说明
df DataFrame 获取到的k线数据
code str 外盘合约代码,支持中文名称、英文名称、文华码
year str 外盘合约年度,例如: 2023
beginTime str 开始时间,格式YYYY-MM-DD
endTime str 结束时间,格式YYYY-MM-DD
period str 周期,'1Day'日线、'1Min'一分钟线、'15Min'十五分钟线
返回True获取数据成功 False获取数据失败
注:参数df是返回的k数据
索引 'Time'(时间)
列名 'Open'(开盘价)
        'Close'(收盘价)
        'High'(最高价)
        'Low'(最低价)
        'Volume'(成交量)
        'OpI'(持仓量)
        'AVPrice'(成交均价)
        'Scale'(买卖比)

4. GetTickData(df, code, time)

参数 类型 说明
df DataFrame 获取到的tick数据
code str 合约代码,支持中文名称、英文名称、文华码
time str 时间,格式YYYY-MM-DD
返回True获取数据成功 False获取数据失败
注:参数df是返回的tick数据
索引 'Time'(时间)
列名 'Price'(最新价)
        'Volume'(成交量)
        'Activity'(方向:0-买 1-卖 2-半买半卖)
        'BidPrice_1'(买一价)
        'BidPrice_2'(买二价)
        'BidPrice_3'(买三价)
        'BidPrice_4'(买四价)
        'BidPrice_5'(买五价)
        'BidVol_1'(买一量)
        'BidVol_2'(买二量)
        'BidVol_3'(买三量)
        'BidVol_4'(买四量)
        'BidVol_5'(买五量)
        'AskPrice_1'(卖一价)
        'AskPrice_2'(卖二价)
        'AskPrice_3'(卖三价)
        'AskPrice_4'(卖四价)
        'AskPrice_5'(卖五价)
        'AskVol_1'(卖一量)
        'AskVol_2'(卖二量)
        'AskVol_3'(卖三量)
        'AskVol_4'(卖四量)
        'AskVol_5'(卖五量)
请选择要下载的版本

为python用户提供whdata包调用历史数据,whdata包提供以下几个版本:

1.Python3.6
pip install
https://ftp.wenhua.com.cn/files/guide/wh9/whdata-1.2.0-cp36-cp36m-win_amd64.whl

2.Python3.7
pip install
https://ftp.wenhua.com.cn/files/guide/wh9/whdata-1.2.0-cp37-cp37m-win_amd64.whl

3.Python3.8
pip install
https://ftp.wenhua.com.cn/files/guide/wh9/whdata-1.2.0-cp38-cp38-win_amd64.whl

4.Python3.9
pip install
https://ftp.wenhua.com.cn/files/guide/wh9/whdata-1.2.0-cp39-cp39-win_amd64.whl

5.Python3.10
pip install
https://ftp.wenhua.com.cn/files/guide/wh9/whdata-1.2.0-cp310-cp310-win_amd64.whl

注:需提前安装第三方库pandas。