Easytrader 超简单的股市自动交易神器



往期推荐

量化投资实战教程(1)—基于backtrader的简单买入卖出策略

量化投资原来这么简单(2)—MACD策略(+26.9%)

量化投资原来这么简单(3) —A股回测MACD策略

Python 量化投资原来这么简单(4) —KDJ 策略

Python 量化投资原来这么简单(5) — A股回测KDJ策略

Python 量化投资原来这么简单(6) — 交易平均收益率

Python 量化投资实战教程(7) — 孕线真的有用吗?

A股回测“孕线”策略 — Python 量化投资实战教程(8)

自定义MySQL数据流 — Python 量化投资实战教程(9)

在量化投资系列教程中,我们从理论上介绍了量化回测的基本原理和思路,并进行了一定的实战分析和演练。但是并没有涉及到实际交易的场景。

在开始之前,我们需要明确什么策略需要使用自动交易的方式。我们前面的教程都是基于日线的策略,这样的日线策略并不需要自动化交易,因为你只需要提前一天算好第二天需要买入的股票即可。

什么情况下需要本文的自动交易?

1.你的策略是基于 分钟线 (1,5,15,60) 的。
2.你的日线策略在购买的时候需要判断前一天封盘前的股票数据,并提前一天买入。
3.你希望能自动打新。

除了这三种情况,其他的策略都不适合使用本文的自动交易,包括秒级别的策略,因为Easytrader是基于GUI层面(图形界面)实现的自动化接口,而非API层面,因此实时性不会很高,而且是串行形式的,并不适合秒级策略。

此外,Easytrader对券商有一定的要求:

目前支持 海通客户端、华泰客户端、国金客户端、雪球,还有通用同花顺客户端(指的是那些基于同花顺修改的券商软件版本)。

在开始自动交易前,请确认你的策略是可靠的,否则不要轻易尝试自动交易。另外交易逻辑的处理也需要非常谨慎,错一行代码可能损失的是几千块甚至不止。所以,一开始执行自动交易的时候,推荐只用很小一部分的本金。

本文只会介绍Easytrader的安装方法和基本使用方法及构建监控股票池的重要性,其他深入介绍将于后面的 量化投资系列教程10 中介绍,敬请期待。

一个小小的预告

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

输入命令安装依赖
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install easytrader

看到 Successfully installed xxx 则说明安装成功。

某些券商在登录的时候可能需要识别验证码,这时候需要下载tesseract

1.下载并安装tesseract

前往 tesseract-ocr 官网下载二进制包,此外你也可以在Python实用宝典公众号后台回复: tesseract,直接获得tesseract的安装包。

双击下载下来的安装包,然后傻瓜式安装就可以,这里只需要注意一点:

安装过程中有一个让你选择 Additional language data(download) 表示选择的话帮你下载语言包,这里最好不要选择勾选,因为勾选的话,安装过程非常慢,本教程只需要用到数字和英文识别而已。

2.配置环境变量

右击我的电脑/计算机,选择属性,然后选择高级属性设置,选择环境变量,在系统变量的path变量中添加你的 tesseract 目录就可以了

3.判断是否安装成功

在命令行中输入:

tesseract --version

出现下面的提示说明安装成功:

2.Easytrader 基本使用

这一章将介绍Easytrader的基本使用方法、包括客户端连接、获取资金状况、获取持仓、买入、卖出、一键打新、撤单。

在开始之前,请对客户端调整以下设置,不然会导致下单时价格出错以及客户端超时锁定。

  • 系统设置 > 界面设置: 界面不操作超时时间设为 0

  • 系统设置 > 交易设置: 默认买入价格/买入数量/卖出价格/卖出数量 都设置为 空

同时客户端不能最小化也不能处于精简模式。

2.1 自动登录客户端:

在Windows机器上下载好我们在文首提到的几个券商客户端、准备好Python相关的依赖,即可开始尝试自动登录客户端:

import easytrader# 海通客户端
user = easytrader.use('htzq_client')
user.prepare(user='用户名', password='明文密码')# 华泰客户端
user = easytrader.use('ht_client')
user.prepare(user='用户名', password='明文密码', comm_password='华泰通讯密码,其他券商不用')# 国金客户端
user = easytrader.use('gj_client')
user.prepare(user='用户名', password='明文密码')# 雪球
user = easytrader.use('xq')
user.prepare(user='用户名', password='明文密码')# 通用同花顺客户端, 指对应券商官网提供的基于同花顺修改的软件版本, 如(银河的双子星)
user = easytrader.use('ths')
user.prepare(user='用户名', password='明文密码')

选择你的客户端,将其他的客户端去掉,运行这个py文件,程序就会开始自动登录,期间会识别很多次验证码,经常会识别错误,没关系,让他慢慢重试即可。

