本文介绍:旨在帮助已经有交易策略的朋友能自己完成实盘的自动交易。

写这篇文章之前先要感谢开源项目easyTrader的作者食灯鬼。我在部署项目的过程中也踩了不少坑,记录于此希望能帮遇到这些问题的朋友或者不清楚部署过程的朋友节约时间。

1.项目中需要用到的软件,工具,文档链接: 参考文档:使用 - easytrader

同花顺ths_v8.60.64(正常安装即可):百度网盘 请输入提取码 提取码: 7788 ,easyTrader项目源码:https://gitee.com/zhb233/easytrader

使用Anaconda3搭建python运行环境(正常安装即可):Windows系统:https://repo.anaconda.com/archive/Anaconda3-2020.07-Windows-x86_64.exe

苹果系统:https://repo.anaconda.com/archive/Anaconda3-2020.07-MacOSX-x86_64.pkg

下载完成后在Anaconda Navigator中打开Spyder,建立新项目,然后包含前面下好的easyTrader项目源码,根据文档进行测试。

2.具体测试过程不多做说明,此链接已经足够详述使用 - easytrader

3.简要代码如下,

import easytrader#登录自动交易模块
if __name__ == "__main__":user = easytrader.use('universal_client') # 同花顺客户端user.prepare(user='券商账号', password='', comm_password='', exe_path='C:\\同花顺软件\\同花顺\\xiadan.exe')#user.enable_type_keys_for_editor()#修改字体编码格式,有的不加会出问题/有的加了会出问题#跟踪joinQuantfollower = easytrader.follower('jq')follower.login(user='聚宽账号', password='聚宽密码')follower.follow(user, '模拟交易url')#例如:https://www.joinquant.com/algorithm/live/index?backtestId=xxx

其他测试:


#测试
follower.follow(user, 'https://www.joinquant.com/algorithm/live/index?backtestId=dc55932e5dd44ef6d7e2a3e012b08bf9',trade_cmd_expire_seconds=100000000000, cmd_cache=False)
#1.刷新数据
user.refresh()
#2.获取持仓
user.enable_type_keys_for_editor()
#print(user.position)
#3.获取资金情况
print(user.balance)
#4.一键打新
user.auto_ipo()
#5.查询当日成交
#print(user.today_trades)
#6.查询当日委托
print(user.today_entrusts)
#7.买入
#buy_no = user.buy('510500', price=8.63, amount=100)
#print(buy_no)
#8.卖出
sell_no = user.sell('159840', price=1.8, amount=1000)
print(sell_no)
#9.撤单
#user.cancel_entrust(235)
#10.退出客户端
#user.exit()

 

有两点需要强调:

        (1)joinquant的模拟url需要先有策略生成了模拟交易,在交易界面才能拿到这个url,而不是分享链接的URL,如图红框才是所需url

(2)关于注释的那一行用于修改编码格式,输入格式没问题不要加。适用于某些无法输入文本的券商使用。user.enable_type_keys_for_editor() 

        解决办法:无法输入时,可添加修改格式的这行代码。本人可成功执行!

4.我使用的是通用客户端,遇到了如下问题,以及解决:

(1)TypeError:can't multiply sequence by non-int of type 'float'

解决方案:进入文件修改对应行数的price,转化成float格式

(2)joinquant链接获取失败的问题,强调的是下图红色箭头,务必确定链接填写正确

(3)未知错误打断,调整了交易间隔0s->1s即可,

顺便设置了滑点为5%,即0.05 。在follower.py里面设置也可

follower.follow(***, send_interval=1) # 设置下单间隔为 1 s
follower.follow(***, slippage=0.05) # 设置滑点为 5%

(4)非交易时间,获取到下单信号,出现价格'--'的data,无法转化为实际下单价格

(5)返回成功,实际未下单成功。

解决:添加了user.enable_type_keys_for_editor(),解决了输入为空的问题;又出现了输入都没有问题,但是最后确定无法点击成功。解决:使用指令pip install easytrader -U,进行升级,重启内核再次运行。

推测原因:时序逻辑有问题,执行了一个交易后队列堵塞。

(6)InvalidWindowHandle: Handle 4393826 is not a vaild window handle,

错误原因:通用同花顺客户端未提前打开

(7)非交易时间测试下单:出现"当前时间不允许此类证券交易"

(8)跟踪雪球组合,非交易时间触发循环tips,修改easytrader消除

(9)转债的数据最小10股,和普通一手100股进行区分

