[关闭]
@Channelchan 2018-03-30T11:29:35.000000Z 字数 7810 阅读 69230

股票实时交易环境安装与配置

环境安装


安装要求

在安装实盘环境前请先安装好数据分析环境,安装方法见下面的链接:
https://www.zybuluo.com/Channelchan/note/1065836

安装流程

下载实盘易

点下面网址下载实盘易客户端,然后双击安装:
http://www.iguuu.com/download/e/installers/ShiPanE.exe

下载同花顺

下载对应版本的同花顺,然后双击安装:
https://pan.baidu.com/s/1Oe4cEBP7Yl-8pazXFNnXSg

安装完成需要创建模拟账户用于实盘测试。

安装Python包

下面是实时运行策略需要的python包。

shipane_sdk

安装:

pip install --pre --no-binary shipane_sdk shipane_sdk

升级:

pip install --upgrade --pre --no-deps --no-binary shipane_sdk shipane_sdk

项目主页:
https://github.com/sinall/ShiPanE-Python-SDK#%E5%AE%89%E8%A3%85

rqalpha-mod-shipane-wrapper

安装:

pip install git+https://github.com/xingetouzi/rqalpha-mod-shipane-wrapper.git
rqalpha mod install shipane-wrapper

项目主页:
https://github.com/xingetouzi/rqalpha-mod-shipane-wrapper

rqalpha-mod-fxdayu-source

Windows系统下如果没有安装 c++ compiler , 在安装该包的依赖包lru_dict时会失败。可以去下面的网站下载编译好的.whl文件直接安装,注意选择与您的系统和python环境对应的版本。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#lru_dict

安装lru_dict

pip install path

path为下载的.whl文件的路径。

安装:

pip install git+https://github.com/xingetouzi/rqalpha-mod-fxdayu-source.git
rqalpha mod install fxdayu_source

项目主页:
https://github.com/xingetouzi/rqalpha-mod-fxdayu-source

环境配置

同花顺

需要一个同花顺模拟账户进行实时模拟。
打开同花顺,注册一个模拟账户并登陆:

image.png-246.3kB

登陆后在菜单栏点击模拟,在模拟炒股交易区选择同花顺练习区,点击

image.png-219.2kB

然后在弹出的窗口中选择打开委托,会进入交易登陆界面。
这里新账号的通讯密码默认为888888
image.png-164.1kB

然后关闭该窗口。退回桌面,可以发现多了同花顺交易的桌面快捷方式,在接下来的操作中会用到该快捷方式,请勿删除。
image.png-38kB

实盘易客户端

实盘易安装好后,桌面会出现这样的图标:
image.png-37.8kB

双击打开,点击注册账号,在打开的网页中注册账号密码后输入并登陆。
image.png-29.2kB

基本设置

选择:
工具 -> 设置 -> 基本设置
进入设置界面:

image.png-60.2kB

做如下设置并确认。

属性 取值
服务端口 8888
安全密钥 shipanyi
用户名 爱股网用户名
密码 爱股网账号密码

安全密钥可以随意取值,其作用主要是在策略连接实盘易时做验证。

交易账号

选择:
工具 -> 设置 -> 交易账号
进入设置界面并点击左上角的 +
image.png-28.7kB
在此添加交易账号:

属性 说明 取值
名称 在与 shipanyi python sdk 对接时的名称 client-1
券商 点击并下拉选择“模拟交易” 模拟交易
命令行 见下方的命令行说明
独立交易 是否独立交易 true
账号 同花顺交易账号
交易密码 同花顺交易密码
通讯密码 同花顺交易通讯密码 888888
启用 是否启用 true

命令行说明

右键同花顺交易快捷方式 -> 属性 -> 目标
将目标中的文本复制到交易账号设置的命令行属性中。
image.png-95.8kB

同花顺交易账号及密码说明

image.png-181.3kB

通过实盘易客户端启动同花顺交易

设置完毕后回到实盘易客户端主界面。
在菜单栏选择: 工具 -> 关闭所有。
然后选择: 工具 -> 自动登录。
此时实盘易会自动打开同花顺交易快捷方式并登陆交易账户,到此说明已经成功安装和配置好实盘易和同花顺。
image.png-174.2kB

