- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章利用python数据分析处理进行炒股实战行情由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
作为一个新手,你需要以下3个步骤:
1、用户注册 > 2、获取token > 3、调取数据 。
包含股票、基金、期货、债券、外汇、行业大数据, 。
同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台, 。
为各类金融投资和研究人员提供适用的数据和工具.
我们进行本地化计算,首先要做的,就是将所需的基础数据采集到本地数据库里 。
本篇的示例源码采用的数据库是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语言,需提前在数据库内建好相应的表,表配置和表结构如下:
其中 state_dt 和 stock_code 是主键和索引。state_dt 的格式是 ‘yyyy-mm-dd"(例:"2018-06-11").
这样的日期格式便于查询,且在MySQL内部能够进行大小比较.
无论是量化策略还是单纯的机器学习项目,数据预处理都是非常重要的一环.
本篇所要介绍的数据预处理比较简单 。
只是将存在本地数据库的日线行情数据整合成一份训练集数据, 。
以用于后续的机器学习建模和训练.
在介绍具体的示例代码之前,我们需要先思考一个问题, 。
这个问题的答案因人而异,因策略而异.
这个问题本身是将市场问题转化为数学问题的一个过程.
依赖的是量化宽客自己的知识体系和对市场的理解.
回到正题,本篇示例我们将以最简单的数据进行分析, 。
我们输入端的数据是个股每日基础行情,输出端数据是股价相较前一交易日的涨跌状态.
简单点说就是,我们向模型输入今天的基础行情,让模型预测明天股价是涨还是跌.
在代码实现方式上, 。
示例代码如下:
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 Exception self.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 末交易日的基础行情数据,作为输入端,用于模型训练完成后,对第二天的涨跌进行预测.
SVM是比较常见的一种,本例采用SVM算法进行建模.
关于SVM的理论原理本篇不做详述,以下仅从实践角度进行建模介绍.
先贴一段建模、训练并进行预测的代码大家感受一下:) 。
model = svm.SVC() # 建模model.fit(train, target) # 训练ans2 = model.predict(test_case) # 预测
三行代码,让人想起了把大象装冰箱分几步的冷笑话…… 。
不过这侧面也说明Python在数据挖掘方面的强大之处:简单,方便,好用.
本例用的机器学习框架是scikit-learn是个非常强大的算法库.
熟悉算法原理的朋友可以查阅官方API文档,可修改模型参数,进一步调优模型; 。
亦可尝试其他算法比如决策树,逻辑回归,朴素贝叶斯等.
以上就是利用python数据分析进行炒股实战行情的详细内容,更多关于python数据分析的资料请关注我其它相关文章! 。
原文链接:https://blog.csdn.net/weixin_39032019/article/details/119974784 。
最后此篇关于利用python数据分析处理进行炒股实战行情的文章就讲到这里了,如果你想了解更多关于利用python数据分析处理进行炒股实战行情的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
实战-行业攻防应急响应 简介: 服务器场景操作系统 Ubuntu 服务器账号密码:root/security123 分析流量包在/home/security/security.pcap 相
背景 最近公司将我们之前使用的链路工具切换为了 OpenTelemetry. 我们的技术栈是: OTLP C
一 同一类的方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public c
一 简单例子 1 代码 package concurrent.threadlocal; /** * ThreadLocal测试 * * @author cakin */ public class T
1. 问题背景 问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。 分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要
实战环境 elastic search 8.5.0 + kibna 8.5.0 + springboot 3.0.2 + spring data elasticsearch 5.0.2 +
Win10下yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、
yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,
目录如下: 为什么需要自定义授权类型? 前面介绍OAuth2.0的基础知识点时介绍过支持的4种授权类型,分别如下: 授权码模式 简化模式 客户端模式 密码模式
今天这篇文章介绍一下如何在修改密码、修改权限、注销等场景下使JWT失效。 文章的目录如下: 解决方案 JWT最大的一个优势在于它是无状态的,自身包含了认证鉴权所需要的所有信息,服务器端
前言 大家好,我是捡田螺的小男孩。(求个星标置顶) 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数
前言 大家好,我是捡田螺的小男孩。 平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢,我觉得,最好的方式就是:使用设计模式优化自己
我们先讲一些arm汇编的基础知识。(我们以armv7为例,最新iphone5s上的64位暂不讨论) 基础知识部分: 首先你介绍一下寄存器: r0-r3:用于函数参数及返回值的传递 r4-r6
一 同一类的静态方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public
DRF快速写五个接口,比你用手也快··· 实战-DRF快速写接口 开发环境 Python3.6 Pycharm专业版2021.2.3 Sqlite3 Django 2.2 djangorestfram
一 添加依赖 org.apache.thrift libthrift 0.11.0 二 编写 IDL 通过 IDL(.thrift 文件)定义数据结构、异常和接口等数据,供各种编程语言使用 nam
我正在阅读 Redis in action e-book关于semaphores的章节.这是使用redis实现信号量的python代码 def acquire_semaphore(conn, semn
自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录 按钮设置圆角
师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。 代码 ?
? 1 2
我是一名优秀的程序员,十分优秀!