qetrader交易接口

简介

qetrader交易接口可以通过pip直接安装在用户本地,实现在任意python环境下进行策略开发、回测、模拟交易和实盘交易。

安装说明

首先,您的系统上必须已经安装了python环境(版本3.7或以上),推荐使用anaconda3. 然后,就可以按照如下步骤安装了。

  • windows环境

    • 安装Microsoft C++ Build Tools

      下载链接:Microsoft C++ Build Tools

      注:该工具版本号需要在14以上

    • 安装并启动Redis-server数据库服务

      安装Redis-server数据库服务。

      下载链接:Redis-server

      假定下载到D:\download目录下,进入该目录,用解压工具(winzip/winrar...)解压zip文件到当前目录,可以看到当前目录下多了一个Redis-x64目录。

      进入windows的命令行(搜索CMD或者Windows PowerShell),切换到刚才的目录进行安装:

      d:
      cd download\Redis-x64
      redis-server --service-install redis.windows.conf
      

      出现如下信息"Redis successully installed as a service"代表安装成功:

      打开windows功能“服务”(可以用搜索找到),找到Redis,点击启动。

      看到Redis状态变成‘正在运行’, 表明Redis服务安装和启动成功。

      qetrader使用的Redis端口号是6379。若需要修改为其他端口号,需要在qetrader安装完毕后修改qetrader的配置

    • 安装qetrader

      pip install -U qetrader --timeout=60
      

      注: 若要加快安装速度,可以使用国内镜像站点

  • linux环境

    • 安装Redis

      linux下安装Redis最简单快捷的方式是使用Docker安装

      首先用docker pull 下载redis最新版本

      sudo docker pull redis
      

      然后启动redis容器

      sudo docker run -itd --name redis-server -p 6379:6379 redis
      
    • 安装libffi

      若为Debian/Ubuntu 系统:

      sudo apt-get install libffi-dev
      

      使用如上命令安装

      若为CentOS/RHEL/Fedora 系统:

      sudo yum install libffi-devel
      

      使用如上命令安装

    • 更新pip版本

      pip install -U pip
      
  • 安装qetrader

    pip install -U qetrader --timeout=60
    

    注: 若要加快安装速度,可以使用国内镜像站点

使用说明

  • 启动网页服务

    • 写一个python文件命名为runWeb.py

      from qetrader.qeweb import runWebpage
      
      ## "your username"和"your authcode"需要替换成官网注册的用户名和授权码
      from qesdk import auth; auth('your username','your authcode') 
      runWebpage()
      
  • 在Anaconda的命令行环境下进入runWeb.py所在目录,并运行如下命令

    python runWeb.py
    

    运行后web网页服务将启动,用户可以实时查看订单委托,成交,持仓,权益和日志信息,并可以观察行情图。

    按键Ctrl+C或者关闭窗口可以终止该服务,网页将无法查看,重新运行上述命令后可恢复。

  • 编写策略并运行

    如下是一个python策略文件范例

  import qesdk
  from datetime import datetime,timedelta
  from qetrader import *
  qesdk.auth('Your username','Your authcode')
  user_setting = {'investorid':'000000', 'password':'XXXXXXXXXXXXXX','broker':'simnow'}
  user = 'myname'
  def getLastToken(user):
      acclist = listSimuAccounts(user)
      if len(acclist)>0:
          return acclist[-1]
      else:
          return  createSimuAccount(user, initCap=10000000)
  class mystrat(qeStratBase):
      def __init__(self):
          self.instid=['AG2306.SFE']
          self.datamode='minute'
          self.freq = 1
      def crossDay(self,context):
          pass
      def onBar(self,context):
          print(get_bar(context,1))
      def handleData(self,context):
          pass
  if __name__=='__main__':
      strat1 = mystrat()
      token_code = getLastToken(user)
      runStrat(user,'real', [strat1], simu_token=token_code, real_account=user_setting)

auth需要换成您的用户名和授权码

注:

1.auth语句中授权码需要在https://quantease.cn上注册登录后点击主页右上角菜单'授权码'获取。

2.user_setting中账户信息需要换成您自己的账户信息

3.运行后复制给出的网页链接在浏览器中查看运行结果即可

  • 修改系统配置

    • 获取系统配置

      from qetrader import read_sysconfig
      read_sysconfig()
      

      获取结果为

      {'redis': {'host': '127.0.0.1', 'port': 6379, 'password': ''}, 'webpage': {'host': '127.0.0.1', 'port': 5814}}
      
  • 修改Redis配置

    接口函数为

    setRedisConfig(host='127.0.0.1', port=6379, password='')
    

    根据您本地Redis-server配置修改该接口,使得qetrader可以访问您的本地数据库。

    比如您本地Redis端口号为6380, 那么可以这么运行

    from qetrader import setRedisConfig
    setRedisConfig(port=6380)
    

    恢复默认出厂设置仅需要调用不带参数的setRedisConfig即可

    from qetrader import setRedisConfig
    setRedisConfig()
    
  • 修改网页配置

    接口函数为

    setWebConfig(host='127.0.0.1',port=5814)
    

    如果qetrader网页服务默认端口号5814和您本地端口冲突,您可以修改为其他端口号,比如修改为5008。

    from qetrader import setWebConfig
    setWebConfig(port=5008)
    

    恢复默认出厂设置仅需要调用不带参数的setWebConfig即可

    from qetrader import setWebConfig
    setWebConfig()
    

    在浏览器测试一下输入网址http://127.0.0.1:5814, 出现如下文字代表启动成功:

    qetrader网页展示服务已经成功启动

