股票指标大全与炒股指标软件

2024-05-07 23:20:00
股票学习网 > 股票新手入门 > 股票指标大全与炒股指标软件

这里就会运用到以前学过很多的知识点;如技术指标类,KDJ,MACD,ZBCD,VOL,SAR,BOLL等等指标,另外技术分析类,如K线,均线等等,因为现在行情属于指数行情,自然大部分个股都在进行调整,所以我们规避的就是涨幅已高的股票.那么就按照以前学过的知识找。

第一、距离选股

我们要找的是K线位于均线之上,且K线距离均线很近的,一般是K线靠近5日均线延续整理的股票较为理想,当然也会出现不完美的选股方式.如下图:

第二、 MACD指标选股

技术指标必须要达到MACD红柱持续放大,或绿柱缩小,且MACD的DIF从下往上,上穿DEA,整体处于底部反身向上股票,最好是MACD处于白线界面之下.如下图:

第三 、KDJ指标选股

KDJ必须要是低位运行,且J值在底部上穿其他两值,趋势向上发散的股票。如下图:

第四、 BOLL指标选股

股价靠近BOLL的中轨或下轨的股票,其靠近下轨的股票优先,因为这样票很安全,不会导致追高,而中轨固然可行,但依然存在风险,但指标无完美,根据其他指标选定即可。

第五、 VOL指标选股

VOL量能,规避放出天量的股票,如,同比明显是放天量,不要拿一天的量能来相提并论

我举了两个列,一个天量呈现阳量性质,一个是天量呈现阴量性质,为了就是要大家更好的区分,以免得导致自己疑惑不解,为何不找这样的票呢?如果是阳量天量,那么主力肯定仓位非常重,而散户获利盘肯定也非常大,所以很容易进行调整,所以有追高的风险.而不找阴量天量的股票,原因是主力放出天量阴线,固然该股肯定是有出货嫌疑.如下图:

第六、 SAR指标选股

SAR选股,股价必须要站在圈线之上,且圈线最好是处于红圈状态,并且是连续红圈,出现一到两个都属于反抽性质。并且股价站在圈线之上,其圈线趋势必须要向上,这种类型的票必定大涨。

第七、 ZBCD指标选股

ZBCD选股,选出ZBCD的抄底线处于白线界面之下的股票安全可靠:如下图

第八、均线选股

选择K线基本已突破所有均线的股票,或许突破两到三根,或全部突破者为优先,但是这里要注意一个重点,不要选那些涨幅很大的股票,选那些近期涨幅不大,且跌幅也不大,整体处于底部震荡整理的走势,相信只要主力建仓,那么就不回套自己,我们就可以达到提前布局的好处,先知先觉享受拉升的喜悦。如下图:

第九、 K线选股

选择小阳小阴底部逐步攀升的股票,这里也要注意一个重点,最好不要是中阳以上的阳线或中阳,切记以小阳小阴为主。并且这些小阳小阴的K线最好是在均线之上,这中股票很容易拉出大阳线。在我研究学中,把这中形态叫做“K线推动战法”如图:

第十、 趋势线选股方法

以画图作线为主,倘若该股突破一根趋势线,那么就表明该股将会大幅拉升,上升通道打开,如图:

若觉得小编文章有意思,可关注公众号越声策略(yslc188),可获取更多的股票投资策略和技巧,干货满满!

(本资料仅供参考,不构成投资建议,投资时应审慎评估)

背景

近期在学习数据分析,在课程最后老师讲了一下通过量化分析选择股票的案例,感觉挺有意思的,恰好周围也有人在炒股票,干脆自己做一个软件来实践一下学到的知识。课程上主要用python相关库来处理比特币的数据,数据量也不大,但是理解原理之后我们可以举一反三。

首先来回顾一下主要的知识点,选择股票的时候会用到两个重要的指标RSV、KDJ。他们的定义见下面的课件截图,具体的内容我就不阐述了,因为我是非金融专业的,对这些词汇解释起来有点吃力。我们只要记住这两个指标如何计算,以及后面如何使用即可

KDJ指标的定义

计算K指标

计算D指标

计算J指标

实验原理