如果你识别验证码的时候报了错,程序停止了下来,那是因为你没安装 tesseract, 回到第一步安装tesseract即可。


价值一个亿的密码应该没有泄露吧?

2.2 获取资金、持仓情况

获取资金、持仓情况的时候,程序都会自动化地进入相关界面获取信息。有时候也需要输入验证码,这时候easytrader也会自动识别,请不要介入。

import easytrader
# 国金客户端
user = easytrader.use('gj_client')
user.prepare(user='用户名', password='明文密码')# 获取资金状况
balance = user.balance
print(balance)
# [{'参考市值': 21642.0,
# '可用资金': 28494.21,
# '币种': '0',
# '总资产': 50136.21,
# '股份参考盈亏': -90.21,
# '资金余额': 28494.21,
# '资金帐号': 'xxx'}]# 获取持仓情况
position = user.position
print(position)
# [{'买入冻结': 0,
# '交易市场': '沪A',
# '卖出冻结': '0',
# '参考市价': 4.71,
# '参考市值': 10362.0,
# '参考成本价': 4.672,
# '参考盈亏': 82.79,
# '当前持仓': 2200,
# '盈亏比例(%)': '0.81%',
# '股东代码': 'xxx',
# '股份余额': 2200,
# '股份可用': 2200,
# '证券代码': '601398',
# '证券名称': '工商银行'}]

2.3 买入、卖出、一键打新、撤单

买入卖出时设定股票代码,价格和数量即可:

import easytrader
# 国金客户端
user = easytrader.use('gj_client')
user.prepare(user='用户名', password='明文密码')# 买入
user.buy('162411', price=0.55, amount=100)
# {'entrust_no': 'xxxxxxxx'}# 卖出
user.sell('162411', price=0.55, amount=100)
# {'entrust_no': 'xxxxxxxx'}# 一键打新
user.auto_ipo()# 撤单
user.cancel_entrust('buy/sell 获取的 entrust_no')
# {'message': '撤单申报成功'}

如果资金不足或可用证券数量不足,程序会报错,这时候请注意把错误except出来,不然你的检测周期可能因此中断,如果是无人值守的程序,可能整个程序都会停止。

PS:使用前请构建监控股票池

使用Easytrader前为什么需要构建股票池?如我们前面提到的,Easytrader是基于GUI层面的自动化交易接口,它会进入如下模样的界面进行自动化操作:


如果你的监控对象太多,有多个对象同时符合策略,它会一个一个地进行操作,容易耽误下个周期的计算,因此推荐构建一个50只股票左右的股票池。

你可以根据基本面构造你的股票池,比如最近几年年报中,扣非净利润均有所增长的企业,或是在你的策略下表现最好的50只股票(当然未来不一定靠谱)。

无论你怎么构造,请记录下这些股票(最好是数组变量的形式),证券市场的前缀在前,代码在后,比如 sh600519:

# 以2000元的价格买入100股sh600519, 贵州茅台
user.buy('sh600519', 2000, 100)

当然,此时会报错:


毕竟我未实现100股自由,希望各位能在下方点个“在看”,让我尽早实现100股自由。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351926.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【easyTrader源码分析1】源码结构梳理

开篇 简单说一下为什么想写这个系列: 我个人对自动化交易比较感兴趣,他山之石,可以攻玉,搞清楚easyTrader,就搞清楚了市面上大部分自动交易方法。实践是检验真理的唯一标准,一个无法实盘的量化交易系统&a…

股票入门知识

目录 01-申请账户 02-行情软件 03-同花顺界面 04-股票规则 05-买股票步骤 小伙伴们大家好,我是Gao,很高兴今天以这样的形式与大家见面。在过去的2020,我经常和朋友聊天,打游戏,从他们那里也得到了很多信息。在一次…

易观千帆 | 2023年3月证券APP月活跃用户规模盘点

易观:2023年3月证券服务应用活跃人数14131.58万人,相较上月,环比增长0.61%,同比增长0.60%;2023年3月自营类证券服务应用Top10 活跃人数6221.44万人,环比增长0.08%;2023年3月第三方证券服务应用T…

上海亚商投顾:沪指震荡调整 酒店等消费股逆势活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指今日震荡盘整,创业板指V型反弹,上证50跌超1%,保险、银行、券商等金融股下挫…

上海亚商投顾:沪指尾盘快速反弹微幅收跌 6G概念大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日震荡调整,临近尾盘集体回升,石油、保险等权重蓝筹走低,上证50盘中…

上海亚商投顾:沪指震荡反弹涨1.2% 中国移动创历史新高

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指午后涨超1%,长阳反包上周五阴线,创业板指盘中则跌逾…

微信数据差点丢失,同花顺崩了,中心化弊端频现,IPFS解决数据存储难题

