实盘操作指南

QFF实盘操作基于通用同花顺下单软件,通过pywinauto库自动化接管客户端,实现股票实际账号的买入、卖出、撤单、账户查询、委托以及成交查询等功能。

备注

QFF实盘交易仅支持Windows系统,其功能在0.5.15版本后开始支持。

安装和设置

客户端安装

登录 同花顺官网 ,选择同花顺免费版下载并安装。 如果最新版本操作出现错误,可从网盘下载兼容的历史版本 THS_9.20.40_20230613.exe ,提取码qff0。

客户端设置

  • 添加客户端快捷方式。软件位置在同花顺安装目录下 xiadan.exe ,找到该文件后鼠标右键点击,选择发送到->桌面快捷方式。在运行qff实盘操作前,一般需先启动下单软件。

  • 执行qff命令行指令,将下单软件路径保存在qff配置文件中。如何 xiadan.exe 程序已运行,qff实盘可直接接管,否则,将通过qff配置文件信息,自动启动下单软件。

    $ qff config set THS.path c:\ths\xiadan.exe
    
  • 需要先手动登录一次下单软件。添加券商,填入账户号、密码、验证码,勾选“保存密码”。第一次登录后,上述信息被缓存。

    ../_images/ths_login.png
  • 需要对客户端按以下设置,不然会导致客户端超时锁定。 系统设置 > 界面设置: 界面不操作超时时间设为 0。

    ../_images/ths_config.png

命令行指令

QFF提供了用于操作同花顺客户端的命令行指令。在进行实盘交易前,可通过这些命令行指令进行测试验证。您可以执行 qff trader -h 查询trader命令用法:

    $ qff trader -h
 
    usage:
        qff trader <subcommand> [options]
        eg:
        qff trader connect
        qff trader balance
        qff trader position
        qff trader entrust
        qff trader deal
        qff trader buy stock_code  amount price
        qff trader sell stock_code amount price
        qff trader buy stock_code  amount
        qff trader sell stock_code amount
        qff trader cancel entrust_no


    操作同花顺下单软件客户端,用于策略实盘运行前,测试能否正确对交易软件进行操作.

    子命令:
    - connect:                      连接交易软件客户端
    - balance:                      获取账户资金股票信息
    - position:                     获取账户持仓股票列表
    - entrust:                      获取当日委托订单列表
    - deal:                         获取当日成交订单列表
    - buy stock amount price:       买入指定股票, eg: qff trader buy 000001 100 10.5
    - sell stock amount price:      卖出指定股票. eg: qff trader sell 000001 100 10.9
    - buy stock amount:             市价买入指定股票, eg: qff trader buy 000001 100
    - sell stock amount:            市价卖出指定股票. eg: qff trader sell 000001 100
    - cancel entrust_no:            撤销委托订单, entrust_no为委托订单编号,如果不输入,则撤销所有委托订单

    positional arguments:
      subcommand  实盘操作子命令
      options     子命令所需参数
    
    optional arguments:
      -h, --help  显示当前帮助信息

示例:

  • 执行qff trader connect 进行连接同花顺客户端测试

    $ qff trader connect
    qff>> ------------------- - INFO - 同花顺交易接口: 下单程序未启动,正在自动加载...
    qff>> ------------------- - INFO - 同花顺交易接口: 连接下单程序成功!
  • 执行qff trader balance 获取账户资金股票信息

    $ qff trader balance
    qff>> ------------------- - INFO - 同花顺交易接口: 连接下单程序成功!
    +-----------------------+
    |      账户资金股票     |
    +----------+------------+
    | 资金余额 |   358.64   |
    | 冻结金额 |   13.78    |
    | 可用金额 |   372.42   |
    | 可取金额 |   358.64   |
    | 股票市值 |  123456.0  |
    |  总资产  |  123456.0  |
    | 持仓盈亏 |   10000.0  |
    +----------+------------+

实盘交易函数

