使用tushare大数据平台对几种股票因子进行计算

写在前面


去年七月,笔者开始接触买入股票,近一年下来,投入的的钱亏了一半,股票市场不是基金市场,其中的残酷给我这个初来乍到的年轻人上了一课。当时,我就在想,买卖股票是否能够赚钱,关键就在一个信息。内部的人有内部的消息,总是能赚大量的钱。我作为一个学生,家里边也没有背景,不可能获取到公司内部的消息。在我计算机水平还一般的时候,我一直想做一个东西,把市面上公开的股票信息进行合理的分析,获得一些我们原先看不出来的信息,这样,在我们掌握信息之后,就可以在一定程度上减少我们的损失。(本人tushareID:496517)

几个有趣的因子


  • 原先,我所了解的因子仅仅局限于k线,每日涨跌幅度等比较浅显的数据。最近我刚刚认识了几个值
  1. ADR值

取值范围:
一般而言,由ADR的数值大小可以把大势分为几个区域。
(1)ADR数值在0.5——1.5之间是ADR处在正常区域内。当ADR处在正常区域内时,表明多空双方势均力敌,大盘的走势波动不大、比较平稳,股市大势属于一种盘整行情。这个区域是ADR数值经常出现的区域。
(2)当ADR数值在0.3——0.5之间或1.5——2之间是ADR处在非正常区域内。
当ADR处在1.5——2之间的非正常区域时,表明多头力量占据优势,大盘开始向上一路上涨,股市大势属于一种多头行情;
而当ADR处在0.3——0.5之间的非正常区域时,表明空头力量占据优势,大盘开始一路下跌,股市大势属于一种空头行情。这两个区域是ADR数值比较少出现的区域。
(3)当ADR值是在0.3以下或2以上时是ADR处在极不正常区域内。当ADR处在极不正常区域时,主要是突发的利多、利空消息引起股市暴涨暴跌的情况。此时,股市大势属于一种大空头或大多头行情。

计算公式

  1. RSI值

RSI运用法则
(1) 受计算公式的限制,不论价位如何变动,强弱指标的值均在0与100之间。
(2) 强弱指标保持高于50表示为强势市场,反之低于50表示为弱势市场。
(3) 强弱指标多在70与30之间波动。当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。
(4) 当六日强弱指标下降至20时,表示股市有超卖现象,如果一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会。
(5) 每种类型股票的超卖超买值是不同的。
   在牛市时,通常蓝筹股的强弱指数若是80,便属超买,若是30便属超卖,至于二三线股,强弱指数若是85至90,便属超买,若是20至25,便属超卖。 但我们不能硬性地以上述数值,拟定蓝筹股或二三线股是否属于超买或超卖,主要是由于某些股票有自己的一套超买/卖水平,即是,股价反覆的股票,通常超买的 数值较高(90至95),而视作超卖的数值亦较低(10至15)。至于那些表现较稳定的股票,超买的数值则较低(65至70),超卖的数值较高(35至 40)。因此我们对一只股票采取买/卖行动前,一定要先找出该只股票的超买/超卖水平。至于衡量一只股票的超买/超卖水平,我们可以参考该股票过去12个 月之强弱指标记录。
(6) 超买及超卖范围的确定还取决于两个因素。第一是市场的特性,起伏不大的稳定的市场一般可以规定70以上超买, 30以下为超卖。变化比较剧烈的市场可以规定80以上超买,20以下为超卖。第二是计算RSI时所取的时间参数。例如,对于9日RSI,可以规定80以上 为超买,20以下为超卖。对于24日RSI,可以规定70以上为超买,30以下为超卖。应当注意的是,超买或超卖本身并不构成入市的讯号。有时行情变化得 过于迅速,RSI会很快地超出正常范围,这时RSI的超买或超卖往往就失去了其作为出入市警告讯号的作用。例如在牛市初期,RSI往往会很快进入80以上 的区域,并在此区域内停留相当长一段时间,但这并不表示上升行情将要结束。恰恰相反,它是一种强势的表现。只有在牛市未期或熊市当中,超买才是比较可靠的 入市讯号。基于这个原因,一般不宜在RSI一旦进入非正常区域就采取买卖行动。最好是价格本身也发出转向信号时再进行交易。这样就可以避免类似于上面提到 的RSI进入超买区但并不立即回到正常区域那样的“陷井”。在很多情况下,很好的买卖讯号是:RSI进入超买超卖区,然后又穿过超买或超卖的界线回到正常 区域。不过这里仍然要得到价格方面的确认,才能采取实际的行动。这种确认可以是:
  ①趋势线的突破;
  ②移动平均线的突破;
  ③某种价格型态的完成。
