stock

所属分类:金融证券系统
开发工具:Python
文件大小:2194KB
下载次数:2
上传日期:2023-06-15 00:05:33
上 传 者sh-1993
说明:  stock股票系统.爬取stock股票关键数据,计算stock股票各种指标,识别stock股票K线形态,内置多种stock股票策略,支持stock股票验证回测及stock股票自动交易,是量化投资工具。captures key dail...
(Stock stock system. It crawls the key data of stock stock, calculates various indicators of stock stock, identifies the K-line shape of stock stock, and has multiple stock stock strategies built in. It supports stock stock verification and backtesting and automatic stock stock trading. It is a quantitative investment tool. Captures key day)

文件列表:
LICENSE (11357, 2023-08-16)
cron (0, 2023-08-16)
cron\cron.hourly (0, 2023-08-16)
cron\cron.hourly\run_hourly (173, 2023-08-16)
cron\cron.monthly (0, 2023-08-16)
cron\cron.monthly\run_monthly (442, 2023-08-16)
cron\cron.workdayly (0, 2023-08-16)
cron\cron.workdayly\run_workdayly (174, 2023-08-16)
docker (0, 2023-08-16)
docker\.dockerignore (38, 2023-08-16)
docker\Dockerfile (2884, 2023-08-16)
docker\build.sh (714, 2023-08-16)
img (0, 2023-08-16)
img\00.jpg (120895, 2023-08-16)
img\01.jpg (73641, 2023-08-16)
img\02.jpg (50633, 2023-08-16)
img\03.jpg (55362, 2023-08-16)
img\04.jpg (81850, 2023-08-16)
img\05.jpg (41478, 2023-08-16)
img\06.jpg (114698, 2023-08-16)
img\07.jpg (67086, 2023-08-16)
img\08.jpg (73216, 2023-08-16)
img\09.jpg (38679, 2023-08-16)
img\10.jpg (69940, 2023-08-16)
img\11.jpg (14858, 2023-08-16)
img\12.jpg (80673, 2023-08-16)
img\13.jpg (85399, 2023-08-16)
img\a1.jpg (174671, 2023-08-16)
img\a2.jpg (153338, 2023-08-16)
img\a3.jpg (172082, 2023-08-16)
instock (0, 2023-08-16)
instock\__init__.py (91, 2023-08-16)
instock\bin (0, 2023-08-16)
instock\bin\restart_web.sh (117, 2023-08-16)
instock\bin\run_cron.sh (358, 2023-08-16)
... ...