老师在课程中讲到K和D都是反映股票变化趋势的,K要比D灵敏,当K值上穿D值时(第一次出现K>D)时代表股票可能出现向上反弹,此时是买入时机,当K下穿D值时(第一次出现K

通过利用这个方法,我们可以在4000多支股票中筛选出若干可能出现反弹的股票,然后再用人的经验和其他方面的信息选出心仪的股票了。

我们的实验思路是:

    先从网络上获取过去半年 4000支股票的交易信息,包括日期(date)、最高价(high)、最低价(low)、开盘价(open)、收盘价(close),将这些信息存储到stockbars表中

    用python程序读取stockbars表中的每条记录,计算出rsv指标存储到stockrsvs表中

    最后用python程序读取stockrsvs表,计算出k、d、j三个指标

    最后我们用SQL语句查询数据库,每个人可以基于RSV、k、d、j这四个值自由定义查询方式

这里我们用到了kdj金融知识、python编程知识、SQL语言以及数据库相关的内容,也算是一次综合性的演练了。还可以利用Sugar来在线绘制大屏,https://juejin.cn/post/6976562433695416327

实验过程

实验环境准备

我们用到了python开发环境,这里我们用docker直接获取一个镜像使用,省的安装一堆乱七八糟的依赖,当然你也可以按照自己的喜好来自行安装

docker pull docker.io/python

数据库我们使用了一个免费的云数据库MemFireDB https://memfiredb.com ,他提供了公网IP以及可视化的SQL编辑器方便我们后续查询数据

实验步骤和代码

获取原始数据

计算RSV指标

for bar in bars: rsv = session.query(StockRSV).filter( StockRSV.id == bar.stock_id + "_" + str(bar.date) ).first() if rsv is not None: print("rsv: id:%s stock_id:%s, date:%s,rsv value:%s cal next bar" % ( rsv.id, rsv.stock_id, rsv.date, rsv.rsv )) continue prevbars = session.query(StockBar).filter( StockBar.stock_id == stock.id, StockBar.date <= bar.date ).order_by(StockBar.date.desc()).limit(window).all() if len(prevbars) < window: print("stock %s date %s perv less than window %s cal next date" % (stock.id, bar.date, window)) continue for prevbar in prevbars: print("prevbar: id %s , stock_id:%s, date:%s, open:%s, high:%s, low:%s, close:%s" % (prevbar.id, prevbar.stock_id, prevbar.date, prevbar.open, prevbar.high, prevbar.low, prevbar.close)) low = prevbars[0].low high = prevbars[0].high lastopen = prevbars[0].open lastclose = prevbars[0].close for prevbar in prevbars: if prevbar.high >= high: high = prevbar.high if prevbar.low <= low: low = prevbar.low print("rsv: stock_id %s, date:%s lastopen:%s, lastclose:%s, high:%s, low:%s" % ( bar.stock_id, bar.date, lastopen, lastclose, high, low)) stockrsv = StockRSV(id = bar.stock_id + "_" + str(bar.date), stock_id = bar.stock_id, date = bar.date, rsv = 100 * (lastclose - low) / (high - low)) session.add(stockrsv) session.commit()

计算结果

计算KDJ指标

for stock in stocks: i += 1 rsvs = session.query(StockRSV).filter( StockRSV.stock_id == stock.id ).order_by(StockRSV.date.asc()).all() if len(rsvs) < 1: print("stock %s rsv less than window %s real %s cal next stock" % (stock.id, 1, len(rsvs))) continue for stockrsv in rsvs: curkdj = session.query(StockKDJ).filter( StockKDJ.id == stockrsv.stock_id + "_" + str(stockrsv.date) ).first() if curkdj is not None: print("kdj id:%s, stock_id:%s,date:%s,k:%s, d:%s,j:%s exist cal next" % ( curkdj.id, curkdj.stock_id, curkdj.date, curkdj.k, curkdj.d, curkdj.j )) continue lastkdj = session.query(StockKDJ).filter( StockKDJ.stock_id == stockrsv.stock_id, StockKDJ.date < stockrsv.date ).order_by(StockKDJ.date.desc()).limit(1).first() lastkvalue = 0 lastdvalue = 0 if lastkdj is not None: lastkvalue = lastkdj.k lastdvalue = lastkdj.d stockkdj = StockKDJ(id = stockrsv.stock_id + "_" + str(stockrsv.date), stock_id = stockrsv.stock_id, date = stockrsv.date, k = curkvalue, d = curdvalue, j = 0) session.add(stockkdj) session.commit()

计算结果

使用SQL选股

我们选择最近RSV值较低,且K>D 的十只股票

到股票软件上查看这几只股票的趋势图

实验总结

通过这次实验,我们探索了一种方法,使用python获取股票数据,因为记录数较多且计算过程无法递归,只能通过循环的方式结合数据库循环计算指标。最后将计算的结果存储在数据库中,利用SQL语言的丰富语义,可以灵活验证各种选股的模型。

作者:piikee | 分类:股票新手入门 | 浏览:7 | 评论:0