策略模板和配置文件

策略模板
复制下面的代码并保存为python脚本: strategy.py

  1. # /bin/env python
  2. # -*- coding: utf-8 -*-
  3. from collections import defaultdict
  4. from rqalpha import run_file
  5. from rqalpha.api import *
  6. def init(context):
  7. logger.info("init")
  8. context.symbol = [
  9. "000001.XSHE",
  10. "002415.XSHE",
  11. "600004.XSHG",
  12. "600006.XSHG",
  13. ]
  14. update_universe(context.symbol)
  15. if not hasattr(context, "fired"):
  16. context.fired = defaultdict(lambda: False)
  17. def before_trading(context):
  18. pass
  19. def handle_bar(context, bar_dict):
  20. # test order
  21. for symbol in context.symbol:
  22. if not context.fired:
  23. # order_percent并且传入1代表买入该股票并且使其占有投资组合的100%
  24. percent = 1.0 / len(context.symbol)
  25. logger.info("Buy %s" % symbol)
  26. order_target_percent(symbol, percent)
  27. p = context.portfolio.positions[symbol]
  28. logger.info("Position of %s,总: %s 今: %s 昨: %s " % (
  29. symbol, p.quantity, p.quantity - p.sellable, p.sellable
  30. ))
  31. context.fired[symbol] = True
  32. else:
  33. percent = 0.9 / len(context.symbol)
  34. logger.info("Sell %s" % symbol)
  35. order_target_percent(symbol, percent)
  36. p = context.portfolio.positions[symbol]
  37. logger.info("Position of %s,总: %s 今: %s 昨: %s " % (
  38. symbol, p.quantity, p.quantity - p.sellable, p.sellable
  39. ))
  40. context.fired[symbol] = False
  41. # 您可以指定您要传递的参数
  42. if __name__ == "__main__":
  43. import os
  44. config = {
  45. "base": {
  46. "start_date": "2016-06-01",
  47. "end_date": "2016-06-05",
  48. "accounts": {"stock": 100000},
  49. "frequency": "1m",
  50. "benchmark": None,
  51. "data_bundle_path": os.path.expanduser("~/.rqalpha/bundle"),
  52. "strategy_file": __file__,
  53. "run_type": "p"
  54. },
  55. "extra": {
  56. "log_level": "verbose",
  57. },
  58. "mod": {
  59. "fxdayu_source": {
  60. "enabled": True,
  61. "source": "quantos",
  62. "enable_cache": False,
  63. "quantos_url": "tcp://data.quantos.org:8910",
  64. "quantos_user": "13662241013",
  65. "quantos_token": "eyJhbGciOiJIUzI1NiJ9.eyJjcmVhdGVfdGltZSI6IjE1MTc2NDQzMzg5MTIiLCJpc3MiOiJhdXRoMCIsImlkIjoiMTM2NjIyNDEwMTMifQ.sVIzI5VLqq8fbZCW6yZZW0ClaCkcZpFqpiK944AHEow"
  66. },
  67. "shipane_wrapper": {
  68. "enabled": True,
  69. "manager_id": "manager-1" # 此处和实盘易配置中的manager.id一致
  70. }
  71. }
  72. }
  73. run_file(__file__, config=config)

config参数说明

选项 默认值 适用数据源类型 含义
fxdayu_source.enabled "mongo" 通用 行情源类型,可选值为"mongo","bundle","quantos"
fxdayu_source.bundle_path None bundle bundle数据文件位置,默认取"~/.fxdayu/bundle", 可以用环境变量覆盖,取值为"$FXDAYU_ROOT/bundle"
fxdayu_source.mongo_url "mongodb://localhost:27017" mongo mongodb数据库地址
fxdayu_source.enable_cache True 通用 bool型,是否开启分页读取缓存优化功能(缓存优化适用于回测)。
fxdayu_source.cache_length 1000 通用 当开启缓存优化时,指定单页缓存的条目数
fxdayu_source.quantos_url "tcp://data.quantos.org:8910" quantos 可选,tushare服务器地址,默认不需要配置
fxdayu_source.quantos_user None quantos 必填,quantos用户名,可以从环境变量QUANTOS_USER传入
fxdayu_source.quantos_token None quantos 必填,quantos Token,可以从环境变量QUANTOS_TOKEN传入

配置文件
复制下面的代码并保存为配置文件:shipane_sdk_config.yaml

  1. # *********************************************************
  2. # 实盘易 SDK 配置
  3. # 如无特别说明,配置项修改后,将在策略重启后生效
  4. # 注意:
  5. # - 请勿在策略运行期间修改结构,比如 id 等关键信息
  6. # - 配置项冒号后需保留一个空格
  7. # - <xxx> 为必选项,[xxx] 为可选项;需要将括号移除
  8. # - <xxx|yyy> 为多选一项,使用其中一项即可
  9. # *********************************************************
  10. # *********************************************************
  11. # 代理配置
  12. # *********************************************************
  13. proxies:
  14. - id: default
  15. base-url: http://www.iguuu.com/proxy/trade
  16. # 爱股网用户名
  17. username: <username>
  18. # 爱股网密码
  19. password: <password>
  20. # *********************************************************
  21. # 实盘易配置
  22. # *********************************************************
  23. gateways:
  24. # 实盘易-1 配置
  25. - id: gateway-1
  26. # 连接方式
  27. # DIRECT:直连,适用于有公网 IP 的环境
  28. # PROXY: 通过爱股网代理连接
  29. connection-method: <DIRECT|PROXY>
  30. # IP 地址
  31. host: xxx.xxx.xxx.xxx
  32. # 端口
  33. port: 8888
  34. # 代理 ID
  35. # 连接方式为“代理”时需要设置
  36. proxy: default
  37. # 实例 ID,即运行实盘易的计算机名
  38. # 连接方式为“代理”时需要设置
  39. instance-id: <instance-id>
  40. # 密钥
  41. key: [key]
  42. # 超时
  43. timeout:
  44. # 连接超时
  45. connect: 5.0
  46. # 读取超时
  47. read: 10.0
  48. # 交易客户端
  49. clients:
  50. # 客户端-1
  51. # 注意:id 需全局唯一
  52. - id: client-1
  53. # 查询串,对应于 API 的 client 参数
  54. # 其中 xxxx 为交易账号或交易账号后半段
  55. query: account:xxxx
  56. # 是否默认?
  57. # 1 个实盘易只允许设置 1 个交易客户端为默认
  58. default: true
  59. # 其他资产价值
  60. # 基金及其他非场内资产价值,该项配置用于校验账户
  61. other-value: 0
  62. # 总资产价值偏差率
  63. # 该项配置用于校验账户
  64. total-value-deviation-rate: 0.001
  65. # 保留名单,每行一个
  66. # 股票代码,注意使用 str 标签
  67. # 例如:!!str 000001
  68. # 注意:该配置在下次 handle_data 调用时生效
  69. reserved-securities:
  70. # 含有非数字的代码
  71. - \D
  72. # B股代码
  73. - ^[92]
  74. # 港股代码
  75. - ^[\d]{5}$
  76. # 逆回购代码
  77. - ^(204|131)
  78. # 新标准券代码
  79. - !!str 888880
  80. # 客户端-2
  81. - id: client-2
  82. query: account:xxxx
  83. other-value: 0
  84. total-value-deviation-rate: 0.001
  85. reserved-securities:
  86. - \D
  87. - ^[92]
  88. - ^[\d]{5}$
  89. - ^(204|131)
  90. - !!str 888880
  91. # 实盘易-2 配置
  92. - id: gateway-2
  93. # 连接方式
  94. connection-method: DIRECT
  95. host: xxx.xxx.xxx.xxx
  96. port: 8888
  97. key:
  98. timeout:
  99. connect: 5.0
  100. read: 10.0
  101. clients:
  102. - id: client-3
  103. query: title:monijiaoyi
  104. default: true
  105. other-value: 0
  106. total-value-deviation-rate: 0.001
  107. reserved-securities:
  108. - \D
  109. - ^[92]
  110. - ^[\d]{5}$
  111. - ^(204|131)
  112. - !!str 888880
  113. - id: client-4
  114. query: title:xxx,account:xxx
  115. other-value: 0
  116. total-value-deviation-rate: 0.001
  117. reserved-securities:
  118. - \D
  119. - ^[92]
  120. - ^[\d]{5}$
  121. - ^(204|131)
  122. - !!str 888880
  123. # *********************************************************
  124. # 策略配置
  125. # 实体关系
  126. #
  127. # manager 1 ---- N trader 1 ---- 1 交易客户端(client)
  128. #
  129. # *********************************************************
  130. managers:
  131. # manager-1 配置
  132. - id: manager-1
  133. traders:
  134. # trader-1
  135. - id: trader-1
  136. client: client-1
  137. # 是否开启?
  138. # 正式运行时设置为 true
  139. enabled: true
  140. # 是否排练?排练时不会下单。
  141. # 正式运行时设置为 false
  142. dry-run: true
  143. # 工作模式
  144. # 1. SYNC: 指按模拟交易的持仓进行同步
  145. # 2. FOLLOW:指按模拟交易的下单进行跟单
  146. # 目前米筐只支持 SYNC 模式
  147. mode: SYNC
  148. # 同步选项
  149. # 如果该策略无需同步操作,可以省略 sync 配置项
  150. # 注意:该配置在下次 handle_data 调用时生效
  151. sync:
  152. # 同步前是否撤销模拟盘未成交订单
  153. # 如果该选项未启用,并且模拟盘有未成交订单,SDK 将不会做同步
  154. pre-clear-for-sim: false
  155. # 同步前是否撤销实盘未成交订单
  156. pre-clear-for-live: false
  157. # 最小订单金额,低于该值的订单将被忽略,以防因为价格波动导致的频繁调仓
  158. # 取值可以为数值,或者百分比
  159. min-order-value: 1%
  160. # 最大订单金额,用于分单
  161. # 取值为数值
  162. max-order-value: 200000
  163. # 轮次间隔时间,单位为毫秒
  164. # 建议不小于 5 秒,以防交易软件持仓刷新过慢
  165. round-interval: 5000
  166. # 批次间隔时间,单位为毫秒
  167. batch-interval: 1000
  168. # 下单间隔时间,单位为毫秒
  169. order-interval: 1000
  170. # 默认为 2 轮,该选项用于增加额外轮次
  171. # 额外轮次
  172. extra-rounds: 0
  173. - id: manager-2
  174. traders:
  175. - id: trader-2
  176. client: client-1
  177. enabled: true
  178. dry-run: true
  179. mode: SYNC
  180. sync:
  181. pre-clear-for-sim: false
  182. pre-clear-for-live: false
  183. min-order-value: 1%
  184. max-order-value: 200000
  185. round-interval: 5000
  186. batch-interval: 1000
  187. order-interval: 1000
  188. extra-rounds: 0