(7) 强弱指标与股价或指数比较时,常会产生先行显示未来行情走势的特性,亦即股价或指数未涨而强弱指标先上升,股价或指数未跌而强弱指标先下降,其特性在股价的高峰与谷底反应最明显。
(8) 当强弱指标上升而股价反而下跌,或是强弱指标下降而股价反趋上涨,这种情况称之为“背驰”。当RSI在70至80上时,价位破顶而RSI不能破 顶,这就形成了“顶背驰”,而当RSI在30至20下时,价位破底而RSI不能破底就形成了“底背驰”。这种强弱指标与股价变动,产生的背离现象,通常是 被认为市场即将发生重大反转的讯号。
  和超买及超卖一样,背驰本背并不构成实际的卖出讯号,它只是说明市场处于弱势。实际的投资决定应当在 价格本身也确认转向之后才作出。虽然在行情确实发生反转的情况下,这个确认过程会使投资者损失一部分利润,可是却可以避免在行情后来并未发生反转的情况下 投资者可能做出过早卖出的错误决定。相对地说,这种错误会对投资者造成更大的损失,因为有时候行情会暂时失去动量然后又重新获得动量,而这时价格并不发生大 规模的转向。

计算公式

进行因子计算


首先,我们使用tushare把数据获取到,这里我相分析的股票是丽江股份(曾是我买过的股票之一),先把丽江股份的基础信息筛选出来
查询方式可以从这里获得:
https://tushare.pro/document/2?doc_id=25

import tushare as ts
import matplotlib.pyplot as plt
import pandas as pd
import numpy as nppro = ts.pro_api()
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
data.loc[data['name'].isin(['丽江股份'])]

丽江股份

我们从中获得了丽江股份的ts_code

df_data = pro.daily(ts_code='002033.SZ', start_date='20180701', end_date='20220318') # 获取每日详情信息
df_data = df_data[['trade_date', 'open', 'high', 'low', 'close']]  # 拿出来需要的几行数据

这里我们用一个小心机,把时间年月日用"-"隔开,方便转化成datetime格式,并把时间作为索引
时间转换
数据拿到手了,先算一下5日均线和30日均线两个重要数据

se_close = df_data['close'].reindex(df_data['close'].index[::-1])  # 先把数据进行反转,让更早的时间靠前
ma30 = se_close.rolling(30).mean()  # 30日均线
ma5 = se_close.rolling(5).mean()  # 5日均线plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.figure(figsize=(10, 10))
plt.plot(ma5[400:],label='5日均线')
plt.plot(ma30[400:],label='30日均线')
plt.legend()

均线图

短期均线上穿长期均线叫做“金叉”
反之就是死叉

可能我买的时候还是在金叉?(现在已经赔本卖出了,可见并不能完全信服)
那我们就再算一个ADR值

# ADR值
def ADR(x):up = 0down = 0x = list(x)for i in x:if i > 0:up += 1else:down += 1return up/down
ADR_info = pd.Series(data=zhang_info.rolling(10).apply(ADR))  # 十日ADR值plt.figure(figsize=(10, 10))
plt.plot(df_data['ADR_val'][400:], label="ADR", color='black')
plt.legend(fontsize=20)
plt.axhspan(ymin=0.5, ymax=1.5, facecolor='g', alpha=0.5)
plt.axhspan(ymin=0.3, ymax=1.5, facecolor='y', alpha=0.5)
plt.axhspan(ymin=1.5, ymax=2, facecolor='y', alpha=0.5)
plt.axhspan(ymin=0, ymax=0.3, facecolor='r', alpha=0.5)
plt.axhspan(ymin=2, ymax=10, facecolor='r', alpha=0.5)