此前看过马化腾的一次演讲,在《数字经济的趋势与探索》为主的演讲中,马化腾说了一件令人后怕的事情,他说在2015年的时候,我们的微信数据差点就没了。 事情源于2015年的天津港爆炸事件,那时腾讯在天津建设有当时亚洲最…

性能优化记录

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 前言 最近零零散散的对刚接手的一个新项目做了一些优化,白屏、打包相关的内容都涉及到了,写一篇文章来记录一下。 白屏相关 DNS…

几句话说清楚数据库的基本范式

第一范式 1NF:属性不能再被拆分。 人(身份证号, 姓名, 性别, 联系方式) 不满足 1NF因为联系方式包含了电话号码、电子邮箱、微信、QQ 等人(身份证号, 姓名, 性别, 电话号码) 满足 1NF 第二范式 2NF:不存在非主属性对主键的部分函数依赖关系。 R(A, B,…

创新需求:台灯加装语音识别芯片,打造智能化生活方式

为了满足人们对于智能化生活的需求,现在有一种创新的需求——为台灯加装语音识别芯片,从而实现远程控制、语音操控等更为智能的功能。 科技行业的快速发展,使得语音识别芯片也越来越普及。它们可以使电子产品具有智能化、人性化的交互方式。…

GitHub进不去或者响应满的轻松提速教程

1.先打开记事本用管理员身份运行,打开hosts hosts文件路径:C:\Windows\System32\drivers\etc\hosts,选所有文件,选中hosts文件 打开就是这样 如果打不开,修改一下文件的属性为可编辑 2.通过 https://www.ipaddress.com…

AUTOSAR通信篇-CAN网络通信(三:PduR)

文章目录 PduR简介I-PDU缓存缓存区类型缓存策略缓存共享 I-PDU接收接收来自通信接口的I-PDU接收来自传输协议的I-PDU I-PDU发送通信接口型发送传输协议型发送多播传输处理未知长度I-PDU I-PDU网关通信接口网关缓存立即网关 传输协议直接网关On-the-fly网关 发送取消接收取消零损…

《从零开始学架构:照着做,你也能成为架构师》李运华 读后感

从事软件开发工作已经有一些年头了,架构师作为技术人员心中的第一座山,不免想要向这方面靠;之前零零散散的学过很多技术框架,了解过一些技术理论,但是不成体系,没法儿很好的关联起来,查询过不少…

玩转STM32(4)学会目录分类

前面已经知道怎么样来得到第一个嵌入式程序了,如果还没有下载相应的文件,请先要下载。下载完成之后,就可以把压缩文件解压出来,就会看到一个LED_001的目录。不过,仔细一些的人,也许会发现这个压缩包有点大&…

elasticsearch安装和使用

一、全文检索基础 1. 什么是全文检索 将⾮结构化数据中的⼀部分信息提取出来,重新组织,使其变得有⼀定结构,然后对此有⼀定结构的数 据进⾏搜索,从⽽达到搜索相对较快的⽬的。这部分从⾮结构化数据中提取出的然后重新组织的信息…

【使用指南】ComponentOne Enterprise .NET开发控件集

为方便广大 .NET开发人员更好的使用 ComponentOne Enterprise .NET开发控件集,葡萄城专门推出了 ComponentOne Enterprise 使用指南,该指南详细地介绍了如何把 ComponentOne 各种强大的功能应用到您自己的项目中,助您轻松掌握产品使用技巧&am…

复旦大学肖仰华教授:知识图谱与认知智能 | 附PPT下载

关于作者:肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人。 报告摘要:人类社会已经进入智能化时代。各行各业纷纷踏上智能化升级与转型的道路,各类智能化应用需求大量涌现。…

读万卷书为何无用?

相信大家都听说过 “读万卷书不如行万里路,行万里路不如阅人无数;阅人无数不如名师指路 ” 这句话 。 这句话教给我们,最方便的成功之道是找到高人给我们指路。 很多人都已经意识到,现实生活中高人显然是可遇不可求的,…

mdx词典包_不会用医学词典?停姐手把手教你啊(内附海量医学词典词库资源下载)...

查阅外文文献是医学生必备技能,一个医学生学业生涯里不知道要查阅多少文献,所以拥有一个好用的词典工具就显得尤为重要。 前段时间有小可爱在微信后台问停姐有没有好用的医学词典推荐,停姐这段时间整理了一些分享给大家。 停姐在翻译视频的时候,用的最多的就是 欧路词典 ,…

UI 自动化测试实战(二)| 测试数据的数据驱动

【摘要】数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化在自动化测试中的应用。测试过程中使用数据驱动的优势主要体现在以下几点:1.提高代码复用率,相同的测试逻辑只需编写一条测…