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://www.rhkb.cn/news/17940.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RWKV:在Transformer时代重振RNN

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【Transformer】交流群 梦晨 衡宇 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT爆火以来,大语言模型和Transformer几乎成了同义词,然而真的如此吗&…

上海成国内开发者收入最高城市,2022 全球程序员收入报告出炉!

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 在科技迅速发展的时代,各行业对程序员的需求持续增长,程序员作科技市场的“重要基石”,薪资一直是非常“能打”的存在。 近日,美国科技公…

好好讲话--《即兴演讲:掌控人生的关键时刻》

最近在微信听书上听到了一个比较好的课程–《即兴演讲,张口就说》,总共12节,细致的讲解了即兴演讲的技巧和经验。 突然想起来读过的这本书,于是就重新拿出来翻了翻。 和上面的课程进行了一个简单的对比,发现&#xf…

对话OpenAI研究科学家:他们是如何让GPT4更像人的?

ChatGPT不是一次伟大创新的产物,而是许多个阶段性创新持续叠加的结果。 文 | Aparna Dhinakaran 究竟是怎样的大脑创造出了跨时代的ChatGPT?作为ChatGPT的姊妹模型,InstructGPT的核心技术和ChatGPT有很多相通之处。 近期,美国AI可…

记北京Linux用户组2008年第一次活动——串夜派对NO.1

串夜派对NO.1<o:p></o:p> 上周四&#xff0c;周老师&#xff08;博文视点副总&#xff09;告诉我&#xff0c;孟岩老师&#xff08;《程序员》技术总监&#xff09;要带我去参加BJUG Linux用户组组织的一个活动。当时我有些纳闷&#xff0c;有这样的活动我怎么不知…

ZT 80-90年代港台300部电视剧 你看过多少?

80-90年代港台300部电视剧 你看过多少&#xff1f; [复制链接] 噗噗 738主题18精华 万家金领 发消息 发表于 2010-4-27 09:01:02 | 显示全部楼层 1、&#xff08;珍珠传奇&#xff09; 施 思 寇世勋 姜厚任 台湾古装剧     2、&#xff08;法网柔情&#xff09; 米 雪 刘…

SparkCore-RDD编程

SparkCore-RDD编程操作 0. 大纲 Spark程序的执行过程RDD的操作 RDD的转换操作共享变量 高级排序 1. Spark程序执行过程 1.1. WordCount案例程序的执行过程 1.2. Spark程序执行流程 2. RDD的操作 ​ At a high level, every Spark application consists of a driver program…

有了这个Python库,再也不愁给孩子起名字了

后台回复1024&#xff0c;解锁无限快乐&#xff01; 你是不是曾经为了给孩子起名字而左思右想&#xff0c;抓耳挠腮&#xff1f; 今天&#xff0c;我为你带来一款永久且快速的解决方案&#xff0c;让你再也不会为给孩子起名而苦恼了&#xff0c;无论生多少个&#xff0c;起名都…

深挖GPT-4背后的技术方向,华人开发者成绩斐然

源&#xff5c;机器之心 始于谷歌&#xff0c;发迹于 OpenAI&#xff0c;这是很多 GPT-4 贡献者的职业轨迹。 这个星期&#xff0c;OpenAI 大模型 GPT-4 的发布让全球科技圈的技术竞争进入了白热化。几天之内&#xff0c;ChatGPT、必应搜索和 Microsoft 365 相继接入 GPT-4&…

火狐十大必用插件

十个个必装的火狐插件 也许这十个中其中某个或者几个并适合中国人用&#xff0c;当我至少有3个在用&#xff01; 上次我们为必装的火狐扩展进行排行 已经是两年前的事了。而现在的新 排行做出了一些必要的更新&#xff0c;和上次一样以即点即用的形式为大家展现这次的大师级最…

火狐的一些实用插件

