IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 利用python构造股票因子,并利用数据挖掘算法进行因子筛选 -> 正文阅读

[数据结构与算法]利用python构造股票因子,并利用数据挖掘算法进行因子筛选

本文主要是利用python的talib包和tushare获取数据进行因子构造,并基于Apriori算法对股票因子进行筛选。

数据来源:Tushare大数据社区Tushare为金融数据分析提供便捷、快速的接口,与投研和量化策略无缝对接https://tushare.pro/register?reg=403436不知道如何编写代码的也可以直接进入数据工具接口生成即可Tushare数据工具,非常方便。

以贵州茅台为例。

首先导入要使用的包:

import math
import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import talib

利用tushare获取数据,学生可以免费领取一年的积分使用权限,调取数据非常方便。

使用两个接口获取我们需要的基本数据,开盘价,收盘价,市盈率等等

matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
ts.set_token('af3...')
#这里是token码 获取地址  https://tushare.pro/register?reg=403436(需注册)
pro = ts.pro_api()

df1=pro.daily( ts_code='600519.SH', start_date='20200101', end_date='20210827',fields='trade_date,open,high,low,close,change,vol,amount')
df2=pro.daily_basic(ts_code='600519.SH', start_date='20200101', end_date='20210827',fields='turnover_rate,pe,pb,ps,dv_ratio')
df = df1.join(df2)
df=df.sort_index()
df.index=pd.to_datetime(df.trade_date,format='%Y-%m-%d')#设置日期索引

close = df['close']

接下来详细演示如何构造我们常用的一些因子

#MA 常用移动平均线
df['MA1'] =talib.MA(np.array(df.close), timeperiod=5)
df['MA2'] =talib.MA(np.array(df.close), timeperiod=10)
df['MA3'] =talib.MA(np.array(df.close), timeperiod=20)

#MACD 异同移动平均线
df['MACD'],df['MACDsignal'],df['MACDhist'] = talib.MACD(np.array(close),
                            fastperiod=6, slowperiod=12, signalperiod=9) 


#OBV 能量潮指标
df['obv'] = talib.OBV(np.array(df.close), np.array(df.vol))

#BOLL 布林带
df['upper'], df['BOLL'], df['lower'] = talib.BBANDS(
                df.close,
                timeperiod=20,
                # number of non-biased standard deviations from the mean
                nbdevup=2,
                nbdevdn=2,
                # Moving average type: simple moving average here
                matype=0)


#RSI 相对强弱指标
df["rsi1"] = talib.RSI(df.close, timeperiod=6)
df["rsi2"] = talib.RSI(df.close, timeperiod=12)
df["rsi3"] = talib.RSI(df.close, timeperiod=24)

#WR 威廉指标,感觉6日和10日用的较多
df['WR1'] = talib.WILLR(df.high, df.low, df.close, timeperiod=6)
df['WR2'] = talib.WILLR(df.high, df.low, df.close, timeperiod=10)

#KDJ KDJ指标
df['kdj-k'],df['kdj-d'] = talib.STOCH(df.high, df.low, df.close)
df['kdj-j'] = df['kdj-k'] * 3 - df['kdj-d'] * 2

#BIAS 乖离率
df['bias_6'] = (df['close'] - df['close'].rolling(6, min_periods=1).mean())/ df['close'].rolling(6, min_periods=1).mean()*100
df['bias_12'] = (df['close'] - df['close'].rolling(12, min_periods=1).mean())/ df['close'].rolling(12, min_periods=1).mean()*100
df['bias_24'] = (df['close'] - df['close'].rolling(24, min_periods=1).mean())/ df['close'].rolling(24, min_periods=1).mean()*100
df['bias_6'] = round(df['bias_6'], 2)
df['bias_12'] = round(df['bias_12'], 2)
df['bias_24'] = round(df['bias_24'], 2)

#ROC 变动率指标
df['ROC']=talib.ROC(df['close'], timeperiod=10)

将指标放在一起,可以得到如下图表

?将大于均值的设为1,小于均值的设为0,便于我们发现因子与收盘价之间的关系。

使用Apriori算法进行分析,这里使用的是Clementine软件进行分析。

导入Clementine软件,点击Apriori算法即可。

?自行确定规则即可,这里取支持度大于50%,置信度大于80%的指标,即可选出关联较强的因子。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:27:04  更:2021-09-18 10:28:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:34:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码