深圳的seo网站排名优化,安阳网站制作 网络服务,给个网站急急急202,软文范文郑重声明#xff1a; 1、个人版可以免费获取交易数据进行分析#xff0c;企业级大规模调用数据需要购买积分#xff08;大家玩玩即可#xff09; 2、为避免广告代言#xff0c;本文将不会出现任何logo、链接和包#xff0c;需要玩的主页私聊我#xff01; #x1f345… 郑重声明 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(days1)
end_dt time_temp.strftime(%Y%m%d)
# 建立数据库连接,剔除已入库的部分
db pymysql.connect(host127.0.0.1, userroot, passwdadmin, dbstock, charsetutf8)
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_codestock_pool[i], start_datestart_dt, end_dateend_dt)# 打印进度print(Seq: str(i1) 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(host127.0.0.1, userroot, passwdadmin, dbstock, charsetutf8)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里的数据对应的是 t1 天股价的涨跌状态。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相关黑科技爬虫、算法、小工具
优质好文持续更新中……✍