插件说明

安装插件

以“algoex“插件为例,下载插件代码如下:

from qesdk import auth
auth('your username','your authcode')
from qetrader.qeplugins import installPlugin
installPlugin('algoex')

运行代码后,出现如下提示代表安装成功:

插件algoex下载成功
在策略文件中按如下格式import该插件:
from qetrader.plugins.qealgoex import plugin_algoex

注;下载插件需要成为VIP付费客户,否则会下载失败。注册VIP请联系客户

引用插件

以'algoex'为例,根据按照的说明,在code中使用:

from qesdk import auth
##授权码
auth('your username','your authcode')
from qetrader import listSimuAccounts, createSimuAccount,runStrat

##这里引用插件
from qetrader.plugins.qealgoex import plugin_algoex 

##实盘账户信息
user_setting = {'investorid':'xxxxxx', 'password':'xxxxxxxx','broker':'xxxxxx'}

if __name__=='__main__':
    ##换成自己的用户名
    user='myname'
    ##如果有模拟账户,用第一个账户,没有新建一个
    tokenlist = listSimuAccounts(user)
    if len(tokenlist) > 0:
        token = tokenlist[0]
    else:
        token = createSimuAccount(user)
    ##运行策略,algoex插件本身就是个策略实例,可以直接使用
    runStrat(user,'real',[plugin_algoex], simu_token=token,real_account=user_setting)

插件库

algoex插件

algoex插件具备csv下单和twap拆单所有功能外,增加了“seesaw”算法,该算法在多个品种同时交易的环境下,可以比无脑对价下单节省交易费用。

安装

如上文安装插件所述使用qetrader.qeplugins.installPlugin函数安装

调用

如上文引用插件所述引用插件,并加入runStrat的strats参数。

csv文件说明

csv下单工具中csv文件区别如下:

  1. 文件位置在当前工作目录。
  2. 为了引入seesaw,相比辅助工具中的qeorders.csv增加了两列,用于提供seesaw的参数。

文件样本可以参考algoex专用csv样本下单文件

参数说明如下:

▼ 详细说明
字段 类型 说明
账号 文本 如果是模拟交易,为模拟账号的Token,若为实盘,则为实盘account设置中的investorid
合约名 文本 需要交易的合约名,可以直接用交易所习惯命名'ag2212', 也可以写宽易平台命名'AG2212.SFE',如果是主力合约,写‘ag9999’就好
目标多头仓位 整数 要达到的目标多头仓位(非新增开仓)。
目标空头仓位 整数 要达到的目标空头仓位(非新增开仓)。
价格类型 文本 支持如下类型:‘market’市价,‘limit’限价,‘quote’挂价(多头为买一价,空头为卖一价),'opponent'对手价(多头为卖一价,空头为买一价)‘current’最新价(指最新成交价格)
限价价格 浮点数 当价格类型为'limit'该项价格有效,作为下单的目标价格
价格偏移点数 整数 价格偏移多少个tick点数,比如5代表价格向上偏移5个点,-3代表向下偏移3个点。当价格类型为'market'时参数无效
时间类型 文本 有效值:‘GFD’,‘FAK’,‘FOK’。GFD表示订单当日有效; FOK表示要么全部即时成交,要么全部即时撤单;FAK表示即时成交,剩余部分自动撤单。FAK/FOK模式撤单不计入交易所撤单次数限制,因此常常被机构使用
追单模式 整数 有效值0~2, 0表示不追单,1表示FAK方式追单,未完成部分迅速挂单直到全部成交或者追单次数满,此时时间类型必须是FAK。 2表示被动等待超过“追单时间“,或者价格偏移超过 “追单超价点数”.
追单时间 整数 单位为秒,比如30代表每过30秒没有全部成交的话,将剩余订单撤单,然后重新以最新的对手价挂单.
追单超价点数 整数 追单模式2时, 价格向不利方向移动超过该点数触发追单,此时将剩余订单撤单,然后重新以最新的对手价挂单.
追单次数 整数 最大追单次数,代表最多追单几次。比如2代表最多2次。
撤单时间 整数 单位秒,超过多少秒未成交,撤除所有剩余订单。比如500代表500秒后撤除所有未成交订单。
撤单滑点数 整数 代表价格向不利方向移动几个tick后将所有未成交自动撤单。比如做多时该值为5代表价格涨了5个tick后自动撤单。
算法交易 文本 支持‘no’或者‘twap’两种设置。‘no’代表不做算法交易。‘twap’代表按照时间分批下大单,自动调用算法交易,详见算法交易。
执行时间 整数 算法交易在多少秒之内结束。
算法参数1 整数 不同算法不同定义
算法参数2 整数 不同算法不同定义
算法参数3 整数 不同算法不同定义

TWAP算法参数:

参数1 代表扰动系数,使得每次下单量在一定范围上下波动

SEESAW算法参数:

参数1 代表交易价格超过初始挂价多少个ticks自动变成对价下单加FAK追单模式

参数2 代表自动转对价下单加FAK追单模式后,交易价格偏离多少个ticks后自动撤单放弃交易

参数3 备用,目前无意义

注:该插件是收费功能。

Copyright © QUANTEASE Team all right reserved,powered by Gitbook该文件修订时间: 2023-07-14 14:14:43

results matching ""

    No results matching ""