利用随机森林预测股票大盘涨跌

本文仅从实战角度去观察,利用机器学习算法中,随机森林模型预测股票市场指数涨跌的准确率。
适合入门玩家


首先,我们导入所需要的模块

import numpy as np 
import pandas as pd
import talib as ta  #金融数据计算
import datetime,pickle 
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import mean_absolute_error,mean_squared_error,r2_score,accuracy_score,roc_auc_score
from sklearn.ensemble import RandomForestClassifier #随机森林分类模型

然后读取指数数据,这里所使用的数据为个人付费购买数据,本文所使用的数据可以从文末联系方式获取。
关于数据,如果仅做ML、DL学习使用,可以选择量化平台获取、tushare接口获取、爬虫获取等方式,但如果是做模拟交易或者实盘交易,请尽量购买券商提供的数据,否则在数据清洗方面,哪怕是团队也需要耗费大量的人力物力。

with open(r'D:\history_data_22\indexs.pkl','rb') as f:index_data = pickle.load(f)

然后将index_data 打印出来,我们可以得到这样的数据:
code – 指数代码(string)
date – 日期(int)
open – 开盘价(float)
close – 收盘价(float)
low – 最低价(float)
high – 最高价(float)
vol - 成交量(float)
money – 成交额(float)
这里写图片描述
因为指数包括了很多,如上证50、沪深300、中证500等等,这里我们仅用上证指数为例
所以选择code代码为SH000001的数据

df = index_data[index_data['code'] == "SH000001"]

现在我们添加一些简单的技术指标

np_close = np.array(df['close'])
diff, dea, macd = ta.MACD(np_close, fastperiod=12, slowperiod=26,signalperiod=9)
df['MA5'] = ta.MA(np_close,timeperiod=5)
df['MA10'] = ta.MA(np_close,timeperiod=10)
df['DIFF'] = diff
df['DEA'] = dea
df['MACD'] = macd

此时,我们的dataframe应该是这样的
这里写图片描述
那么,特征值(feature)为Open到MACD。
我们想要机器通过feature预测出明日大盘的涨跌情况,那么这时需要来定义一下label,即告诉机器你想要预测什么。
我们在本文中采用二分类作为测试,涨为1,跌为0。

def num_config(x):if x > 0 :return 1else:return 0
df["(t+1)-(t)"] = df['close'].shift(-1) - df['close']
df['label'] = df["(t+1)-(t)"].map(num_config) 

再次打印df,我们应该得到如下的数据
这里写图片描述
这时,特征值和标签,我们都应该搞定了。
现在,我们来划分一下训练集和测试集,因为此文仅做测试使用,大家可以根据个人兴趣,添加验证集,用网格搜索、交叉验证,寻找最优参数,然后再作用于测试集。
因为股票数据是一个典型的时间序列数据(后面会写一篇LSTM运用),所以尽量不要用随机切分。因为随机切分很可能导致你的训练集里面含有未来函数,即X里存在Y,进而导致准确率极其的高。
我们将2017年以前的数据用来做训练,用2017年以后的数据用来做测试。

df = df.dropna() #剔除缺失值
df['time'] = pd.to_datetime(df['date'],format='%Y%m%d')
train_data = df[df['time']<"2017-01-01"]
test_data = df[df['time']>="2017-01-01"]
train_X = train_data.ix[:,'open':"MACD"].values
train_y = train_data['label'].values
test_X = test_data.ix[:,'open':"MACD"].values
test_y = test_data['label'].values

所有数据均已准备完毕,下面开始调用sklearn中随机森林模型进行测试

clf = RandomForestClassifier(max_depth=3,n_estimators=20)
clf.fit(train_X,train_y)
print(accuracy_score(train_y,clf.predict(train_X)))
print(accuracy_score(test_y,clf.predict(test_X)))

这里写图片描述
此时我们看到,该模型在训练集上有58.86%的胜率,在测试集上也拥有56%的胜率。
毫无疑问,这当然是值得庆幸的事情,56%的胜率已经要比50%高出很多,如果按盈亏均为1:1的情况下,长此以往的跑下去,是很恐怖的事情,这简直比赌场里某些游戏的胜率还要高。
但在股票市场里,真的是这样吗?
我们思考一下真实情况,该模型仅是猜涨跌,简单的二分类问题。那假设该模型只是猜跌比较厉害,而猜涨很瓜皮呢?
我们查看一下召回率
这里写图片描述
发现概率是51%,该模型并没有过多的偏袒涨跌其中的一方。
那么这个模型就可以用了吗?不是的,我们在以前的主观交易到后来的量化交易,发现很多趋势追踪策略的胜率可能只有35%-40%,但仍然可以取得不俗的盈利,原因是趋势追踪策略在盘整或者下跌阶段,有不停的试错,而上涨阶段则是一直处于持仓状态,没有频繁的换仓。于是胜率虽然低,但一口波段也能吃个胖子。
反观我们的56%模型,会不会存在虽然胜率高,但是每次赚的少,而亏一次就亏个大的这样的状况存在呢。
毕竟大A股,暴跌总比暴涨的次数多,对吧。
这里仅抛砖引玉
1、我们是否可以通过回归方法来解决上述问题
2、我们是否可以通过多分类问题来解决上述问题