绘制一张十日ADR值图
根据不同的区域标注不用的颜色

从这张图里边可以看出,2021-7时的ADR值还是比较正常的
再计算RSI值

def RSI(x):x = list(x)up = []down = []for i in x:if i > 0:up.append(i)else:down.append((-1)*i)return (np.mean(up) * 100)/ (np.mean(down) + np.mean(up))
df_data['RSI_val'] = df_data['change'].rolling(10).apply(RSI)
plt.figure(figsize=(10, 10))
plt.plot(df_data['RSI_val'][400:])

RSI10日图

后记

现在接触的知识有限,更加上时间匆忙,我只能分析这两个因子。后续会考虑同机器学习结合,写一篇股票预测博客。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用tushare获取股票数据-V2 +股票数据分析

一、利用tushare获取股票数据 上次利用tushare的API获取了一部分的数据,感觉不够齐全,所以现在更新程序 import tushare as ts import pandas as pdpro ts.pro_api() data pro.query(stock_basic, exchange, list_statusL, fieldsts_code) #实例化一个…

免费获取股票历史交易数据方法与代码获取股票实时数据方法集合

现在网上有越来越多开源的股票数据的获取方法,言简意赅,小编在这里提供2种方法去获取股票数据,第一种呢还是针对于所有的用户,通过使用第三方平台提供的方法来获取到所需要的股票数据。 方法一:使用免费的网站进行 详…

获取股票交易数据的Tushare的使用方法

博客:https://www.cnblogs.com/DreamRJF/p/8660630.html 以前不知道怎么从网上直接获取数据,都是从交易软件上下载数据,也只有个别的软件才能下载,例如通达信可以导出数据,现在学到了一种新的方法,利用tush…

四万字歌词分析:那些年,我们一起追的五月天到底在唱什么?

大数据文摘出品 作者:蒋宝尚、曹培信 你见过自带荧光棒、中途大合唱、放完不离场的电影观众么? 如果你去电影院看了《五月天人生无限公司》,那么,你一定明白文摘菌在说什么。 如果你还没有看过,文摘菌这里弱剧透一下&a…

歌词生成(一)-SongNet简述

歌词生成相较于普通文本生成,需要配合特定的乐曲,并演唱。因而要求,每句歌词演唱的长度正好合拍,即不同曲子,每句歌词的字符个数是要受限制于乐曲。 本文暂不考虑曲配词问题,只是将问题抽象为,…

Android 开源歌词控件 LyricViewX

Android 开源歌词控件 LyricViewX 开源地址 Github https://github.com/Moriafly/LyricViewX LyricViewX 是一个美观的安卓歌词控件。 基于 LrcView 设计。 效果展示 Dso Music Github https://github.com/Moriafly/DsoMusic 双语 拖动 单语 比较与 LrcView 100% Kotlin…

如何获取LRC歌词

在日常的剪辑或者是其他情况下,需要使用LRC歌词,不需要下载新的杂门软件就能获取lrc歌词,真的很心动了,这里以网易云音乐为例: 1、打开网易云音乐网页版,找到需要的歌词 2、按F12键,选择 Netwo…

从ChatGPT等大模型的兴起,看未来计算芯片的发展趋势

欢迎关注软硬件融合公众号: 编者按 ChatGPT的火爆,直接引爆了大模型的繁荣,也使得NVIDIA GPU供不应求。 从发展的角度看,GPU并不是大模型最高效的计算平台。 GPT等大模型为什么没有突破万亿参数?核心原因在于在现在的G…

GPU和CPU芯片区别:为何要用GPU挖矿?

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是…

