❤️ 炒 股 实 战丨原 地 起 飞 ❤️

郑重声明: 

1、个人版可以免费获取交易数据进行分析,企业级大规模调用数据需要购买积分(大家玩玩即可)

2、为避免广告代言,本文将不会出现任何logo、链接和包,需要玩的主页私聊我!

🍅 作者主页:不吃西红柿

🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌简历模板、PPT模板、技术交流、面试套路尽管【关注】私聊我。

🍅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

本文主要介绍三部分数据采集,数据预处理,利用SVM算法进行建模

作为一个新手,你需要以下3个步骤: 1、用户注册 > 2、获取token > 3、调取数据

数据内容:包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。

>> 1、数据采集 <<

我们进行本地化计算,首先要做的,就是将所需的基础数据采集到本地数据库里,本篇的示例源码采用的数据库是MySQL5.5,数据源是xxx pro接口。

我们现在要取一批特定股票的日线行情,部分代码如下:

# 设置xxxxx pro的token并获取连接
# 公众号:信息技术智库
ts.set_token('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
pro = ts.pro_api()
# 设定获取日线行情的初始日期和终止日期,其中终止日期设定为昨天。
start_dt = '20100101'
time_temp = datetime.datetime.now() - datetime.timedelta(days=1)
end_dt = time_temp.strftime('%Y%m%d')
# 建立数据库连接,剔除已入库的部分
db = pymysql.connect(host='127.0.0.1', user='root', passwd='admin', db='stock', charset='utf8')
cursor = db.cursor()
# 设定需要获取数据的股票池
stock_pool = ['603912.SH','300666.SZ','300618.SZ','002049.SZ','300672.SZ']
total = len(stock_pool)
# 循环获取单个股票的日线行情
for i in range(len(stock_pool)):try:df = pro.daily(ts_code=stock_pool[i], start_date=start_dt, end_date=end_dt)# 打印进度print('Seq: ' + str(i+1) + ' of ' + str(total) + '   Code: ' + str(stock_pool[i]))

上述代码的注释部分已将每行代码的功能解释清楚了,实际上数据采集的程序主要设置三个参数:获取行情的初始日期,终止日期,以及股票代码池

当我们获取数据后,就要往本地数据库进行写入(存储)操作了,本篇代码用的是SQL语言,需提前在数据库内建好相应的表,表配置和表结构如下:

库名:stock       表名:stock_all

其中 state_dt 和 stock_code 是主键和索引。state_dt 的格式是 ‘yyyy-mm-dd’(例:'2018-06-11')。这样的日期格式便于查询,且在MySQL内部能够进行大小比较。
 

>> 2、数据预处理 <<

无论是量化策略还是单纯的机器学习项目,数据预处理都是非常重要的一环。以机器学习的视角来看,数据预处理主要包括数据清洗,排序,缺失值或异常值处理,统计量分析,相关性分析,主成分分析(PCA),归一化等。本篇所要介绍的数据预处理比较简单,只是将存在本地数据库的日线行情数据整合成一份训练集数据,以用于后续的机器学习建模和训练

在介绍具体的示例代码之前,我们需要先思考一个问题,应用有监督学习的算法对个股进行建模,我们的输入数据有哪些,我们期望得到的输出数据又是什么?

这个问题的答案因人而异,因策略而异。这个问题本身是将市场问题转化为数学问题的一个过程。依赖的是量化宽客自己的知识体系和对市场的理解。

回到正题,本篇示例我们将以最简单的数据进行分析,我们输入端的数据是个股每日基础行情,输出端数据是股价相较前一交易日的涨跌状态。简单点说就是,我们向模型输入今天的基础行情,让模型预测明天股价是涨还是跌。

在代码实现方式上,我们采用面向对象的思想,将整个数据预处理过程和结果,封装成一个类,每次创建一个类实例,就得到了特定条件下的一份训练集。示例代码如下:

class data_collect(object):def __init__(self, in_code,start_dt,end_dt):ans = self.collectDATA(in_code,start_dt,end_dt)def collectDATA(self,in_code,start_dt,end_dt):# 建立数据库连接,获取日线基础行情(开盘价,收盘价,最高价,最低价,成交量,成交额)db = pymysql.connect(host='127.0.0.1', user='root', passwd='admin', db='stock', charset='utf8')cursor = db.cursor()sql_done_set = "SELECT * FROM stock_all a where stock_code = '%s' and state_dt >= '%s' and state_dt <= '%s' order by state_dt asc" % (in_code, start_dt, end_dt)cursor.execute(sql_done_set)done_set = cursor.fetchall()if len(done_set) == 0:raise Exceptionself.date_seq = []self.open_list = []self.close_list = []self.high_list = []self.low_list = []self.vol_list = []self.amount_list = []for i in range(len(done_set)):self.date_seq.append(done_set[i][0])self.open_list.append(float(done_set[i][2]))self.close_list.append(float(done_set[i][3]))self.high_list.append(float(done_set[i][4]))self.low_list.append(float(done_set[i][5]))self.vol_list.append(float(done_set[i][6]))self.amount_list.append(float(done_set[i][7]))cursor.close()db.close()# 将日线行情整合为训练集(其中self.train是输入集,self.target是输出集,self.test_case是end_dt那天的单条测试输入)self.data_train = []self.data_target = []

最终这个类实例化后是要整合出三个数据:

  • 1. self.train :训练集中的输入端数据,本例中是每日基础行情。
  • 2. self.target :训练集中的输出数据,本例中相较于前一天股价的涨跌,涨为1,不涨为0。并且在排序上,每条 t 交易日的self.train里的数据对应的是 t+1 天股价的涨跌状态。
  • 3. self.test_case :在 t 末交易日的基础行情数据,作为输入端,用于模型训练完成后,对第二天的涨跌进行预测。

>> 3、SVM建模 <<

机器学习中有诸多有监督学习算法,SVM是比较常见的一种,本例采用SVM算法进行建模。关于SVM的理论原理本篇不做详述,以下仅从实践角度进行建模介绍。

先贴一段建模、训练并进行预测的代码大家感受一下:)

