41.7%年化收益率 人工智能买股可以如此简单

学一门知识,充实自我 掌握一项工具,让生活更美好~今天flare老师教大家AI选股,轻松搭建一个年化收益40%的机器学习选股策略

—by flare zhao,转载请注明出处,原创不易,谢谢支持
话不多说,先看策略的最终表现:
2017年12月到2019年12月期间
图片描述

为了让大家有个更直观的感受,我们来看看K线图及策略的净值曲线:

图片描述

接下来,我们再来看看策略的具体交易情况:

图片描述
考虑到文章篇幅限制,flare老师没有把所有的交易都列举出,我们可以看到,本策略并不是买了一只股票就不变化,而是会根据模型预测进行买入、卖出调仓。

看到这个结果是不是有些小激动,期待自己也能亲手跑一遍

Let’s start!

通常来说,搭建AI选股模型的核心有三点

  • 确定基本逻辑,思考一个理智的投资者会从哪些方面去选择股票
  • 逻辑代码化,基于实际数据建立并训练模型,进行预测
  • 回测模型表现,表现好那就可以应用到实际交易中了

Wow,so easy对不对!

1、理清思路,确定假设条件
以我们今天的策略来举栗子:

  • 投资者会根这里是斜体文字据股票公司的基本面信息(比如营业收入、基本每股收益 、净利润 、净资产收益率等等)来判断这个公司好不好,值不值得买!
  • 除了基本面,中短期交易还会考虑公司最近的技术因子(比如相对强弱指数RSI、换手率、威廉指标等等),以此分析公司最近的市场追捧度,适不适合最近下手!
  • 投资者对股票的选股方式会维持一段时间,比如说今天以某种策略买了A股并持有了一段日期,那明天我的选股策略不会有大的改变

这里,flare老师说到的因子数据我们都可以去网上获取到,大家如有需要可以在文章最后链接处下载。
数据有了,我们就来说说第三个假设,说白了,不就是建立一个模型把这个态度信息提取出来嘛!然后再利用这个态度信息去选择买/卖股票就可以了,是不是很简单!

到这里,你已经掌握了机器学习量化交易的核心。知识有了,接下来就是利用工具去检验知识。

我们先把代码的思路再理一理:
现实生活:今天我想买股票,想从沪深300的股票池中选一些好的标的,那我先看看上个月所有股票的表现,并且把股票表现和股票上个月的基本面、技术信息建立一个关系。当然了,信息那么多,让我自己去找怕是不行,那就交给计算机。
有了这个关系,我再看看股票池股票现在的基本面信息,然后预测下个月涨跌表现,买入会涨的,卖出会跌的,然后躺着赚钱??

思路清晰化:
1、读取沪深300所有股票20个交易日之前的信息X、前20个交易日区间的涨跌幅Y
2、数据预处理:对X、Y进行预处理,让其更适合于模型训练
3、建立并训练模型,再进行模型训练

光动脑子还不够,接下来我们一起动手实操一下:

1、载入数据

import pandas as pd
import numpy as np
data_train = pd.read_csv('data_train.csv')
data_train.head()

我们看看部分数据(股票代码、营业收入、每股收益等等,部分0数据通常是数据没有获取到导致的)
图片描述
图片描述
数据中,date表明了因子在当前日期的数据,y则是一个月后对应标的的涨跌幅。
我们以2017年12月7日的数据为例,对模型进行讲解

#分析日期
date = 20171207
data_train_temp = data_train[data_train['date'] == date]
#以股票代码进行数据索引
data_train_temp = data_train_temp.set_index(['stock_code'])
x_train = data_train_temp.drop(['date','y'],axis=1)
y_temp = data_train_temp.loc[:,'y']
y_temp.head()