**项目计划:1.爬取任何想要的数据;2.开发选股模块,支持各种条件组合选股;3.升级查询功能,支持任意检索。** ![](https://github.com/myhhub/stock/blob/master/img/a3.jpg) ![](https://github.com/myhhub/stock/blob/master/img/a2.jpg) ![](https://github.com/myhhub/stock/blob/master/img/a1.jpg) **InStock股票系统** InStock股票系统,抓取每日股票、ETF关键数据,计算股票各种指标,识别K线各种形态,内置多种选股策略,支持选股验证回测,支持自动交易,支持批量时间,运行高效,支持PC、平板、手机移动设备显示,同时提供Docker镜像方便安装,是量化投资的好帮手。 本项目地址:https://github.com/myhhub/stock Docker镜像:https://hub.docker.com/r/mayanghua/instock **镜像优化构建仅170M**。 # 功能介绍 ## 一:股票每日数据 包括每日股票数据、股票资金流向、股票分红配送、股票龙虎榜、股票大宗交易、股票基本面数据、行业资金流向、概念资金流向、每日ETF数据。 抓取A股票每日数据,主要为一些关键数据,同时封装抓取方法,方便扩展系统获取个人关注的数据。 ![](https://github.com/myhhub/stock/blob/master/img/00.jpg) ![](https://github.com/myhhub/stock/blob/master/img/12.jpg) ## 二:股票指标计算 基于talib、pandas 计算指标,计算高效准确。调整个别指标公式,确保结果和同花顺、通信达结果一致。 指标: ``` 1、MACD 2、KDJ 3、BOLL 4、TRIX,TRMA 5、CR 6、SMA 7、RSI 8、VR,MAVR 9、ROC 10、DMI,+DI,-DI,DX,ADX,ADXR 11、W&R 12、CCI 13、TR、ATR 14、DMA、AMA 15、OBV 16、SAR 17、PSY 18、BRAR 19、EMV 20、BIAS 21、TEMA 22、MFI 23、VWMA 24、PPO 25、WT 26、Supertrend 27、DPO 28、VHF 29、RVI 30、FI 31、ENE 32、STOCHRSI ``` ![](https://github.com/myhhub/stock/blob/master/img/01.jpg) ![](https://github.com/myhhub/stock/blob/master/img/06.jpg) ![](https://github.com/myhhub/stock/blob/master/img/13.jpg) ![](https://github.com/myhhub/stock/blob/master/img/10.jpg) ![](https://github.com/myhhub/stock/blob/master/img/02.jpg) ## 三:判断买入卖出的股票 根据指标判定可能买入卖出的股票,具体筛选条件如下: ``` KDJ: 1、超买区:K值在80以上,D值在70以上,J值大于90时为超买。一般情况下,股价有可能下跌。投资者应谨慎行事,局外人不应再追涨,局内人应适时卖出。 2、超卖区:K值在20以下,D值在30以下为超卖区。一般情况下,股价有可能上涨,反弹的可能性增大。局内人不应轻易抛出股票,局外人可寻机入场。 RSI: 1、当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。 2、当六日强弱指标下降至20时,表示股市有超卖现象,如果一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会。 CCI: 1、当CCI>+100时,表明股价已经进入非常态区间——超买区间,股价的异动现象应多加关注。 2、当CCI<-100时,表明股价已经进入另一个非常态区间——超卖区间,投资者可以逢低吸纳股票。 CR: 1、跌穿a、b、c、d四条线,再由低点向上爬升160时,为短线获利的一个良机,应适当卖出股票。 2、CR跌至40以下时,是建仓良机。 WR: 1、当%R线达到20时,市场处于超买状况,走势可能即将见顶。 2、当%R线达到80时,市场处于超卖状况,股价走势随时可能见底。 VR: 1、获利区域160-450根据情况获利了结。 2、低价区域40-70可以买进。 ``` ![](https://github.com/myhhub/stock/blob/master/img/05.jpg) ## 四:K线形态识别 精准识别61种K线形态,支持用户自选形态识别。 识别形态: ``` 1、两只乌鸦2、三只乌鸦3、三内部上涨和下跌4、三线打击5、三外部上涨和下跌6、南方三星7、三个白兵8、弃婴 9、大敌当前10、捉腰带线11、脱离12、收盘缺影线13、藏婴吞没14、反击线15、乌云压顶16、十字17、十字星 18、蜻蜓十字/T形十字19、吞噬模式20、十字暮星 21、暮星22、向上/下跳空并列阳线23、墓碑十字/倒T十字 24、锤头25、上吊线26、母子线27、十字孕线28、风高浪大线29、陷阱30、修正陷阱31、家鸽32、三胞胎乌鸦 33、颈内线34、倒锤头35、反冲形态36、由较长缺影线决定的反冲形态37、梯底38、长脚十字39、长蜡烛 40、光头光脚/缺影线 41、相同低价42、铺垫43、十字晨星44、晨星45、颈上线46、刺透形态47、黄包车夫 48、上升/下降三法49、分离线50、射击之星51、短蜡烛52、纺锤53、停顿形态54、条形三明治55、探水竿 56、跳空并列阴阳线57、插入58、三星59、奇特三河床60、向上跳空的两只乌鸦61、上升/下降跳空三法 ``` 形态识别结果: ``` 负:出现卖出信号 0:没有出现该形态 正:出现买入信号 ``` ![](https://github.com/myhhub/stock/blob/master/img/09.jpg) ![](https://github.com/myhhub/stock/blob/master/img/06.jpg) ## 五:策略选股 内置放量上涨、停机坪、回踩年线、突破平台、放量跌停等多种选股策略,同时封装了策略模板,方便扩展实现自己的策略。 ``` 1、放量上涨 1)当日比前一天上涨小于2%或收盘价小于开盘价。 2)当日成交额不低于2亿。 3)当日成交量/5日平均成交量>=2。 2、均线多头 MA30向上 1)30日前的30日均线<20日前的30日均线<10日前的30日均线<当日的30日均线。 2)(当日的30日均线/30日前的30日均线)>1.2。 3、停机坪 1)最近15日有涨幅大于9.5%,且必须是放量上涨。 2)紧接的下个交易日必须高开,收盘价必须上涨,且与开盘价不能大于等于相差3%。 3)接下2、3个交易日必须高开,收盘价必须上涨,且与开盘价不能大于等于相差3%,且每天涨跌幅在5%间。 4、回踩年线 1)分2个时间段:前段=最近60交易日最高收盘价之前交易日(长度>0),后段=最高价当日及后面的交易日。 2)前段由年线(250日)以下向上突破。 3)后段必须在年线以上运行,且后段最低价日与最高价日相差必须在10-50日间。 4)回踩伴随缩量:最高价日交易量/后段最低价日交易量>2,后段最低价/最高价<0.8。 5、突破平台 1)60日内某日收盘价>=60日均线>开盘价。 2)且【1】放量上涨。 3)且【1】间之前时间,任意一天收盘价与60日均线偏离在-5%~20%之间。 6、无大幅回撤 1)当日收盘价比60日前的收盘价的涨幅小于0.6。 2)最近60日,不能有单日跌幅超7%、高开低走7%、两日累计跌幅10%、两日高开低走累计10%。 7、海龟交易法则 最后一个交易日收市价为指定区间内最高价。 1)当日收盘价>=最近60日最高收盘价。 8、高而窄的旗形 1)必须至少上市交易60日。 2)当日收盘价/之前24~10日的最低价>=1.9。 3)之前24~10日必须连续两天涨幅大于等于9.5%。 9、放量跌停。 1)跌>9.5%。 2)成交额不低于2亿。 3)成交量至少是5日平均成交量的4倍。 10、低ATR成长 1)必须至少上市交易250日。 2)最近10个交易日的最高收盘价必须比最近10个交易日的最低收盘价高1.1倍。 11、股票基本面选股 1)市盈率小于等于20,且大于0。 2)市净率小于等于10。 3)净资产收益率大于等于15。 ``` ![](https://github.com/myhhub/stock/blob/master/img/04.jpg) ## 六:选股验证 对指标、策略等选出的股票进行回测,验证策略的成功率,是否可用。 ![](https://github.com/myhhub/stock/blob/master/img/05.jpg) ## 七:自动交易 支持自动交易,内置自动打新股的策略及示例策略,由于**涉及金钱**,规避可能存在风险,没有提供其他交易策略。 具有交易日志,以及支持为每个交易策略配置交易日志。 **特别提醒**:交易日10:00点会触发打新,不想打新的删除stagging.py或不要启动“交易服务”。 ![](https://github.com/myhhub/stock/blob/master/img/11.jpg) ## 八:关注功能 支持股票关注,关注股票在各个模块(含有的)置顶、标红显示。 ## 九:支持批量 可以通过时间段、枚举时间、当前时间进行指标计算、策略选股及回测等。同时支持智能识别交易日,可以输入任意日期。 具体执行设置如下: ``` ------整体作业,支持批量作业------ 当前时间作业 python execute_daily_job.py 单个时间作业 python execute_daily_job.py 2022-03-01 枚举时间作业 python execute_daily_job.py 2022-01-01,2021-02-08,2022-03-12 区间时间作业 python execute_daily_job.py 2022-01-01 2022-03-01 ------单功能作业,支持批量作业,回测数据自动填补到当前 基础数据实时作业 python basic_data_daily_job.py 基础数据非实时作业 python basic_data_other_daily_job.py 指标数据作业 python indicators_data_daily_job.py K线形态作业 klinepattern_data_daily_job.py 策略数据作业 python strategy_data_daily_job.py 回测数据 python backtest_data_daily_job.py ``` ## 十:存储采用数据库设计 数据存储采用数据库设计,能保存历史数据,以及对数据进行扩展分析、统计、挖掘。系统实现自动创建数据库、数据表,封装了批量更新、插入数据,方便业务扩展。 ![](https://github.com/myhhub/stock/blob/master/img/07.jpg) ## 十一:展示采用web设计 采用web设计,可视化展示结果。对展示进行封装,添加新的业务表单,只需要配置视图字典就可自动出现业务可视化界面,方便业务功能扩展。 ## 十二:运行高效 采用多线程、单例共享资源有效提高运算效率。1天数据的抓取、计算指标、形态识别、策略选股、回测等全部任务运行时间大概4分钟(普通笔记本),计算天数越多效率越高。 ## 十三:方便调试 系统运行的重要日志记录在stock_execute_job.log(数据抓取、处理、分析)、stock_web.log(web服务)、stock_trade.log(交易服务),方便调试发现问题。 ![](https://github.com/myhhub/stock/blob/master/img/08.jpg) # 安装说明 本系统支持Windows、Linux、MacOS,同时本系统创建了Docker镜像,按自己需要选择安装方式。 下面按分常规安装方式、docker镜像安装方式进行一一说明。 ## 一:常规安装方式 建议windows下安装,方便操作及使用系统,同时安装也非常简单。 以下安装及运行以windows为例进行介绍。 ### 1.安装python 项目开发使用python 3.11,建议最新版。 ``` (1)在官网 https://www.python.org/downloads/ 下载安装包,一键安装即可,安装切记勾选自动设置环境变量。 (2)配置永久全局国内镜像库(因为有墙,无法正常安装库文件),执行如下dos命令: python pip config --global set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 如果你只想为当前用户设置,你也可以去掉下面的"--global"选项 ``` ### 2.安装mysql 建议最新版。 ``` 在官网 https://dev.mysql.com/downloads/mysql/ 下载安装包,一键安装即可。 ``` ### 3.安装依赖库 依赖库都是目前最新版本。 a.安装依赖库: ``` #dos切换到本系统的根目录,执行下面命令: python pip install -r requirements.txt ``` b.若想升级项目依赖库至最新版,可以通过下面方法: 先打开requirements.txt,然后修改文件中的“==”为“>=”,接着执行下面命令: ``` python pip install -r requirements.txt --upgrade ``` c.若扩展了本项目,可以通过下面方法生成项目依赖: ``` #使用pipreqs生成项目相关依赖的requirements.txt python pip install pipreqs # 安装pipreqs,若有安装可跳过 python pipreqs --encoding utf-8 --force ./ # 本项目是utf-8编码 ``` ### 4.安装 talib ``` 第一种方法. pip 下安装 (1)https://www.ta-lib.org/下载并解压ta-lib-0.4.0-msvc.zip (2)解压并将ta_lib放在C盘根目录 (3)https://visualstudio.microsoft.com/zh-hans/downloads/下载并安装Visual Studio Community,安装切记勾选Visual C++功能 (4)Build TA-Lib Library # 构建 TA-Lib 库 1在开始菜单中搜索并打开[Native Tools Command Prompt](https://github.com/myhhub/stock/blob/master/根据操作系统选择32位或***位) 2输入 cd C:\ta-lib\c\make\cdr\win32\msvc 3构建库,输入 nmake (5)安装完成。 第二种方法. Anaconda 下安装 (1)打开Anaconda Prompt终端。 (2)在终端输入命令行conda install -c conda-forge ta-lib 。 (3)此处确认是否继续安装?输入y 继续安装,直到完成 (4)安装完成。 ``` ### 5.安装 Navicat(可选) Navicat可以方便管理数据库,以及可以手工对数据进行查看、处理、分析、挖掘。 Navicat是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库 ``` (1)在官网 https://www.navicat.com.cn/download/navicat-premium 下载安装包,一键安装即可。 (2)然后下载破解补丁: https://pan.baidu.com/s/18XpTHrm9OiLEl3u6z_uxnw 提取码: 8888 ,破解即可。 ``` ### 6.配置数据库 一般可能会修改的信息是”数据库访问密码“。 修改database.py相关信息: ``` db_host = "localhost" # 数据库服务主机 db_user = "root" # 数据库访问用户 db_password = "root" # 数据库访问密码 db_port = 3306 # 数据库服务端口 db_charset = "utf8mb4" # 数据库字符集 ``` ### 7.安装自动交易(可选) ``` 1.安装交易软件 1.1 通用同花顺客户端券商的客户 通用同花顺客户端: https://activity.ths123.com/acmake/cache/1361.html 1.2 专用同花顺客户端券商的客户 自行去券商官网找同花顺专用版 例如:广发的下载核新独立委托端(同花顺版): http://www.gf.com.cn/softdownload/index?tab=1 2.安装tesseract(自动识别验证码) 第一种方法.下载编译好的 在下面链接页,根据操作系统选择相应版本 https://digi.bib.uni-mannheim.de/tesseract/ 第二种方法.用源码编译 下载源码:https://github.com/tesseract-ocr/tesseract 注意: 安装完要将安装路径设置到PATH环境变量里。 下面提供dos命令设置,以管理员身份运行cmd,输入: setx /m PATH "%PATH%;C:\Program Files\Tesseract-OCR" 3.设置交易配置 3.1.修改trade_client.json "user": "888888888888", #交易账号 "password": "888888", #交易密码 "exe_path": "C:/gfzqrzrq/xiadan.exe" #交易软件路径 3.2.修改trade_service.py broker = 'gf_client' #这是广发 详情参阅usage.md,配置对应券商 ``` ### 8.运行说明 #### 8.1.执行数据抓取、处理、分析、识别 支持批量作业,具体参见run_job.bat中的注释说明。 建议将其加入到任务计划中,工作日的每天17:00执行。 **数据抓取、处理原则:** 1).开盘即有且无历史数据的:每日股票数据、股票资金流向、股票分红配送、龙虎榜、每日ETF数据; 2).收盘即有且有历史数据的:股票指标数据、股票K线形态、股票策略数据; 3).收盘后1~2小时才有且有历史数据的:大宗交易。 运行run_job.bat,会依据上面原则获取各模块当前或前个交易日的数据。 ``` 运行 run_job.bat ``` 若想看开盘后的当前实时数据,可以运行下面,很快大概1秒: ``` #基础数据作业 python basic_data_daily_job.py ``` #### 8.2.启动web服务 ``` 运行 run_web.bat ``` 启动服务后,打开浏览器,输入:http://localhost:9***8/ ,即可使用本系统的可视化功能。 #### 8.3.启动交易服务 ``` 运行 run_trade.bat ``` ## 二:docker镜像安装方式 没有docker环境,可以参考:[VirtualBox虚拟机安装Ubuntu](https://github.com/myhhub/stock/blob/master/https://www.ljjyy.com/archives/2019/10/100590.html),里面也介绍了python、docker等常用软件的安装,若想在Windows下安装docker自行百度。 ### 1.安装数据库镜像 如果已经有Mysql、mariadb数据库可以跳过本步。 运行下面命令: **特别提醒:执行命令的用户要有root权限,其他命令也如此。例如:ubuntu系统在命令前加上sudo** ,sudo docker...... ``` docker run -d --name InStockDbService \ -v /data/mariadb/data:/var/lib/instockdb \ -e MYSQL_ROOT_PASSWORD=root \ library/mariadb:latest ``` ### 2.安装本系统镜像 a.若按上面【1.安装数据库镜像】装的数据库,运行下面命令: ``` docker run -dit --name InStock --link=InStockDbService \ -p 9***8:9***8 \ -e db_host=InStockDbService \ mayanghua/instock:latest ``` b.已经有Mysql、mariadb数据库,运行下面命令: ``` docker run -dit --name InStock \ -p 9***8:9***8 \ -e db_host=localhost \ -e db_user=root \ -e db_password=root \ -e db_database=instockdb \ -e db_port=3306 \ mayanghua/instock:latest ``` docker -e 参数说明: ``` db_host # 数据库服务主机 db_user # 数据库访问用户 db_password # 数据库访问密码 db_database # 数据库名称 db_port # 数据库服务端口 ``` 按自己数据库实际情况配置参数。 ### 3. 系统运行 启动容器后,会自动运行,首先会初始化数据、启动web服务。然后每小时执行“基础数据抓取”,每天17:30执行所有的数据抓取、处理、分析、识别、回测。 打开浏览器,输入:http://localhost:9***8/ ,即可使用本系统的可视化功能。 ### 4.历史数据 历史数据抓取、处理、分析、识别、回测,运行下面命令: ``` docker exec -it InStock bash cat InStock/instock/bin/run_job.sh #查看run_job.sh注释,自己选择作业 ------整体作业,支持批量作业------ 当前时间作业 python execute_daily_job.py 单个时间作业 python execute_daily_job.py 2022-03-01 枚举时间作业 python execute_daily_job.py 2022-01-01,2021-02-08,2022-03-12 区间时间作业 python execute_daily_job.py 2022-01-01 2022-03-01 ------单功能作业,支持批量作业,回测数据自动填补到当前 基础数据实时作业 python basic_data_daily_job.py 基础数据非实时作业 python basic_data_other_daily_job.py 股票基本面数据非实时作业 python fundamentals_data_daily_job.py 指标数据作业 python indicators_data_daily_job.py K线形态作业 klinepattern_data_daily_job.py 策略数据作业 python strategy_data_daily_job.py 回测数据 python backtest_data_daily_job.py 第一种方法: python execute_daily_job.py 2023-03-01,2023-03-02 第二种方法: 修改run_job.sh,然后运行 bash InStock/instock/bin/run_job.sh ``` ### 5.查看日志 运行下面命令: ``` docker exec -it InStock bash cat InStock/instock/log/stock_execute_job.log cat InStock/instock/log/stock_web.log ``` ### 6.docker常用命令 ``` docker container stop InStock InStockDbService #停止容器 docker container prune #回收容器 docker rmi mayanghua/instock:latest library/mariadb:latest #删除镜像 ``` 具体参见:[Docker基础之 二.镜像及容器的基本操作](https://github.com/myhhub/stock/blob/master/https://www.ljjyy.com/archives/2018/06/100208.html) ### 7.自动交易 目前只支持windows。参考常规安装方式,只需安装python、依赖库,**不需安装mysql、talib等**。 # 特别声明 本系统参考了shidenggui、pythonstock、sngyai。 股市有风险投资需谨慎,本系统只能用于学习、股票分析,投资盈亏概不负责。

近期下载者

相关文件


收藏者