# 说明文档
项目无Wiki,此说明文档包含了项目所有相关内容。包括项目介绍、使用说明等。
GitHub主站:https://github.com/wkingnet/stock-analysis
Gitee镜像:https://gitee.com/wkingnet/stock-analysis
## 前言
一切有为法,如梦幻泡影;如露亦如电,应作如是观。
### 缘起
我自己多年来一直使用通达信公式选股。近期越发感觉到通达信公式的局限性(大智慧同花顺公式和通达信都有同样局限性),比如变量无法二次赋值、没有循环、IF语句简陋,且软件自带公式评测功能鸡肋。更重要的是**通达信公式都是基于短周期的判断**,比如不管是MACD金叉、cross上穿还是创历史新高,皆为“当前周期日”的结果,无法判断类似“此为上涨第几浪,每个浪的高低价各是多少”。而如果用周线周期选股,那只有每周五收盘以后才可以选,会错失先机。月线更是不可能用到。
因此,我有了两个核心需求:盘中选股以及策略回测。这又延伸出了数据采集、数据加工、行情监视等需求。另外为了隐私考虑,所有第三方导入库、借鉴的代码都需开源,本地化,不云端。
我本身侧重于研究股票或期货的趋势、逻辑、投机,不做价投,不做超短,可以耐心持股,也可以耐心空仓。
### 什么是量化
我的理解,“量化”一词有两层释义。狭义上是指把思路变为计算机代码,包括通达信公式、python代码等;广义上是指在狭义释义的基础上,通过计算机自动完成整个选股和交易的过程。
### 为什么量化
然而量化又是投资过程中必须要完成的阶段。你有了一个选股思路,不管是长线投资的还是短线投机、不论是看基本面还是看技术面,总之你想把思路转化为选股策略,把思想转变为选股公式,这一过程本身就是量化。再之后,为了确定策略是否有效、收益率如何,又必然需要做策略回测来验证。最后,为了防止人性对交易过程的干扰,可以考虑使用自动化交易。
### 量化的优点
1. 选股。当把选股思路量化为代码后,计算机可以快速准确的帮你选出你想要的股票。
2. 下单速度。触发买入、卖出条件后,计算机可以在毫秒级别内完成下单操作。人为操作需要“打开交易软件-填股票代码-填金额-填数量-点下单”。这还没有考虑下单前,人们会来回犹豫所浪费的时间。
### 量化了就能赚钱?
python、量化过程、量化平台都只是工具,核心是交易策略,是交易思想。交易的目的是赚钱,不是学编程当程序员,也不是沉迷于玩数据中不可自拔,代码写的再高级精炼,不赚钱统统白搭。现在网上很多收费课程、量化平台,都是“卖铲子”的,核心的可以能稳定赚钱的量化策略,绝无一家提供。
就我个人而言,我不赞同完全把重心放在全自动量化交易上,而忽视基本面和技术面。对于短线来说,不确定性太多。比如,1分钟K线几乎处于“混沌”状态,根本没有逻辑和趋势可言。而周期越大的K线,越能体现出趋势和力度,突然反转的可能性越小。对于长线来说……还未听说过有把程序化交易用于长线的事例。然而就目前我所了解见到的,都是将量化应用于短线的实战。我觉得,对于短线而言,量化的优点是抢先发现买点、抢先下单,先敌制胜。但这个前提是你在做量化之前,就本身已经有了一套“短线不败法宝”,换言之就是你短线本身就一直在赚钱,上量化只不过是为了减少选股和下单时间。如果之前做短线一直亏钱,那上了量化后就赚钱是绝无可能的。对于中长线而言,量化也是侧重于选股方面。下单可以自己手动下单,中长线是不在乎那几分钟下单时间的区别的。
引用一段网友的话:
> 交易这门手艺发展了这么多年,流派可谓五花八门,有看基本面搞价值投资的,有看K线搞技术指标的,有学江恩,缠论数波浪画中枢的,有分析资金面的,分析市场情绪的,有结合原始数据做日内波段的,有恨不得把服务器架在交易所对面做高频的,有搞一箱子GPU做automl,深度学习和强化学习的,有搞对冲的,搞多因子的,搞指数增强的,有搞MOM组合管理的,有搞一堆艰深晦涩的微分方程做衍生品套利的,当然,也有靠求神拜佛和拍脑门跺地板的。每种流派都有一些人奉为圭臬,还有一批人弃如敝履,而且时不时的还会冒出几个新的流派出来,令人眼花缭乱,有些摸不到头脑。
>
> 不知道哪个著名的人曾说过,如果你没有自己的思想,那你的脑子注定会成为其他人思想的跑马场。上面的这一堆思想和流派,既然能够出现并且流传下来,还能够有一批拥趸和死忠,也就表明它们确实是市场的本质或者圣杯在某个维度的一个映射或投影,但也仅仅只是一个投影而已。学习它们只是为了能够从更多的角度去窥视那个交易的圣杯,进而一点点的深化,完善和验证自己的交易思想和理论体系,最终通过一个承载着自己思想体系的工具来将思想兑换成实际的收益。在这个市面上出现的每一种付费编译的或者免费开源的交易软件都是固定的,即使在不断更新迭代也只是按照开发团队的思路来进行,包括QA在内,不可能有一个软件或者项目能够满足所有可能的交易思想,自然也就无法让你自由的学习,验证,归纳和吸收这些思想中的精华。因此,如果你没有定制化的开发交易工具的能力,而只能使用现有的工具的话,你的思想和自由意志就这样被别人的工具所局限住了。——[对QUANTAXIS的设计理念的思考和一些感悟](http://www.yutiansut.com:3000/topic/5f5ee1775778f910c1ba7a97)
## 项目介绍
- 使用python进行股票历史数据下载和分析选股。除了选股策略以外,其他都可公开。
- git网站上有很多优秀开源量化平台项目。本项目与其他项目的区别是,本项目侧重于选股、回测所需数据的导入工作。有了历史数据和选股策略,选择哪个量化平台做回测都是很轻松的事情了。
- 业余编程水平,需求导向。才疏学浅,刚学python几个月时间。git主要作为云端git库使用。无任何解答服务。
- 力求选择最稳定可靠的数据获取方式。虽然网上有很多数据源平台,但都受制于“积分”、带宽、平台是否更新等,完全是把程序主动权交到了对方手里。因此本项目所有数据依靠本地通达信软件导出提供。感谢通达信,真是个好公司!不止数据容易提取,各种和谐加强版也很好用。
![功能截图](https://images.gitee.com/uploads/images/2021/0225/181340_fd82dd5e_5346376.png "QQ截图20210225181254.png")
软件运行截图
![盘中选股截图](https://images.gitee.com/uploads/images/2021/0325/123919_75803122_5346376.png "QQ截图20210325123845.png")
盘中选股截图
![回测系统截图](https://images.gitee.com/uploads/images/2021/0325/135142_b02cfc7f_5346376.png "QQ截图20210325135112.png")
回测系统截图
![显示策略持仓区域](https://images.gitee.com/uploads/images/2021/0305/220211_5b2f75b3_5346376.png "QQ截图20210305215647.png")
高亮显示策略历史持仓区域,红赚绿亏
### 项目进度
#### 已完成功能
- 读取本机通达信文件,导出未除权日线数据、股本变迁数据、全A股全年份财务报告数据。
- 财务