总结:机器学习对于预测股票市场是存在一定作用的,但该文所涉及的模型仅对第二天的涨跌情况起辅助效果,并不能作为决策的依据!

文中所涉及代码及其付费数据集可以通过下面联系方式索取

注:该文属个人原创,转载请联系
Email:454001240@qq.com
VX:gq454001240

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

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

相关文章

随机森林——股票涨跌预测模型搭建

多因子模型搭建 1.引入之后需要用到的库 import tushare as ts # 股票基本数据相关库 import numpy as np # 科学计算相关库 import pandas as pd # 科学计算相关库 import talib # 股票衍生变量数据相关库 import matplotlib.pyplot as plt # 引入绘图相关库 from sk…

案例分析:股票涨跌预测

目标和背景 采用逻辑回归方法&#xff0c;使用过去 5 天的收益率 X 来预测未来一天的涨跌 Y&#xff0c; 并依据涨跌概率大小来构建多空投资组合。 解决方案和程序 拟合模型&#xff1a;将其中 450 天数据作为训练样本&#xff0c;拟合一个逻辑回归模型&#xff0c;得 到参数估…

股票预测pythonlstm_LSTM预测股票涨跌--结合技术分析视角(一)

LSTM处理股票数据的一般流程: image.png 2.在先工作的基本思路: (1).为利用沪深300前100天的收盘价预测下一天的收盘价。从结果来看,LSTM对未来20天的预测基本上是对过去100天收盘价变化的趋势的总括,因此最终的预测结果以及回测结果都不是很理想。 之后尝试增加了feature…

基于长短期记忆网络(LSTM)对股票价格的涨跌幅度进行预测

完整代码&#xff1a;https://download.csdn.net/download/qq_38735017/87536579 为对股票价格的涨跌幅度进行预测&#xff0c;本文使用了基于长短期记忆网络(LSTM)的方法。根据股票涨跌幅问题&#xff0c; 通过对股票信息作多值量化分类&#xff0c;将股票预测转化成一个多维函…

R语言逻辑回归Logistic回归分析预测股票涨跌

最近我们被客户要求撰写关于逻辑回归的研究报告&#xff0c;包括一些图形和统计输出。 视频&#xff1a;R语言逻辑回归&#xff08;Logistic回归&#xff09;模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠心病风险实例 &#xff0c;时长06:48 本文回…

预测股票涨跌看什么指标,如何预测明天股票走势

通达信精准预测股价主图指标公式 是不是可以去了未来 如何用公式将当日股票上涨幅度在M-N之间的股票当天及前几天的行情统计出来。 70 如何知道或者预测一个股票次日的开盘价&#xff1f; 。 在短线操作中&#xff0c;对目标个股次日的买入卖出价的测算是很重要的&#xff…

基于支持向量机SVM的沪深300股票预测股票涨跌方向

结果参考:https://www.bilibili.com/video/BV1nY411z7Kk/?spm_id_from=333.999.0.0 附完整代码+数据

以预测股票涨跌案例入门基于SVM的机器学习

SVM是Support Vector Machine的缩写&#xff0c;中文叫支持向量机&#xff0c;通过它可以对样本数据进行分类。以股票为例&#xff0c;SVM能根据若干特征样本数据&#xff0c;把待预测的目标结果划分成“涨”和”跌”两种&#xff0c;从而实现预测股票涨跌的效果。 1 通过简单…

GPT2中文新闻标题生成

向AI转型的程序员都关注了这个号&#x1f447;&#x1f447;&#x1f447; 机器学习AI算法工程 公众号&#xff1a;datayx 项目描述 本项目是一个带有超级详细中文注释的基于GPT2模型的新闻标题生成项目。本项目参考了GPT2-Chinese、GPT2-chitchat、CDial-GPT、GPT2等多个GPT…

中文新闻文本标题分类(基于飞桨、Text CNN)