配置文件模板无法直接使用,需要补充相应的字段:

属性 含义
proxies.username 爱股网用户名。
proxies.password 爱股网密码。
gateways.connection-method 连接方式: DIRECT|PROXY 。
gateways.host 实盘易客户端所在计算机的ip地址。如果运行在本机则填127.0.0.1,如果实盘易客户端运行在云服务器上需填写云服务器地址。
gateways.port 端口号,与实盘易客户端基本设置中的端口一致,根据上面的设置填: 8888。
gateways.key 密钥,与实盘易的密钥一致。
gateways.clients.query acounts:同花顺交易账号 。
gateways.clients.id 与实盘易交易账号设置的名称相同
managers.traders.client 与实盘易交易账号设置的名称相同
managers.traders.id 与实盘易交易账号设置的名称相同
managers.traders.dry-run 是否排练?排练时不会下单。正式运行时设为false。

运行策略

将上述两个文件放在同一目录下。在开盘时间打开cmd进入该目录然后运行下面的命令即可实盘运行策略。

python strategy.py

打包下载

简介 链接
python安装 https://pan.baidu.com/s/1Xa4GNf6n48C9E5o8tT_GKA
ShiPanE软件 http://www.iguuu.com/download/e/installers/ShiPanE.exe
同花顺软件 https://pan.baidu.com/s/1Oe4cEBP7Yl-8pazXFNnXSg
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注