图片描述
2、数据预处理(为了防止模型过拟合,我们需要对输入因子进行降维处理;对y,我们根据涨跌幅是否大于4%,将数据分类两类,大于4%的标签为1,小于的为0.

如果不理解过拟合、降维、数据分类标签化处理,大家可以点击链接。

#引入依赖库
from sklearn.decomposition import PCA
from sklearn.preprocessing import MinMaxScaler
from sklearn.svm import SVC
y_temp = y_train.dropna()#缺省值去掉
y_temp_win = y_temp[y_temp>0.04] #筛选出收益率大于0.04的股票
y_temp_loss= y_temp[y_temp<=0.04]#筛选出收益率小于0.04的股票
#训练数据的y赋值,收益率大于4%的股票标签为1,否则为0
y_train = [1] * len(y_temp_win) + [0] * len(y_temp_loss) 
#获取有正常数据的股票代码
code_train = list(y_temp_win.index)+list(y_temp_loss.index) 
code_train = code_train
#提取股票的因子信息
x_train = x_train.loc[code_train].values
# 使用主成分分析,对数据作降维处理,提取四个关键的特征
nm_scaler= MinMaxScaler()
x_train = nm_scaler.fit_transform(x_train)
pca = PCA(n_components=4)
x_train = pca.fit_transform(x_train)

3、建立模型并训练、评估模型表现(这里我们使用在金融市场应用广泛的支持向量机SVM模型,flare老师会在以后的文章据具体介绍该模型)

# 构建模型,对模型进行训练
model=SVC(C=20000,kernel='rbf',gamma=1)
model.fit(x_train, y_train)
y_train_predict = model.predict(x_train)
#评估表现
from sklearn.metrics import accuracy_score,confusion_matrix
acc=accuracy_score(y_train,y_train_predict)
#cm = confusion_matrix(y_train,y_train_predict)
#print(cm)
print(acc)

模型准确率accuracy=85%,感觉效果还不错!当然,我们还可以通过一些其他指标来判断这个模型的表现,这里不做过于详细的陈述。

模型有了,意味着判断投资者对个股的情绪信息能够提取出来了,我们再利用这个模型去提取投资者现对于不同股票的投资情绪与意向,然后操作!

基本方法还是一样的,那就是读取当前日期的股票基本信息,然后预测未来一个月的标签是1还是0,1则表示预测该股票未来一个月涨幅超过4%,0则不会超过。

data_test = pd.read_csv('data_test.csv')
#分析日期
date = 20171227
data_test_temp = data_test[data_test['date'] == date]
#以股票代码进行数据索引
data_test_temp = data_test_temp.set_index(['stock_code'])
x_test = data_test_temp.drop(['date'],axis=1)
x_test = x_test.fillna(0)
x_test = x_test.values
# 使用主成分分析,对数据作降维处理,提取四个关键的特征
x_test = nm_scaler.transform(x_test)
x_test = pca.transform(x_test)
#预测
y_test_predict = model.predict(x_test)
#预测收益率大于0.04的股票
stock_selected = data_test_temp.index.values[y_test_predict==1]  
print(stock_selected)

图片描述

此时,模型帮我们从沪深300的300只股票池中,找出了超过40只未来一个与可能涨幅会超过4%的股票。

接下来,我们可以进一步思考

How if we get so many stocks???

资金有限,我们很难做到去购买所有的股票,可以进一步细化策略:
比如:

  • 如果选用的模型会输出预测的概率,可以根据概率进行排序筛选;
  • 事先约定,如果模型推荐的数量不多于m只(比如10只),那我们才进行操作
  • 或者,我们还可以想想其他的筛选准则

到这里,我们只分析了一个日期的数据,为了帮助我们进一步优化策略,我们把之后每20个交易日进行一次分析

flare老师提醒大家一点,每一次分析,最好重新训练模型,因为随着时间推移,一年前的投资者偏好可能和一年后不同
我们来看看模型的分析与推荐结果(列举部分结果,数据在文章最后提供下载链接):
图片描述
有了每个日期的结果,我们可以根据个人意愿优化策略,比如在这里,flare老师的计划是,如果当期推荐股票数量少于十只,那就进行操作:对推荐股票进行买入、调仓操作,不在推荐列表的股票进行卖出操作。
日期从前往后依次为2018年6月28日买入000063.SZ,2018年11月23、12月21
图片描述
最后,我们再一次来看看策略的回测收益曲线:
图片描述

看上去还是很nice的!

我们可以再细看模型推荐的标的:中兴通讯、中国平安、大族激光、五粮液、隆基股份,的确都是大家很熟悉业绩很不错的股票,买了就算短期回调,我们都还是很有信心的,看来推荐的标的还是很良心的。

除此之外,两年时间,总共只进行了16次操作,标的数量不超过10只,意味着:1、空仓期间,可以结合其他策略,产生更高收益;2、不必花费太多精力在调仓上,很省心。

做个小总结:

  • 数据证明,AI选股是有价值的,能够帮助我们在大池子中找到优质标的
  • AI金融没有想象中那么难,核心是思路的构建与工具的使用

flare老师再给几个小建议:

  • 无论何时,投资有风险一定要记住,没有完美的模型,试想如果明天突然发生黑天鹅事件,股市短期下跌不可避免,我们要随时有所准备,做好资金管理;
  • 大家市场说A股市场比不过美股,但认真去想,任何一个市场都有优质和垃圾标的,在A股,基本面好的股票最终总会在股价上有所反应,长期来看有效市场终归是有效市场。我们要做的,就是通过预先的数据去发现优质标的,接下来就交给时间吧。

文章收尾前,感谢国信证券iquant平台给予的免费试用机会,平台还有很多值得优化的地方,但已经是个很不错的工具了,有兴趣的小伙伴可以尝试一下。
附上感兴趣的小伙伴需要的数据链接: https://pan.baidu.com/s/1YQYAyo3A_jsIWC9WSW7Ntg
提取码: 8qz3
点赞转发,还可获得最后部分的程序源码~?
Finally:flare老师的实战课程“Python人工智能套餐课”已经上线,新课上线希望大家多多支持,和flare老师一起学习AI,掌握AI工具,解决实际问题。

「CSDN好物推荐」

技术转型,这两年一直是程序员圈子里的热门话题。对于大部分基层程序员来说,基础岗位上薪资的涨幅很难跟上年龄的增长。而近些年,AI技术发展势头迅猛,优秀人才短缺。在这种情况下,无疑是谁先转型成功,谁就占得职场先机。

而如何高效掌握人工智能则是目前大家最关注的。 本课程专为准备入门人工智能的小白打造,并结合初级AI工程师的能力模型以及学习路径设计的课程内容。

在课程中,老师将带你全面掌握:Python语法编程人工智能核心数学理论机器学习八大算法深度学习与神经网络计算机视觉,为你求职人工智能打下夯实的基础。

通过 6 大课程,5 大阶段,355 节视频课程的学习,带你系统掌握初级AI工程师的核心能力。在这里插入图片描述

读后有收获可以扫码(不是加好友噢)请作者喝咖啡:

扫码有惊喜
在这里插入图片描述
还可以分享给朋友。

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

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

相关文章

人工智能帮你3分钟完成股票抄底

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈…

2023年市场规模将超147亿美元,中国人工智能产业的“风口”来了吗?

2023年IDC中国ICT市场趋势论坛于5月10日召开&#xff0c;会议重点探讨了人工智能、工业互联网、网络安全、大数据、云计算等领域&#xff0c;并强调了智能终端、智慧城市和半导体等行业的前景。 IDC预计&#xff0c;中国人工智能市场规模在2023年将超过147亿美元&#xff0c;到…

泛娱乐行业需求升级,即构推出“泛娱乐社交玩法2.0方案”

泛娱乐社交领域激烈的市场环境&#xff0c;引发社交产品竞争激烈、玩法同质化、获客困难等一系列行业痛点问题&#xff0c;行业需要更新颖、更符合年轻一代的社交玩法来实现增长与营收的突破。 回看过去十几年娱乐社交的发展&#xff0c;从早期的BBS/论坛等社交网络形式&#x…

2020大学生就业报告:IT行业人才缺口巨大,好就业

据教育部公开数据,2020年应届高校毕业生比去年增长40万,达到874万。 毕业生数量攀升,而受疫情影响,大批企业放慢了招聘步伐,甚至裁员。2020年,不管你是应届毕业生还是打算转行的职场新人,都会面临着“僧多粥少”的困局。 2020就业难,难于上青天。那么,这次“就业大考…

大学生就业问题的统计研究

最近在写学年论文&#xff0c;哈哈&#xff0c;这个文章被导师修改&#xff0c;觉得有些不妥就基本算是胎死腹中了。但是毕竟是自己的blog&#xff0c;在这里写写感觉也无所谓的哈。但是秉承着对自己博客&#xff0c;对希望学习统计的大伙儿负责的态度。我可以保证研究过程中的…

PHP计算比较两段文字内容的重复率

一、介绍 用于比较两段文字内容的重复率二、运行结果 三、代码 <?php /*** 内容相似度计算*/ class GetSimilar{function __construct(){}function getSimilar($str1, $str2) {$len1 strlen($str1);$len2 strlen($str2);$len strlen($this->getLCS($str1, $str2, $…

抖音直播运营 | 疫情时代下如何用直播驱动品牌业务增长

自从提出「兴趣电商」概念后&#xff0c;抖音便开始逐步发力并推出三大扶持计划。大量商家入驻抖音电商&#xff0c;争相踏入品牌自播这一黄金赛道&#xff0c;在疫情时代下找到了效率更高、品牌价值链更短的新零售模式。 货架电商的特征是指数式增长、顾客货比三家&#xff0c…

抖音如何直播汉字找不同小游戏

在电脑下载电脑版微信、直播伴侣2款软件&#xff1b; 免费玩小程序可以在微信小程序搜索&#xff1a;火眼金睛汉字找不同、金金汉字找不同、范范汉字找不同、九九汉字找不同&#xff0c;这4个名字都可以&#xff0c;包含基本功能&#xff1b; 定制版VIP小程序联系微信号&…

如何用直播摄像机、编码器、电脑端OBS软件在抖音平台上做推流直播现实背景

现实背景 自2021年以来&#xff0c;抖音平台提高了电脑推流直播门槛&#xff0c;导致很多人无法通过电脑软件做推流直播&#xff0c;也无法通过第三方推流工具做直播&#xff0c;具体要求如下图所示&#xff1a; 抖音平台的新规则如下&#xff1a;硬性条件&#xff1a; 1. 需实…

利用OBS推流抖音直播电脑屏幕或PC游戏

抖音目前的火爆程度相信大家都有目共睹&#xff0c;抖音也为部分活跃用户提供直播功能&#xff0c;开通直播的方法有&#xff1a;①抖音粉丝达到10000粉丝&#xff0c;官方会自动邀请你开通直播权限。②加入和抖音官方合作的工会&#xff0c;无需粉丝&#xff0c;也可以开通直播…

抖音弹幕互动游戏直播怎么弄?

● 本质上是基于直播的一种实时互动玩法&#xff0c;用户可以通过直播间互动行为实现跟主播之间的实时互动&#xff1b; ● 主播开启玩法后进行投屏分享&#xff0c;用户通过发送评论/赠送礼物来影响主播侧的玩法内容&#xff1b; ● 特定礼物流水&#xff08;即魔法镜、能量电…

最常用的抖音直播话术大全,新手主播快收藏

1.高客单直播间主播话术怎样说? 第一 首先高客单价的女装播的时候一定要着重去讲你的做I、你的设计、你的款式、你的品牌、你 的独特性,要知道高客单消费人群需要的是价值,示范:各位姐妹们看一下主播身上的这款水雾蓝的 设计款连衣裙给大家做了一个内衬,领子立起来特别的好看,…

怎么把短视频做成gif图?短视频生成gif的步骤

在平时大家刷手机的时候&#xff0c;经常能够刷到一些短视频&#xff0c;我们经常可以看到很多由mp4视频转化成的精彩动图片段&#xff0c;那么应该怎么吧短视频做成gif图呢&#xff1f;其实视频转gif的方法非常简单&#xff0c;今天就来教大家一个在线视频转gif格式的方法&…

短视频程序源码,如何实现短视频的热门页面

之前做过一些短视频程序源码和直播项目&#xff0c;但是很多部分使用的是别的公司做好的SDK&#xff0c;由于不想像傻瓜一样不知道具体实现方式的调用来调用去&#xff0c;我决定自己做一个完全开源的&#xff0c;没有任何封装的SDK的短视频程序源码。 在实现短视频程序源码的…

短视频源码APP开发——短视频的功能

说到短视频&#xff0c;首先想到的就是抖音快手。毫无疑问&#xff0c;这两款短视频app是目前最受欢迎的&#xff0c;各大巨头都在布局短视频市场。短视频相比传统的文字、图片&#xff0c;在宣传和传播方面&#xff0c;短视频更有趣&#xff0c;传播范围广&#xff0c;短短几分…

什么是爆款视频生成器?怎么开发搭建

一、 什么是爆款视频生成器&#xff1f; 爆款视频生成器&#xff0c;是为创作者提供全方位创作灵感&#xff0c;创意脚本支持的短视频生成工具&#xff0c; 爆款文案热门话题创意标题&#xff0c;模板化视频制作加持&#xff0c;助力商家流量提升及团单转化的一种微信小程序。…

图文一键生成短视频工具

文字转视频好用的工具有哪些&#xff1f;文字图片一键自动朗读转视频文件解放双手&#xff0c;一刀工具箱提供在线文字转语音短视频制作必备工具。 代码片段 //2018.9.22 下载与打包生成视频static function buildMp4($id){if($id){$lists self::where("is_convert&qu…

短视频源码,成品短视频app源码搭建第一步

随着短视频平台的兴起&#xff0c;短视频app也成为了移动应用市场的一大风口。开发一款成品的短视频app需要大量的资源和时间&#xff0c;而使用现成的小视频app源码则可以快速地搭建出一个基础功能完备的短视频app。本文将介绍如何选择适合自己的小视频app源码&#xff0c;作为…

Google发布文本内容生成短视频工具:Imagen Video

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; AI视频机器人方面的两个突破性进展&#xff0c;一个产品叫imagen video,可以生成1280768的24帧的高清视频片段&#xff0c;另一个叫PHENAKI,可以根据文字描述生成长视频。 最近Google发布文本内容…

时隔 5 年,3 年匠心打造的 Godot Engine 4.0 都带来了哪些惊喜?

【CSDN 编者按】语言经历了漫长的等待&#xff0c;万众瞩目的 Godot Engine 4.0 正式版在其 3.0 版本发布 5 年以后&#xff0c;终于带着海量令人兴奋的新功能横空出世&#xff01; 整理 | 开发游戏的老王 责编 | 王子彧 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews…