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

开篇

简单说一下为什么想写这个系列:

  1. 我个人对自动化交易比较感兴趣,他山之石,可以攻玉,搞清楚easyTrader,就搞清楚了市面上大部分自动交易方法。
  2. 实践是检验真理的唯一标准,一个无法实盘的量化交易系统,相当于一位纸上谈兵的将军。
  3. 网络上有很多成熟的组合,不管是量化还是非量化的,都可以通过程序实现follow(跟单)。
  4. 希望能实现自己的自动化交易系统,实现并扩展其功能。

项目概况

  • 【Github地址】https://github.com/shidenggui/easytrader
  • 【项目作者】食灯鬼
  • 【项目简介】提供同花顺客户端/国金/华泰客户端/雪球的基金、股票自动程序化交易以及自动打新,支持跟踪 joinquant /ricequant 模拟交易 和 实盘雪球组合, 量化交易组件。

下载项目源码

下载easyTrader源码

git clone git@github.com:shidenggui/easytrader.git

可以看到,项目中第一层结构有很多文件及文件夹,而核心源码,其实是在easytrader这个文件夹中,其他的都是各种项目配置文件及文档,所以,我们聚焦真正的源码文件夹easytrader

在这里插入图片描述

源码量

我们用VScode Counter插件,统计下整个代码量。33个文件,31个Python源文件,2个JSON配置文件。纯代码2889行,注释620行,空行677行,代码量不算大,在可读范围内。

在这里插入图片描述

再来逐一看一下每个文件的代码量,纯代码大于100行的文件只有6个,其他的都小于100行,阅读难度不算太大。

在这里插入图片描述

源码目录

我们打开easytrader文件夹看一下结构,使用tree工具查看项目结构如下,我们先大致逐一解释下每个文件的用途,后边文章再每个详细分析。

├── config  # 配置文件夹
│   ├── __init__.py # 子模块入口,空文件
│   ├── client.py # 定义各种不同客户端需要的常量
│   ├── global.json # 全局字段配置
│   └── xq.json # 雪球各种地址
├── utils # 工具文件夹
│   ├── __init__.py # 子模块入口,空文件
│   ├── captcha.py # 验证码识别
│   ├── misc.py # 数据格式转换
│   ├── perf.py # perf_clock函数装饰器
│   ├── stock.py # 股票相关辅助函数
│   └── win_gui.py # 输出pywinauto内的几个对象
├── __init__.py # 包入口文件,输出一些方法
├── api.py # 两个核心api:use和follower
├── clienttrader.py # 客户端交易基类
├── exceptions.py # 异常处理
├── follower.py # 跟单基类
├── gf_clienttrader.py # 广发客户端交易
├── gj_clienttrader.py # 国金客户端交易
├── grid_strategies.py # 网格策略
├── ht_clienttrader.py # 华泰客户端交易
├── htzq_clienttrader.py # 海通证券客户端交易
├── joinquant_follower.py # 聚宽跟单
├── log.py # 日志
├── pop_dialog_handler.py # 弹窗操控
├── refresh_strategies.py # 各种刷新策略
├── remoteclient.py # 远程客户端
├── ricequant_follower.py # 米筐跟单
├── server.py # 远程服务端
├── universal_clienttrader.py # 通用同花顺客户端交易
├── webtrader.py # 雪球web版
├── wk_clienttrader.py # 五矿客户端交易
├── xq_follower.py # 雪球跟单
├── xqtrader.py # 雪球模拟交易与实盘
└── yh_clienttrader.py # 银河客户端交易2 directories, 33 files

功能点总结

初步过了一遍每个文件,可以将功能总结为几个部分:

  1. 客户端自动化交易:clienttrader.pygf_clienttrader.pygj_clienttrader.pyht_clienttrader.pyhtzq_clienttrader.pyuniversal_clienttrader.pywk_clienttrader.pywebtrader.pyxqtrader.py
  2. 量化平台跟单:follower.pyjoinquant_follower.pyricequant_follower.pyxq_follower.py
  3. 远程部署:server.pyremoteclient.py
  4. 其他辅助功能:configutils api.pyexceptions.pylog.pypop_dialog_handler.pyrefresh_strategies.pygrid_strategies.py

结语

本篇基本梳理清楚了easyTrader的源码结构和功能,后面文章逐一分析各个部分。

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

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

相关文章

股票入门知识

目录 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.提高代码复用率,相同的测试逻辑只需编写一条测…

python数据可视化--matplotlib库

目录 python数据可视化--matplotlib库0、前言1、饼图2、直方图3、折线图4、散点图5、柱状图6、箱线图7、极坐标图8、步阶图9、谱图10、功率密度图11、相干谱图 python数据可视化–matplotlib库 0、前言 在进行数据分析的过程中,正所谓“一图胜千言”,一…