竞赛 机器学习股票大数据量化分析与预测系统 - python 竞赛

news2024/11/27 8:29:39

文章目录

  • 0 前言
  • 1 课题背景
  • 2 实现效果
    • UI界面设计
    • web预测界面
    • RSRS选股界面
  • 3 软件架构
  • 4 工具介绍
    • Flask框架
    • MySQL数据库
    • LSTM
  • 5 最后

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 机器学习股票大数据量化分析与预测系统

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

1 课题背景

基于机器学习的股票大数据量化分析系统,具有以下功能:

  • 采集保存数据;
  • 分析数据;
  • 可视化;
  • 深度学习股票预测

2 实现效果

UI界面设计

功能简述

在这里插入图片描述

日常数据获取更新

在这里插入图片描述
交易功能
在这里插入图片描述

web预测界面

  • LSTM长时间序列预测
  • RNN预测
  • 机器学习预测
  • 股票指标分析

在这里插入图片描述

预测效果如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RSRS选股界面

在这里插入图片描述

3 软件架构

整体的软件功能结构如下图

在这里插入图片描述

4 工具介绍

Flask框架

简介

Flask是一个基于Werkzeug和Jinja2的轻量级Web应用程序框架。与其他同类型框架相比,Flask的灵活性、轻便性和安全性更高,而且容易上手,它可以与MVC模式很好地结合进行开发。Flask也有强大的定制性,开发者可以依据实际需要增加相应的功能,在实现丰富的功能和扩展的同时能够保证核心功能的简单。Flask丰富的插件库能够让用户实现网站定制的个性化,从而开发出功能强大的网站。

本项目在Flask开发后端时,前端请求会遇到跨域的问题,解决该问题有修改数据类型为jsonp,采用GET方法,或者在Flask端加上响应头等方式,在此使用安装Flask-
CORS库的方式解决跨域问题。此外需要安装请求库axios。

Flask框架图

在这里插入图片描述
代码实例



    from flask import Flask, render_template, jsonify
    import requests
    from bs4 import BeautifulSoup
    from snownlp import SnowNLP
    import jieba
    import numpy as np
    
    app = Flask(__name__)
    app.config.from_object('config')
    
    # 中文停用词
    STOPWORDS = set(map(lambda x: x.strip(), open(r'./stopwords.txt', encoding='utf8').readlines()))
    
    headers = {
        'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        'accept-language': "en-US,en;q=0.9,zh-CN;q=0.8,zh-TW;q=0.7,zh;q=0.6",
        'cookie': 'll="108296"; bid=ieDyF9S_Pvo; __utma=30149280.1219785301.1576592769.1576592769.1576592769.1; __utmc=30149280; __utmz=30149280.1576592769.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _vwo_uuid_v2=DF618B52A6E9245858190AA370A98D7E4|0b4d39fcf413bf2c3e364ddad81e6a76; ct=y; dbcl2="40219042:K/CjqllYI3Y"; ck=FsDX; push_noty_num=0; push_doumail_num=0; douban-fav-remind=1; ap_v=0,6.0',
        'host': "search.douban.com",
        'referer': "https://movie.douban.com/",
        'sec-fetch-mode': "navigate",
        'sec-fetch-site': "same-site",
        'sec-fetch-user': "?1",
        'upgrade-insecure-requests': "1",
        'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36 Edg/79.0.309.56"
    }
    
    login_name = None


    # --------------------- html render ---------------------
    @app.route('/')
    def index():
        return render_template('index.html')


    @app.route('/search')
    def search():
        return render_template('search.html')


    @app.route('/search/')
    def search2(movie_name):
        return render_template('search.html')


MySQL数据库

简介

MySQL是一个关系型数据库,由瑞典MySQL AB公司开发,目前已经被Oracle收购。

Mysql是一个真正的多用户、多线程的SQL数据库。其使用的SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,每个关系型数据库都可以使用MySQL是以客户机/服务器结构实现的,也就是俗称的C/S结构,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。

Python操作mysql数据库

本项目中我们需要使用python来操作mysql数据库,因此需要用到 pymysql 这个库

安装:


pip install pymysql

数据库连接实例:


# 导入pymysql
import pymysql

# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():
    # 连接数据库肯定需要一些参数
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3307,
        database="ksh",
        charset="utf8",
        user="root",
        passwd="123456"
    )

if __name__ == '__main__':
    mysql_db()

数据库连接实例:


# 导入pymysql
import pymysql

# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():
    # 连接数据库肯定需要一些参数
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3307,
        database="ksh",
        charset="utf8",
        user="root",
        passwd="123456"
    )