目录 一、设计方案概述 二、具体实现 三、结果及分析 四、总结 一、设计方案概述 主要网络模型设计&#xff1a; 设计所使用网络模型为TextCNN,由于其本身就适用于短中句子&#xff0c;在标题分类这一方面应该能发挥其优势。 TextCNN是Yoon Kim在2014年提出的模型&#xff…

“无法登陆到你的账户”的问题解决方案

电脑打开后&#xff0c;winR打开命令窗口 输入&#xff1a;netplwiz 点击添加 ​​​​​​​点击添加方框内 点击本地账户 输入你要创建的账号那些&#xff1a; 我当时已经创建好了&#xff0c;就是user. 然后需要将该用户设置为管理员权限即可。 重回回到&#xff0c;此时你…

聚观早报 | 美国又一家银行要暴雷;腾讯T13技术黄希彤被曝遭裁员

今日要闻&#xff1a;暴跌 62%&#xff01;美国又一家银行要暴雷&#xff1b;三星上半年量产第三代 4nm 工艺&#xff1b;腾讯T13技术大佬黄希彤被曝遭裁员&#xff1b;华为 P60 系列将于 3 月 23 日发布&#xff1b;苹果公司CEO库克减薪40% 暴跌 62%&#xff01;美国又一家银…

蓝筹股连环爆雷!这些蓝筹股哪些最容易爆雷?(最全名单)

幸福的股民总是相似的&#xff0c;不幸的股民去而各有各的不幸。天雷滚滚的2019年报季尚不去不远&#xff0c;不少股民们尚未从那场暗雷中疗伤正骨&#xff0c;2020年中报的雷声又开始拉响。 7月14日&#xff0c;有着“药中茅台”之称的东阿阿胶半年度业绩公布&#xff0c;作为…

我问自己代言,甄嬛篇

你只看到本宫的寿康宫 却没看到本宫的凌云峰 你有你的气度 本宫有本宫的本事 你嘲笑本宫菀菀类卿 本宫可怜你留得住人留不住心 你可以轻视本宫的存在 本宫会让你见识糙米薏仁汤的口感 回宫 注定是一段孤独的旅程 路上少不了三姑六婆 但 那又怎样&#xff1f;即使是滑胎 也要滑的…

淘宝618每日一猜6月6日答案-甄嬛在横店哪里参加的选秀?

淘宝6月6日每日一猜答案是什么&#xff1f;&#xff0c;接下来也会给大家来介绍一下6月6日淘宝大赢家每日一猜的答案。 淘宝每日一猜6月6日答案分享 活动问题&#xff1a;甄嬛在横店哪里参加的选秀 活动答案&#xff1a;【交泰殿】 还有打开手机淘宝&#xff0c;搜索“能省就…

吴忠军 - 《甄嬛传》宜修到死都不知道,这个和甄嬛无关的人帮了甄嬛一个大忙...

《甄嬛传》在甄嬛把华妃扳倒后&#xff0c;皇后便甩开手开始对付甄嬛了&#xff0c;比起华妃和甄嬛的眼里皇后是最好对付的&#xff0c;因为皇后手中掌握扳倒甄嬛的法宝&#xff0c;这便是皇后的亲姐姐纯元&#xff0c;皇后设计甄嬛穿错纯元故衣后&#xff0c;不仅是皇上大发雷…

专利战争:IT界的甄嬛传

分享到 本文来自腾讯大讲堂(DJT.QQ.COM)&#xff0c;转载请注明出处。      近期热播电视剧“甄嬛传”完美收官&#xff0c;剧中女猪脚甄嬛的经历堪称一部女人的奋斗史诗&#xff0c;一方面要讨皇上的欢心&#xff0c;一方面又要跟华妃、皇后等后宫各方势力做斗争&…

熹贵妃竟是这种隐藏属性,从MBTI来看甄嬛“三姐妹”的爱恨情仇?

就在不久前的5月17日&#xff0c;农历四月十七&#xff0c;是熹贵妃的农历生日&#xff0c;这一天为了给嬛嬛庆生&#xff0c;朋友圈微博等各大平台&#xff0c;可热闹了起来&#xff0c;这盛况堪比那年果郡王为嬛嬛庆生&#xff5e; 如今&#xff0c;距《甄嬛传》首播已经有1…

《后宫•甄嬛传》火爆背后的秘密

“I pity the empress. Poor empress.” “我很同情皇后&#xff0c;她很可怜。” “Do you think Zhen Huan really loves the emperor?” “你认为甄嬛真的爱皇帝吗&#xff1f;” From campuses to offices, from shopping malls to the streets, talk about Legend of Zhe…