QFF提供了以下函数接口,用于在用户策略中直接进行实盘交易。目前QFF还未提供实盘运行框架,您可以在模拟运行的策略中,直接调用实盘交易函数,以实现实盘交易功能。

trader_connect

连接交易软件客户端

trader_balance

查询当前账户资金股票信息

trader_position

查询当前账户股票持仓信息

trader_today_entrusts

查询当日下单委托记录

trader_today_deal

查询当日成交记录

trader_order

实盘下单交易股票

trader_cancel

撤销当日委托

trace交互接口

QFF人机交互功能接口trace中增加了实盘操作接口命令,运行 trader 命令可获取使用帮助,其用法和命令行接口一致。 用户也可在策略模拟运行中,通过trace命令手工进行股票实盘交易。

QFF> trader
Usage:
             以下命令仅支持windows系统下运行
            ----------------------------------------------------------------------------------------------------------------------
            ⌨️命令格式: trader connect                 :  连接交易软件客户端
            ⌨️命令格式: trader balance                 :  获取账户资金股票信息
            ⌨️命令格式: trader position                :  获取账户持仓股票列表
            ⌨️命令格式: trader entrust                 :  获取当日委托订单列表
            ⌨️命令格式: trader deal                    :  获取当日成交订单列表
            ⌨️命令格式: trader buy stock  amount price :  买入指定股票, eg: qff trader buy 000001 100 10.5
            ⌨️命令格式: trader sell stock amount price :  卖出指定股票. eg: qff trader sell 000001 100 10.9
            ⌨️命令格式: trader buy stock  amount       :  市价买入指定股票, eg: qff trader buy 000001 100
            ⌨️命令格式: trader sell stock amount       :  市价卖出指定股票. eg: qff trader sell 000001 100
            ⌨️命令格式: trader cancel entrust_no       :  撤销委托订单, entrust_no为委托订单编号,如果不输入,则撤销所有委托订单
            -----------------------------------------------------------------------------------------------------------------------

示例:执行 trader balance 获取实盘账户资金股票信息

QFF> trader balance
+-----------------------+
|      账户资金股票     |
+----------+------------+
| 资金余额 |   372.42   |
| 冻结金额 | 296015.89  |
| 可用金额 | 296388.31  |
| 可取金额 |   372.42   |
| 股票市值 | 1095553.0  |
|  总资产  | 1391941.31 |
| 持仓盈亏 | 3928391.25 |
+----------+------------+

实盘交易注意事项

实盘与模拟交易的区别

  • 市价单冻结资金规则上不同:实盘按照“涨停价+千分之五手续费”计算可买数量,并冻结资金,这个可能引起实盘下单量偏小;模拟交易的市价单也没有这个规则;

  • 手续费不同:模拟交易可以自己设置手续费,实盘下单时没有计算手续费;

  • 滑点的影响:模拟交易可以自己设置滑点,实盘成交结果以交易所成交结果为准;

  • 对手影响:实盘的话得有对手方才会成交,如果下市价单会减少部分的影响,但是也有缺点就是成交价格会劣于限价单;

  • 下单数量的影响:实盘一次下单数量太大可能会引起市场冲击,模拟交易不会引起市场冲击;

  • 权限的影响:模拟交易没有这个限制,实盘时需要开通一定的权限才能交易,例如股票的市价单、创业板,期货一些品种也需要单独开通(例如股指期货);

股票实盘下单失败的可能原因

  • 同花顺客户端版本错误或未成功登录下单软件;

  • 没有开通市价单,但使用市价单下单;

  • 购买了创业板或科创板标的,但是没有开通相应权限;

  • 资金不足;

  • 涨停时购买股票,或者跌停时卖出–>委托废单;

  • 五档成交,剩余部分被撤单–>内部取消;

  • 集合竞价不能进行市价委托–>委托废单;

  • 在非交易时间下单;

  • 下单数量太大了:股票、基金交易单笔申报最大数量应当不超过100万股(份)