model = svm.SVC()               # 建模
model.fit(train, target)        # 训练
ans2 = model.predict(test_case) # 预测

三行代码,让人想起了把大象装冰箱分几步的冷笑话……

不过这侧面也说明Python在数据挖掘方面的强大之处:简单,方便,好用。

本例用的机器学习框架是scikit-learn。是个非常强大的算法库,熟悉算法原理的朋友可以查阅官方API文档,可修改模型参数,进一步调优模型;亦可尝试其他算法比如决策树,逻辑回归,朴素贝叶斯等。


热门专栏推荐:

🥇 大数据集锦专栏:大数据-硬核学习资料 & 面试真题集锦 
🥈 数据仓库专栏:数仓发展史、建设方法论、实战经验、面试真题 
🥉 Python专栏:Python相关黑科技:爬虫、算法、小工具 

(优质好文持续更新中……)✍

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

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

相关文章

人工智能研究的新前线:生成式对抗网络

林懿伦, 戴星原, 李力, 王晓, 王飞跃来源&#xff1a;科学网 摘要&#xff1a;生成式对抗网络&#xff08;Generative adversarial networks, GAN&#xff09;是当前人工智能学界最为重要的研究热点之一。其突出的生成能力不仅可用于生成各类图像和自然语言数据&#xff0c;还启…

中国自动化学会平行智能专业委员会成立

摘要&#xff1a;2018年8月18日上午&#xff0c;中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。2018年8月18日上午&#xff0c;中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。中国科学院院士吴宏鑫教…

2008-2018,5个版本互联网大脑模型的演进与对比

2018年8月&#xff0c;我们绘制的第五个版本的互联网大脑模型图&#xff0c;新的版本相当于为互联网找到了左右大脑的机制-机器智能左大脑和群体智能右大脑。第五版的绘制距离2008年第一个版本正好10年。互联网大脑模型主要是针对1969年以来互联网的网状模型&#xff0c;在21世…

2.安装MySQL

2.安装MySQL Mac系统中安装MySQL 使⽤用Mac中的Homebrew进⾏行行mysql的安装 1.下载安装mysql brew install mysql5.7 如果看到以下界⾯面则表示已经下载安装成功 2.启动mysql mysql.server start 3.关闭mysql mysql.server stop 4.登录mysql mysql -u root -p Windows安…

CNNIC互联网报告:中国网民超8亿 前沿科技进展显著

来源&#xff1a;新浪摘要&#xff1a;8月20日下午消息&#xff0c;中国互联网络信息中心(CNNIC)在京发布第42次《中国互联网络发展状况统计报告》。根据报告&#xff0c;截至2018年6月30日&#xff0c;我国网民规模达8.02亿&#xff0c;普及率为57.7%;手机网民规模达7.88亿&am…

4.MySQL基础操作

4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握)方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用)方式三:通过编程语言(python,php,java,go...)执行mysql命令 SQL ( Structure query language ) 结构化查询语言 SQL语言分为4个…

19个人工智能(AI)热门应用领域,你知道多少?