基于easyTrader部署自动化交易(一)相关推荐

  1. 基于easyTrader部署自动化交易(二)

    说实话,et项目一开始经常跑着跑着就出错,经过不断的维护更新,加了很多没有的补丁,稳定了好多. 细数一下问题: 1. 项目默认一手100股,但是转债一手为10股,需要进行区分: 已优化,进行了区分. ...

  2. 云服务基于DevCloud的自动化部署功能,实现快速部署网站应用

    [目的]本实验指导用户基于DevCloud的自动化部署功能,实现在CCE集群上快速部署网站应用. 云服务基于DevCloud的自动化部署功能,实现快速部署网站应用 1.资源准备 1.1.创建安全组.虚 ...

  3. 基于JAVA学校旧书交易网站计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA学校旧书交易网站计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA学校旧书交易网站计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. 基于Java毕业设计二手车交易网站源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计二手车交易网站源码+系统+mysql+lw文档+部署软件 基于Java毕业设计二手车交易网站源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

  5. 计算机毕业设计springboot基于springboot的游戏交易网络无忧3op09源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于springboot的游戏交易网络无忧3op09源码+系统+程序+lw文档+部署 计算机毕业设计springboot基于springboot的游戏交易网络无忧3o ...

  6. 【从零开始玩量化17】如何python+QMT完成自动化交易?(全网最详细入门教程)

    一.什么是QMT 此部分为扫盲内容,有一定了解者可以跳过. 概念 它是一款量化交易客户端软件,由一家叫做迅投公司出品,可以直接登录你的券商账号进行股票交易,但与同花顺/通信达不同的是,它暴露了基于py ...

  7. 【从零开始玩量化9】jqktrader:同花顺客户端自动化交易

    前情提要 在 [从零开始玩量化7]easyTrader: 自动化(程序化)交易利器 ,有朋友反应,easytrader连接同花顺客户端,存在问题,验证码等问题,导致API不能正常使用. 研究了一下,的 ...

  8. 小散量化炒股记|要克服人性弱点?激活股票全自动化交易!

    前言 股票的自动化交易接口在2015年之后就被管制了,于是对于普通股民来说只能通过手动下单方式完成量化交易最后一个环节. 当然,对于股票交易来说,大部分人更偏向于中低频的交易范畴,毕竟高频交易在政策限 ...

  9. python自动化交易通达信_GitHub - sz982005/ShiPanE-Python-SDK: 实盘易(ShiPanE)Python SDK,通达信自动化交易 API。...

    ShiPanE-Python-SDK 实盘易(ShiPanE)Python SDK,通达信自动化交易 API. 实盘易是爱股网旗下的股票自动化解决方案:可管理通达信等交易终端,并为用户提供基于 HTT ...

最新文章

  1. django 中文乱码或不识别
  2. angularJS中directive与controller之间的通信
  3. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法
  4. 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
  5. Visual C++ 菜单
  6. Java链表—— LinkedList
  7. 树莓派下安装Django环境
  8. windows server 2008 系列讲座三部曲--在线讲座预告
  9. 卡尔曼滤波原理(2)
  10. mongodb 集群shard_mongodb单机配置shard分片集群
  11. CentOS7更改时区两步解决
  12. 维宏v8系列卡win7/win10 64位驱动
  13. 傅立叶变换、拉普拉斯变换、Z变换的联系
  14. 如何用PPT制作一份可视化数据图表?
  15. AndroidUI:Android的Holo Theme
  16. LCD12864 菜单部分编写
  17. Ehcache二级缓配置永不过期,缓存失效问题 ---- 原因没有加载ehcache.xml配置文件,加载了默认的ehcache-failsafe.xml配置文件
  18. Linux中使用sendmail发送邮件,指定任意邮件发送人
  19. Quartus-II的安装教程
  20. Oracle的常见错误及解决办法

热门文章

  1. 服务器使用上突然卡了,导致服务器卡顿的原因有哪些,该怎么处理?
  2. 布法罗大学计算机中国博士,【博士】计算机网络方向招生 - 计算机科学技术系(CS)版 - 北大未名BBS...
  3. git的使用和上传代码到gitee(码云) 教程
  4. Echarts画散点图
  5. Oracle 表字段的创建、删除、修改、查询
  6. vue 图片转base64格式的方法
  7. Android RenRen SDK 接入教程
  8. 如何在博客园中自定义背景
  9. matlab定义双精度型变量_matlab双精度浮点数编码及区间覆盖(原创)
  10. java 获取token