if __name__ == '__main__':
    mysql_db()

LSTM

简介

长短期记忆(Long short-term memory,
LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。

LSTM结构(图右)和普通RNN的主要输入输出区别如下所示。
在这里插入图片描述
在这里插入图片描述
Torch代码实现


import torch
from sklearn.metrics import accuracy_score

#定义需要的模型结构,继承自torch.nn.Module
#必须包含__init__和forward两个功能
class mylstm(torch.nn.Module):
    def __init__(self, lstm_input_size, lstm_hidden_size, lstm_batch, lstm_layers):
        # 声明继承关系
        super(mylstm, self).__init__()
 
        self.lstm_input_size, self.lstm_hidden_size = lstm_input_size, lstm_hidden_size
        self.lstm_layers, self.lstm_batch = lstm_layers, lstm_batch
 
        # 定义lstm层
        self.lstm_layer = torch.nn.LSTM(self.lstm_input_size, self.lstm_hidden_size, num_layers=self.lstm_layers, batch_first=True)
        # 定义全连接层 二分类
        self.out = torch.nn.Linear(self.lstm_hidden_size, 2)
 
    def forward(self, x):
        # 激活
        x = torch.sigmoid(x)
        # LSTM
        x, _ = self.lstm_layer(x)
        # 保留最后一步的输出
        x = x[:, -1, :]
        # 全连接
        x = self.out(x)
        return x
 
    def init_hidden(self):
        #初始化隐藏层参数全0
        return torch.zeros(self.lstm_batch, self.lstm_hidden_size)

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

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

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

相关文章

使用 ClassFinal 对 java class 文件进行加密防止反编译

ClassFinal 是一款 java class文件安全加密工具,支持直接加密 jar 包或 war 包,无需修改任何项目代码,兼容 spring-framework;可避免源码泄漏或字节码被反编译 特点 无需修改原项目代码,只要把编译好的jar/war包用本工…

媒体梦工厂AI智聊:轻松提升工作效率的智能助手

在信息爆炸的时代,如何快速、准确地获取和处理信息,成为提高工作效率的关键。媒体梦工厂最新推出的AI智聊功能,为您提供了全新的解决方案,让您在工作和生活中轻松提升效率。 首先,我们要进入好简单批量智剪的主页面&am…

643. 子数组最大平均数I(滑动窗口)

目录 一、题目 二、代码 一、题目 643. 子数组最大平均数 I - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:double findMaxAverage(vector<int>& nums, int k) {double Average INT_MIN;double sum nums[0];int left 0, right 0…

2023年10月报价:腾讯云服务器租用价格表_轻量_CVM_GPU

阿里云服务器10月报价表来了&#xff0c;和9月份价格差不多&#xff0c;再等一个月就到腾讯云双十一优惠活动了&#xff0c;腾讯云百科先来说说10月腾讯云服务器优惠价格表&#xff1a;轻量应用服务器2核2G3M带宽95元一年、2核4G5M带宽218元一年、2核2G4M带宽三年价540元一年、…

绘制李萨如图,数据保存excel,txt

前置 看到网络上绘制的这么漂亮的数学图形&#xff0c;觉得能够用一个代码绘制全部的这些图形&#xff0c;就能提高不少效率&#xff0c;所以于是就心血来潮&#xff1a; 这是一个绘制李萨如图并保存数据的Python代码示例。下面是每行注释的详细解释&#xff1a; import os …

面试5g通信工程师对方要看芝麻信用分靠谱吗

大家好&#xff0c;我是网络工程师成长日记实验室的郑老师&#xff0c;您现在正在查看的是网络工程师成长日记专栏&#xff0c;记录网络工程师日常生活的点点滴滴 有个大兄弟说&#xff0c;他在深圳龙岗去面试5G网络优化工程师。对方说刚入职多少钱&#xff0c;工作一段时间多少…

内网信息收集

1.内网基本步骤 2.收集本机信息 3.查询当前用户 4.判断域存在不 看域名和ip是不是一个内网 5.查看域内主机 6.扫描域内主机端口 7.收集域内基本信息 8.查找域控 9.查看域内用户和管理员信息 10.定位域管理员 11.查看域管理进程 12.域管理员方法 13.利用powershell收集…

SpringCloud Alibaba - 基于 FeignClient 整合 Sentinel,实现“线程隔离”和“熔断降级”

目录 一、FeignClient 整合 Sentinel 1.1、整合原因 1.2、实现步骤 1.2.1、修改 OrderService 中的 application.yml 文件 1.2.2、给 FeignClient 编写失败后的降级逻辑 二、线程隔离 2.1、线程隔离的两种方式 2.1.1、线程池隔离 2.1.2、信号量隔离&#xff08;Sentin…

c#设计模式-结构型模式 之 享元模式

&#x1f680;简介 享元模式&#xff08;Flyweight Pattern&#xff09;是一种用于性能优化的模式&#xff0c;其核心是运用共享技术来有效支持大量细粒度的对象。享元模式可以避免大量非常相似类的开销。在程序设计中&#xff0c;有时需要生成大量细粒度的类实例来表示数据。…

FPGA行业应用二:通用仪器行业

通用仪器指的是电子测试技术中涉及的仪器仪表&#xff0c;如&#xff1a;万用表&#xff0c;示波器&#xff0c;信号发生器&#xff0c;波形发生器&#xff0c;频谱分析仪&#xff0c;功率计&#xff0c;电源&#xff0c;等…… 用于测量&#xff0c;测试&#xff0c;控制&…

C语言编译与链接过程详解

C语言编译与链接过程详解 源文件 main.c #include <stdio.h>extern int data; extern int add(int a,int b);int a1; int a2 0; int a3 10;static int b1; static int b2 0; static int b3 20;int main() {int c1;int c2 0;int c3 30;static int d1;static int …

QQ通信协议

不管UDP还是TCP&#xff0c;最终登陆成功之后&#xff0c;QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80&#xff0c;采用UDP方式登陆的时候&#xff0c;端口是8000。因此&#xff0c;假如你所在的网络开放了80端口&#xff08;80端口是最常用端口。。就是…

轻松掌握二叉树和堆(保姆级详解,小白必看系列)

目录 一、前言 二、二叉树的概念和结构 &#x1f34e;二叉树的概念 &#x1f350;特殊的二叉树&#xff08;重点&#xff09; &#x1f349;二叉树的性质 &#xff08;超重点------面试做题会用&#xff09; &#x1f353;二叉树的概念选择题 &#x1f34c;二叉树的存储…

三、逻辑代数基础

1.简介 在数字电路中&#xff0c;我们用两种数码1和0来表示一个信号的两种不同的逻辑状态。 例如&#xff1a;用1表示开关闭合&#xff0c;电路导通&#xff1b;用0表示开关打开&#xff0c;电路断开。 这两种对立的逻辑关系就称之为二值逻辑。 当两种数码表示不同的逻辑状态…

Acwing 845. 八数码

Acwing 845. 八数码 知识点题目描述思路讲解代码展示 知识点 BFS 题目描述 思路讲解 分析一下y总的思路&#xff0c;也相当于做个课堂笔记吧&#xff08;这也太巧妙了吧&#xff0c;讲解视频不到20分钟&#xff0c;我愣是半天没想出来 1、题目的目标 2、移动情况 移动方式…

基于Java的城市天然气费管理系统的设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

S5PV210裸机(一):裸机基础,arm指令,210启动刷机

本文主要探讨s5pv210裸机基础知识&#xff0c;arm指令&#xff0c;以及210启动刷机相关知识。 Soc与cpu Soc是cpu与其他外设的集合即SoC<>cpuDDRflashutral...... 地址总线与数据总线 cpu通过地址总线寻址即传输DDR或flash等地址,通过数据总线与外设进…

【算法优选】双指针专题——贰

文章目录 &#x1f60e;前言&#x1f332;[快乐数](https://leetcode.cn/problems/happy-number/)&#x1f6a9;题目描述&#x1f6a9;题⽬分析&#xff1a;&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现&#xff1a; &#x1f38b;[盛水最多的容器](https://leetco…

第四十章 持久对象和SQL - Object IDs

文章目录 第四十章 持久对象和SQL - Object IDsObject IDsID是如何确定的访问 ID 第四十章 持久对象和SQL - Object IDs Object IDs 每个对象在其所属的每个范围内都有一个唯一的 ID。在大多数情况下&#xff0c;使用此 ID 来处理对象。此 ID 是类中 %Persistent 的以下常用方…

如何制作在线流程图?6款在线工具帮你轻松搞定

流程图&#xff0c;顾名思义 —— 用视觉化的方式来描述一种过程或流程。它可以应用于各种领域&#xff0c;从业务流程&#xff0c;算法&#xff0c;到计算机程序等。然而&#xff0c;在创建流程图时&#xff0c;可能会遇到许多问题或者困惑&#xff0c;如缺乏专业的设计技能&a…