stock-job-web V1 是基于 Python的 pandas、tushare、bokeh、tornado、stockstats、ta-lib 等框架开发的全栈股票系统。
1)可以直接使用docker直接本地部署运行,整个项目在docker hub上压缩后200BM,本地占用500MB磁盘空间。
2)使用Docker解决了Python库安装问题,使用Mariadb(MySQL)存储数据。借助tushare抓取数据(老API,后续使用tushare pro开发)
3)使用corn做定时任务,每天进行数据抓取计算,每天18点开始进行数据计算,计算当日数据,使用300天数据进行计算,大约需要15分钟计算完毕。
4)股票数据接口防止被封,按天进行数据缓存,储存最近3天数据,每天定时清除,同时使用read_pickle to_pickle 的gzip压缩模式存储。
5)使用tornado开发web系统,支持股票数据,沪深300成份股,中证500成份股,龙虎榜数据,每日股票数据,每日大盘指数行情等
6)数据展示系统,是通用数据展示系统,配置字典模板之后,页面自动加载数据,并完成数据展示,后续自己开发的指标数据可以加入进去。
7)增加曲线数据分析,在查看股票中,可以直接跳转到东方财富页面查看相关信息,点击指标之后使用Bokeh将多达 17 个指标的数据绘图,进行图表展示。
每日股票指标数据计算17个指标如下(数据表 guess_indicators_daily):
计算指标 | 说明 |
---|---|
1,交易量delta指标分析 | The Volume Delta (Vol ∆) |
2,计算n天差 | 可以计算,向前n天,和向后n天的差。 |
3,n天涨跌百分百计算 | 可以看到,-n天数据和今天数据的百分比。 |
4, CR指标 | http://wiki.mbalib.com/wiki/CR%E6%8C%87%E6%A0%87 价格动量指标 CR跌穿a、b、c、d四条线,再由低点向上爬升160时,为短线获利的一个良机,应适当卖出股票。 CR跌至40以下时,是建仓良机。而CR高于300~400时,应注意适当减仓。 |
5,最大值,最小值 | 计算区间最大值 volume max of three days ago, yesterday and two days later stock["volume_-3,2,-1_max"] volume min between 3 days ago and tomorrow stock["volume_-31_min"] 实际使用的时候使用 -22 可计算出5天的最大,最小值。 |
6, KDJ指标 | http://wiki.mbalib.com/wiki/%E9%9A%8F%E6%9C%BA%E6%8C%87%E6%A0%87 随机指标(KDJ)一般是根据统计学的原理,通过一个特定的周期(常为9日、9周等)内出现过的最高价、 最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成熟随机值RSV, 然后根据平滑移动平均线的方法来计算K值、D值与J值,并绘成曲线图来研判股票走势。 (3)在使用中,常有J线的指标,即3乘以K值减2乘以D值(3K-2D=J),其目的是求出K值与D值的最大乖离程度, 以领先KD值找出底部和头部。J大于100时为超买,小于10时为超卖。 |
7,SMA指标 | http://wiki.mbalib.com/wiki/Sma 简单移动平均线(Simple Moving Average,SMA) 可以动态输入参数,获得几天的移动平均。 |
8, MACD指标 | http://wiki.mbalib.com/wiki/MACD 平滑异同移动平均线(Moving Average Convergence Divergence,简称MACD指标),也称移动平均聚散指标 MACD 则可发挥其应有的功能,但当市场呈牛皮盘整格局,股价不上不下时,MACD买卖讯号较不明显。 当用MACD作分析时,亦可运用其他的技术分析指标如短期 K,D图形作为辅助工具,而且也可对买卖讯号作双重的确认。 |
9, BOLL指标 | http://wiki.mbalib.com/wiki/BOLL 布林线指标(Bollinger Bands) |
10, RSI指标 | http://wiki.mbalib.com/wiki/RSI 相对强弱指标(Relative Strength Index,简称RSI),也称相对强弱指数、相对力度指数 2)强弱指标保持高于50表示为强势市场,反之低于50表示为弱势市场。 (3)强弱指标多在70与30之间波动。当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。 |
11, W%R指标 | http://wiki.mbalib.com/wiki/%E5%A8%81%E5%BB%89%E6%8C%87%E6%A0%87 威廉指数(Williams%Rate)该指数是利用摆动点来度量市场的超买超卖现象。 |
12, CCI指标 | http://wiki.mbalib.com/wiki/%E9%A1%BA%E5%8A%BF%E6%8C%87%E6%A0%87 顺势指标又叫CCI指标,其英文全称为“Commodity Channel Index”, 是由美国股市分析家唐纳德·蓝伯特(Donald Lambert)所创造的,是一种重点研判股价偏离度的股市分析工具。 1、当CCI指标从下向上突破﹢100线而进入非常态区间时,表明股价脱离常态而进入异常波动阶段, 中短线应及时买入,如果有比较大的成交量配合,买入信号则更为可靠。 2、当CCI指标从上向下突破﹣100线而进入另一个非常态区间时,表明股价的盘整阶段已经结束, 将进入一个比较长的寻底过程,投资者应以持币观望为主。 CCI, default to 14 days |
13, TR、ATR指标 | http://wiki.mbalib.com/wiki/%E5%9D%87%E5%B9%85%E6%8C%87%E6%A0%87 均幅指标(Average True Ranger,ATR)均幅指标(ATR)是取一定时间周期内的股价波动幅度的移动平均值,主要用于研判买卖时机。 |
14, DMA指标 | http://wiki.mbalib.com/wiki/DMA DMA指标(Different of Moving Average)又叫平行线差指标,是目前股市分析技术指标中的一种中短期指标,它常用于大盘指数和个股的研判。 DMA, difference of 10 and 50 moving average stock[‘dma’] |
15, DMI,+DI,-DI,DX,ADX,ADXR指标 | http://wiki.mbalib.com/wiki/DMI 动向指数Directional Movement Index,DMI) http://wiki.mbalib.com/wiki/ADX 平均趋向指标(Average Directional Indicator,简称ADX) http://wiki.mbalib.com/wiki/%E5%B9%B3%E5%9D%87%E6%96%B9%E5%90%91%E6%8C%87%E6%95%B0%E8%AF%84%E4%BC%B0 平均方向指数评估(ADXR)实际是今日ADX与前面某一日的ADX的平均值。ADXR在高位与ADX同步下滑,可以增加对ADX已经调头的尽早确认。 ADXR是ADX的附属产品,只能发出一种辅助和肯定的讯号,并非入市的指标,而只需同时配合动向指标(DMI)的趋势才可作出买卖策略。 在应用时,应以ADX为主,ADXR为辅。 |
16, TRIX,MATRIX指标 | http://wiki.mbalib.com/wiki/TRIX TRIX指标又叫三重指数平滑移动平均指标(Triple Exponentially Smoothed Average) |
17, VR,MAVR指标 | http://wiki.mbalib.com/wiki/%E6%88%90%E4%BA%A4%E9%87%8F%E6%AF%94%E7%8E%87 成交量比率(Volumn Ratio,VR)(简称VR),是一项通过分析股价上升日成交额(或成交量,下同)与股价下降日成交额比值, 从而掌握市场买卖气势的中期技术指标。 |
使用 mariadb 和 stock 两个镜像
mkdir -p /data/mariadb/data
docker pull pythonstock/pythonstock:latest
docker pull mariadb:latest
docker run --name mariadb -v /data/mariadb/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:latest
docker run -itd --link=mariadb --name stock \
-v /data/notebooks:/data/notebooks \
-p 8888:8888 \
-p 9999:9999 \
pythonstock/pythonstock:latest
直接启动stock ,使用其他 mysql 数据库,需要配置变量方式:
docker run -itd --name stock \
-v /data/notebooks:/data/notebooks \
-p 8888:8888 \
-p 9999:9999 \
-e MYSQL_HOST=127.0.0.1 \
-e MYSQL_USER=root \
-e MYSQL_PWD=mariadb \
-e MYSQL_DB=stock_data \
pythonstock/pythonstock:latest
进入镜像:
docker exec -it stock bash
sh /data/stock/jobs/cron.daily/run_daily
说明,启动容器后,会调用。run_init.sh 进行数据初始化,同时第一次执行后台执行当日数据。 以后每日18点(只有18点左右才有今日的数据)进行股票数据抓取并计算。
http://localhost:8888 jupyter
查看jupyter的密码:
docker exec -it stock bash
查看登录 token 问题:
jupyter notebook list
# 就可以看到 token 了,然后可以登录了。
相关博客资料: http://blog.csdn.net/freewebsys/article/category/7076584
股票数据抓取框架使用TuShare。 http://tushare.org/
数据分析清洗使用pandas,numpy。 http://pandas.pydata.org/
数据存储到磁盘上,使用Mysql数据库。存储股票数据。 https://pypi.python.org/pypi/mysqlclient
web框架使用tornado http://www.tornadoweb.org/en/stable/
tornado web系统 http://docs.pythontab.com/tornado/introduction-to-tornado/
scikit-learn 文档,中文文档 https://scikit-learn.org/stable/ https://github.com/apachecn/sklearn-doc-zh/
全系使用python实现。因为都是python的类库,互相之间调用方便。 从数据抓取,数据处理,到数据展示数据运算都是python实现。
最终的数据都到前端展示出来。主要分为4个文件夹。
jobs 抓取数据并存储实现类。
libs 通用工具类。
web 前端展示框架。
supervisor 进程管理工具。
github地址:https://github.com/pythonstock/stock
博客资料: http://blog.csdn.net/freewebsys/article/category/7076584
utf-8转换gbk代码 by Kurt 由库尔特 将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事。 (Turning code to cash — How to make money as a Web Developer and live to tell the tale.) So you just learnt to code. You’re eager and anyone wh
A股 股票市场总貌 上海证券交易所 接口: stock_sse_summary 目标地址: http://www.sse.com.cn/market/stockdata/statistic/ 描述: 上海证券交易所-股票数据总貌 限量: 单次返回最近交易日的股票数据总貌数据(当前交易日的数据需要交易所收盘后统计) 输入参数 名称 类型 必选 描述 - - - - 输出参数-实时行情数据 名称 类型
本文向大家介绍算法题:股票最大值。相关面试题,主要包含被问及算法题:股票最大值。时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 最大利润无外乎就是计算后面的数字减去前面的数字得到的一个最大的差值; 求总体的最大差值,需要的数据:当前的最小值,当前的最大差值;遍历求解即可。 C++ 代码示例:
数据概览 1.数据概览 首页>报表>数据 查看时间范围内系统的关键数据指标。包括总会话量、总消息量、平均会话时长、平均响应时长、排队放弃会话量、平均满意度以及会话量、消息量、平均会话时长之间的变化趋势条形图、柱状图和饼状图。 2.客服报表 首页>报表>客服 客服工作量分析:查看人工客服的工作数据。包括接待总数、对话总数、对话总时长、在线总时长以及在线人工利用率。 客服工作效率/质量分析:查看人工客
本文向大家介绍基于java计算买卖股票的最佳时机,包括了基于java计算买卖股票的最佳时机的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了基于java计算买卖股票的最佳时机,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题: 可以将问题转化为如下图所示,即求多个累计的收入差 分析: 如果当前位置i的价格比i+1的价格高,则当前不是买
获取小程序概况趋势: $app->data_cube->summaryTrend('20170313', '20170313') 开始日期与结束日期的格式为 yyyymmdd。 API summaryTrend(string $from, string $to); 概况趋势 dailyVisitTrend(string $from, string $to); 访问日趋势 weeklyVisitT
通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。 {info} 接口侧的公众号数据的数据库中仅存储了 2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据; 请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。 额外注意,获取图文群发每日数据接口的结