来源&#xff1a;网络大数据摘要&#xff1a;自然语言生成是人工智能的分支&#xff0c;研究如何将数据转化为文本&#xff0c;用于客户服务、报告生成以及市场概述。01自然语言生成(Natural Language Generation)自然语言生成是人工智能的分支&#xff0c;研究如何将数据转化为…

滴滴重磅发布:KDD2018大会187页人工智能+交通教程

来源&#xff1a;专知摘要&#xff1a;随着深度学习技术的提升&#xff0c;智能交通领域吸引了越来越多研究人员的关注&#xff0c;今天为大家带来滴滴在KDD大会上的最新教程&#xff0c;为大家呈现智能交通领域的最新进展。摘要随着网上约车与自动驾驶技术的快速发展&#xff…

5.一文搞懂MySQL的数据类型

&#x1f345; 作者主页&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、信息技术智库公号作者✌简历模板、PPT模板、技术资料尽管【关注】私聊我。 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 历史文章目录&#…

中国机器人产业发展报告(2018)正式发布!

来源&#xff1a;机器人创新生态摘要&#xff1a;2018年8月16日&#xff0c;《中国机器人产业发展报告&#xff08;2018&#xff09;》于2018世界机器人大会主论坛上正式发布&#xff0c;该报告为工信部2016-2018年专项《建立我国机器人团体标准体系与产业信息资源库》的阶段性…

❤️ 给你的Linux把把脉(内存、磁盘、CPU、网络)❤️

&#x1f345; 作者主页&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。 今日重点&#xff1a; ① 学会查看linux各种状态&#xff0c;包括&a…

团结就是力量,TeamCola浅谈创业团队腾云驾雾的归国征程

记得网上曾流传过这样一句话&#xff1a;“不怕神一样的对手&#xff0c;就怕猪一样的队友”&#xff0c;相信看过的人都会心一笑&#xff0c;明白与优秀的搭档默契地合作有多重要。“你需要信任你伙伴的能力和责任心&#xff0c;而信任的基础则是开放和透明——在一个扁平而高…

知识图谱的前世今生:为什么我们需要知识图谱?

来源&#xff1a;SimmerChan&#xff08;知乎&#xff09;编辑&#xff1a;Debra摘要&#xff1a;本文主要分为三个部分。第一个部分介绍我们为什么需要知识图谱&#xff0c;第二个部分介绍知识图谱的相关概念及其形式化表示。最后&#xff0c;作一个简单的总结&#xff0c;并介…

7.Mysql数据库表引擎与字符集

7.Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信&#xff0c;最后实现的效果都是&#xff1a;客户端进程向服务器进程发送 一段文本&#xff08;MySQL语句&#xff09;&#xff0c;服务器进程处理后再向客户端进…

大数据+人工智能正以八种方式撼动商界

来源&#xff1a; 数据观摘要&#xff1a;如果你想帮助你的企业实现更多&#xff0c;那么拥抱大数据和人工智能就很有必要了。事实上&#xff0c;那些没能接受这些新兴技术的企业&#xff0c;用不了多久就会逐渐消失在时代发展的长河中。大数据、人工智能正成为技术界的热点&am…

android 自定义 radiobutton 文字颜色随选中状态而改变

from:http://blog.csdn.net/hpccn/article/details/7591662先看效果主要是写一个 color selector 在res/建一个文件夹取名color res/color/color_radiobutton.xml [html] view plaincopy <?xml version"1.0" encoding"utf-8"?> <selector xml…

Gartner2018新技术成熟度曲线:五大技术趋势成为新热点

来源&#xff1a;网络大数据近日&#xff0c;Gartner发布了2018年新技术成熟度曲线&#xff0c;首次将Biohacking(生物黑客)列为热点技术趋势&#xff0c;再次引发市场关注。Gartner技术成熟度曲线又称技术循环曲线、光环曲线或者技术炒作周期。是方便企业和CIO们评估新技术成熟…

一文了解物联网主控芯片架构之争

文/Boone来源&#xff1a;中关村在线&#xff0c;智慧产品圈等中兴事件引起了全球的轰动&#xff0c;大家的目光聚集在服务器、计算机、存储底层芯片技术缺乏之上。紫光等国产芯片供应商股票应声上涨。此次事件反应出了我国在芯片及其产业链上较为薄弱&#xff1b;毕竟PC时代&a…

AI产业投融资情况回顾、中美科技巨头AI产业投资布局以及领先投资机构AI产业投资布局...

来源&#xff1a;投中研究院编辑&#xff1a;余瑞琦未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&…

❤️ 2021年9月,程序员薪资公布【前排围观】❤️

&#x1f345; 作者主页&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、信息技术智库公号作者✌ 华为云享专家、HDZ核心组成员 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 简历模板、PPT模板、…