2023全云在线联合微软AIGC专场沙龙:人工智能与企业创新,促进创造力的数字化转型

6月29日,由全云在线平台和微软联合主办的人工智能与企业创新:促进创造力的数字化转型——2023AIGC微软专场沙龙在广州天河区正佳万豪酒店举行。 关于2023AIGC微软专场沙龙 GPT翻开了AGI新的一页,也翻开了各行各业的新篇章。 2022年11月30日…

呼吁暂停 GPT-5 研发的马斯克,转身抢购 1 万个 GPU,为 Twitter 大模型做准备!...

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 曾不止一次地支持 AI 威胁论、曾与 OpenAI 分道扬镳、曾怒批 ChatGPT 唤醒人工智能、曾联合发起公开信,呼吁全球实验室应停止训练比 GPT-4 更强大的模型...... 毫无疑问,曾被 Fa…

个人掏5000万美元、获2.3亿美金认购,造中国版OpenAI,45岁前美团联合创始人王慧文再创业!...

整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 「即便只有一个人,我也要出发」,2023 年 2 月 13 日,原美团联合创始人王慧文在社交媒体平台郑重地说道。 这一次他的目光不再是聚焦在社交关系网络平台、二手房网站、…

微软:多模态大模型GPT-4就在下周,撞车百度?

欢迎关注“ 计算机视觉研究院 ” 计算机视觉研究院专栏 作者:Edison_G 扫描二维码 关注我们 大家都在猜 GPT-4 发布时间,现在有人提前公布答案了,还是微软自己的 CTO。 转自《机器之心》 我们知道,引爆如今科技界军备竞赛的 ChatG…

【全栈】vue3.0 + golang + mysql + gorm + jwt + M5stack + Chatgpt集成【博客系统2.1】版本

2.1版本release 修复博客2.0bug&#xff08;我的-切换后-博客不能刷新&#xff09; 增加了远程灯控 chatGpt3.0集成 项目结构 <template><div id"app"><!-- 表单处理 ------------------><!-- <MyHeader :addTodo"addTodo"/…

【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)

ChatGLM-6B模型结构代码解析(单机版) ​ 本文介绍ChatGLM-6B的模型结构&#xff0c;代码来自https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py。 相关博客 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BL…

【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版)

BLOOM模型结构源码解析(单机版) ​ 本文基于transformers中BLOOM模型代码来解析BLOOM的原理及实现。 相关博客 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版) 【自然语言处理】【大模型】极低资源微…

最新发布!面向开发者的 ChatGPT Prompt Engineering 免费教程,吴恩达与OpenAI合作打造!...

就在几小时之前&#xff0c;吴恩达在Twitter上宣布了与OpenAI合作的最新免费教程&#xff1a;《ChatGPT Prompt Engineering for Developers》 我们可以通过下面的链接&#xff0c;直达官网网站&#xff1a; https://www.deeplearning.ai/short-courses/chatgpt-prompt-enginee…

Datawhale-基于向量检索减少chatGPT的幻觉

AI的幻觉 可以使用CVP技术栈解决上述问题 CVP技术栈 ossChat Application 向量数据库 Zilliz Cloud是Milvus的托管服务。 基于Langchain搭建问答系统

chatgpt赋能python:Python中连接数据库的方式

Python中连接数据库的方式 数据库是现代Web应用程序中必不可少的组成部分之一。Python是一个功能丰富的编程语言&#xff0c;为我们提供了许多连接数据库的选项。在本文中&#xff0c;我们将介绍Python中的一些最受欢迎的数据库连接选项&#xff0c;并帮助您选择最适合您项目的…

chatgpt赋能python:Python如何添加数据库

Python如何添加数据库 介绍 Python是一种高级的、通用的、解释型的编程语言&#xff0c;因其简单易学、可读性强而被广泛应用在各种领域&#xff0c;尤其是数据处理、Web开发等方面。随着Web应用越来越流行&#xff0c;数据库的使用也变得越来越普遍&#xff0c;因此&#xf…