Firefox Firefox是一一个出自Mozilla组织的流行的Web浏览器。Firefox的流行并不仅仅是因为它是一-个好的浏览器&#xff0c;而且它能够支持插件进而加强它自身的功能。 Mozilla 有一个插件站点&#xff0c;在那里面有成千上万非常有用的插件。一些插件对于渗透测试人员和安全…

推荐几个火狐浏览器插件

目前&#xff0c;谷歌浏览器市场占有率最高&#xff0c;谷歌公司号称不作恶&#xff0c;实际上也作了一些恶&#xff0c;只不过底线比百度高一点。因为各类屏蔽广告的插件有损谷歌自己投放的广告的收益&#xff0c;因此谷歌对广告屏蔽插件下手了&#xff0c;削弱插件的屏蔽效果…

Firefox火狐浏览器插件大全

Firefox火狐浏览器 软件版本&#xff1a;51.0.1 简体中文版软件大小&#xff1a;666KB软件授权&#xff1a;免费适用平台&#xff1a; WinXP Win2003 Vista Win8 Win7 Win10下载地址&#xff1a;http://dl.pconline.com.cn/download/52175.html 立即下载 一、浏览器功能扩展组…

fireFox post请求插件,火狐浏览器插件

在开发过程中&#xff0c;为了测试数据&#xff0c;提交表单等。经常会用到post请求&#xff1b;在这里向大家介绍一款比较好用的浏览器插件&#xff0c;它可以很好的模拟post&#xff0c;get&#xff0c;put等常用的请求。大大便利了我们的开发。它就是fire fox中的RESTClient…

用nodejs搭建代理服务器

代理服务器的原理 案例 安装 express、http-proxy-middlewareapp.js 文件 node app.jsvar express require(express); var app express(); app.use(express.static(./public)); app.listen(3000);在 public 文件夹下建立 a.html<!DOCTYPE html> <html lang"en…

VSCode连GitHub的代理服务器配置和获取历史版本命令

1. 在VSCode中配置代理&#xff1a; 在设置中查找“Proxy”直接编辑配置文件。或者在如下菜单中点击打开配置文件 在配置文件中添加如下两条。注意http和https的代理都要配置上 "http.proxy": "http://192.168.8.*:8080", "https.proxy": &quo…

巴比特 | 元宇宙每日必读:围剿ChatGPT?继意大利之后,法国、西班牙也对ChatGPT展开调查,欧盟监管机构已成立调查组...

摘要&#xff1a;据财联社报道&#xff0c;自去年末以来&#xff0c;ChatGPT人工智能机器人在全球引发高度关注。在人们为该AI系统表现出的强大能力所惊叹的同时&#xff0c;其数据准确性及隐私相关问题也引发人们的担忧。在意大利最早对ChatGPT采取了监管举措后&#xff0c;当…

AIGC用于智能写作的技术综述-达观数据

导语 图1. ChatGPT生成的关于智能写作的介绍 智能写作指使用自然语言处理技术来自动生成文本内容。这种技术通过分析给定语料库&#xff0c;学习文本的结构和语法&#xff0c;然后利用这些信息来生成新的文本。智能写作可以用来快速生成高质量的文本内容&#xff0c;并且可…

谷歌Bard是拿ChatGPT数据训练的?BERT一作抗议无果,跳槽OpenAI...

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【多模态学习】微信技术交流群 转载自&#xff1a;机器之心 谷歌顶尖科学家向皮查伊、Jeff Dean 请愿未果&#xff0c;最后只好跳槽 OpenAI。 打不过就加入&#xff0c;打不过…

Bard是拿ChatGPT数据训练的?谷歌顶级科学家抗议无果,出走OpenAI

源 | 机器之心 谷歌顶尖科学家向皮查伊、Jeff Dean 请愿未果&#xff0c;最后只好跳槽 OpenAI。 打不过就加入&#xff0c;打不过就直接用&#xff1f; 相比成为科技领域里程碑的 ChatGPT&#xff0c;谷歌推出的竞品 Bard 亮相似乎并不令人印象深刻&#xff0c;对于这家科技巨头…