博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅🍅**感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。**🍅
1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅
1、项目介绍
技术栈
采用 Python 语言开发,基于 Flask 框架搭建后端服务,使用 SQLite 数据库进行数据存储,前端利用 Echarts 实现数据可视化,运用深度学习 TensorFlow 框架中的 LSTM 模型进行股票价格预测。
功能模块
· 用户注册
· 用户登录
· 用户找回密码
· 基本信息修改
· 股票数据实时获取
· 股票预测 LSTM
· 多种股票对比分析
· 行情可视化
· 股票组合投资建议
· 历史股票走势可视化
项目介绍
本系统基于 Flask 框架构建股票市场行情分析与预测平台,通过网络爬虫采集上证指数、创业板指数及个股数据,同时抓取公司简介、财务指标和机构预测等信息,并计算 KDJ、BOLL 等技术指标。系统提供大盘行情 K 线图、资金热点方向、资金诊断分析、股票对比分析、量化收益分析等功能模块,支持技术面与基本面的多维度分析。基于 TensorFlow 框架中的 LSTM 深度学习模型,用户可设置模型参数进行股价预测,以折线图展示历史与预测价格走势,为投资提供趋势分析参考。
2、项目界面
(1)大盘行情分析
该股票数据可视化页面,通过K线图结合布林带指标,展示大盘指数的历史走势,支持切换不同指数查看,并提供鼠标悬停查看详细交易数据的交互功能,帮助用户直观分析市场趋势。

(2)注册登录界面
该股票数据可视化系统首页,提供用户登录注册入口,并介绍股票信息采集、龙虎榜分析、股票诊断分析、可视化平台构建四大核心功能,为用户提供多维度的股票数据服务。

(3)资金热点方向
该页面为资金热点方向分析模块,以表格形式展示股票的排名、涨跌幅、所属板块及多周期主力资金净占比数据,可帮助用户快速识别市场资金流向与热门个股。

(4)资金诊断分析----技术面和基本面
该股票诊断分析页面,提供股票代码输入查询功能,以K线图结合布林带、KDJ、MACD等技术指标图表,直观展示个股的技术面走势与信号,帮助用户进行多维度的技术分析。

(5)股票对比分析----技术面和基本面对比
该股票对比分析页面,支持输入两只股票代码,提交后同步展示各自的K线及布林带走势图,并列出主要财务指标,可直观对比个股的技术面走势与基本面数据,辅助用户进行综合比较。

(6)股票量化收益分析----股票收益率量化分析与诊股
该股票量化收益分析页面,支持输入股票代码查询,以K线图结合布林带展示股价走势,并通过日收益率与累计收益率图表呈现收益波动,同时展示年化收益率与最大回撤等关键指标,为量化分析提供数据支撑。

(7)股票价格预测----LSTM神经网络预测(输入模型时间窗口、测试集数据占比、训练轮次)
该股票价格预测页面,基于LSTM神经网络模型,支持输入股票代码并设置模型参数,训练后以折线图对比展示历史价格与预测价格走势,直观呈现预测结果,辅助用户判断未来股价趋势。

3、项目说明
一、技术栈简要说明
本系统采用 Python 语言开发,基于 Flask 框架搭建后端服务,使用 SQLite 数据库进行数据存储,前端利用 Echarts 实现数据可视化,运用深度学习 TensorFlow 框架中的 LSTM 模型进行股票价格预测。
二、功能模块详细介绍
· 用户注册、登录、找回密码、基本信息修改
系统提供完整的用户账户管理功能。新用户可通过注册页面创建账户,已注册用户通过登录界面输入凭证进行身份验证。支持找回密码功能,用户可通过邮箱或其他验证方式重置密码。个人中心支持基本信息修改,包括昵称、联系方式等,保障用户账户安全与个性化管理。
· 大盘行情分析
该页面通过 K 线图结合布林带指标,展示大盘指数的历史走势,支持切换上证指数、创业板指数等不同指数查看,并提供鼠标悬停查看详细交易数据的交互功能,帮助用户直观分析市场整体趋势与波动规律。
· 股票数据实时获取
系统通过网络爬虫技术实时采集股票数据,包括上证指数、创业板指数等大盘指数以及个股行情,同时抓取股票公司的简介、财务指标和机构预测等信息,并进行 KDJ、BOLL 等技术指标的计算,为后续分析提供数据基础。
· 股票预测 LSTM
该页面基于 LSTM 神经网络模型进行股价预测。用户可输入股票代码并设置模型参数(如时间窗口、测试集数据占比、训练轮次),模型训练后以折线图对比展示历史价格与预测价格走势,直观呈现预测结果,辅助用户判断未来股价趋势。
· 多种股票对比分析
该页面支持输入两只股票代码,提交后同步展示各自的 K 线及布林带走势图,并列出主要财务指标,可直观对比个股的技术面走势与基本面数据,辅助用户进行综合比较,筛选更具投资价值的股票。
· 行情可视化
系统提供多维度行情可视化功能,包括大盘 K 线图、资金热点方向表格(展示股票排名、涨跌幅、所属板块及多周期主力资金净占比)、资金诊断分析(技术面 K 线图结合布林带、KDJ、MACD 等指标),帮助用户快速识别市场资金流向与个股技术信号。
· 股票组合投资建议
基于量化分析与技术面、基本面综合诊断,系统为用户提供股票组合投资建议,辅助投资者优化资产配置,降低单一股票风险,提升投资组合的稳健性。
· 历史股票走势可视化
系统支持查询个股的历史走势,以 K 线图结合布林带展示股价变化,并通过日收益率与累计收益率图表呈现收益波动,同时展示年化收益率与最大回撤等关键指标,为量化分析和历史回测提供数据支撑。
· 股票量化收益分析
该页面支持输入股票代码查询,以 K 线图结合布林带展示股价走势,并通过日收益率与累计收益率图表呈现收益波动,同时展示年化收益率与最大回撤等关键指标,为量化分析提供数据支撑,帮助用户评估股票的风险收益特征。
三、项目总结
本系统基于 Flask 框架构建股票市场行情分析与预测平台,通过网络爬虫采集上证指数、创业板指数及个股数据,同时抓取公司简介、财务指标和机构预测等信息,并计算 KDJ、BOLL 等技术指标。系统提供大盘行情 K 线图、资金热点方向、资金诊断分析、股票对比分析、量化收益分析等功能模块,支持技术面与基本面的多维度分析。用户可通过注册登录管理个人账户。基于 TensorFlow 框架中的 LSTM 深度学习模型,用户可设置模型参数进行股价预测,以折线图展示历史与预测价格走势,为投资提供趋势分析参考。系统整合了数据采集、可视化分析、量化评估与智能预测,为股票投资者提供了全面的决策支持工具。
4、核心代码
python
# 定义路由,预测股票价格
@app.route('/predict_stock_price/<code>/<look_back>/<test_ratio>/<train_epochs>')
def predict_stock_price(code, look_back, test_ratio, train_epochs):
# 获取股票历史数据
prices_df = spider.get_stock_kline_factor_datas(security_code=code, period='day', market_type=None)
prices_df = prices_df.sort_values(by='date', ascending=True)
prices_df.to_excel('stock_data.xlsx', index=False)#保存数据
print(prices_df.head())
test_count = int(float(test_ratio) * prices_df.shape[0]) # 计算测试集数量
train = prices_df['close'].values.tolist()[:-test_count] # 获取训练集数据
test = prices_df['close'].values.tolist()[-test_count:] # 获取测试集数据
# 创建数据集
def create_dataset(prehistory, dataset, look_back):
dataX = []
dataY = []
history = prehistory
for i in range(len(dataset)):
x = history[i:(i + look_back)]
y = dataset[i]
dataX.append(x)
dataY.append(y)
history.append(y)
return np.array(dataX), np.array(dataY)
look_back = int(look_back)
trainX, trainY = create_dataset([train[0]] * look_back, train, look_back) # 创建训练集
testX, testY = create_dataset(train[-look_back:], test, look_back) # 创建测试集
# 根据参数构建lstm模型
def create_lstm_model():
model = Sequential()
model.add(Dense(6, input_dim=look_back, activation='relu'))
model.add(Dropout(0.01))
model.add(Dense(4, input_dim=look_back, activation='relu'))
model.add(Dense(1))
model.compile(loss='mean_absolute_error', optimizer='adam')
return model
model = create_lstm_model() # 创建lstm模型
train_epochs = int(train_epochs)
model.fit(trainX, trainY, epochs=train_epochs, batch_size=4, verbose=1) # 训练模型
# 计算模型的准确率
train_score = model.evaluate(trainX, trainY, verbose=0)
print('模型的准确率: %.2f' % (1 - train_score))
# 预测
lstm_predictions = model.predict(testX)
lstm_predictions = [float(r[0]) for r in lstm_predictions]
lstm_error = mean_absolute_error(testY, lstm_predictions) # 计算预测误差
print('Test MSE: %.3f' % lstm_error)
lstm_predictions = train + lstm_predictions # 将预测结果添加到训练集数据后面
all_time = prices_df['date'].values.tolist() # 获取所有日期数据
future_x = [] # 初始化未来预测数据列表
pred_price = testY[-1] # 获取最后一个测试集数据的预测价格
future_count = 20 # 设置未来预测天数
for future in range(future_count):
ratio = random.random() / 100 if random.random() > 0.1 else -random.random() / 100 # 随机生成涨跌比例
pred_price *= (1 + ratio) # 计算未来预测价格
future_x.append(pred_price) # 将未来预测价格添加到列表中
all_time.append('未来1交易日') # 将未来预测日期添加到列表中
print(future_x)
all_data = prices_df['close'].values.tolist() # 获取所有收盘价数据
all_data += [None] * 5 # 添加空值
lstm_predictions = lstm_predictions + future_x # 将未来预测价格添加到预测结果中
return jsonify({'all_time': all_time, # 返回所有日期数据
'all_data': all_data, # 返回所有收盘价数据
'add_predict': lstm_predictions, # 返回预测结果
'test_count': future_count, # 返回未来预测天数
'error': lstm_error}) # 返回预测误差
# 定义路由,股票量化分析与诊股
@app.route('/stock_quant_analysis/<stock_input>')
def stock_quant_analysis(stock_input):
"""
股票收益率量化分析与诊股
"""
market_type = None
if stock_input == '上证指数':
stock = {'code': '000001', 'name': '上证指数'}
market_type = 1
elif stock_input == '深证成指':
stock = {'code': '399001', 'name': '深证成指'}
elif stock_input == '中小板指':
stock = {'code': '399005', 'name': '中小板指'}
elif stock_input == '创业板指':
stock = {'code': '399006', 'name': '创业板指'}
elif stock_input == '沪深300':
stock = {'code': '399300', 'name': '沪深300'}
elif stock_input == '北证50':
stock = {'code': '899050', 'name': '北证50'}
else:
stock = search_stock_eastmoney(stock_input)
print(stock)
# 获取该股票的历史数据,前端绘制 K 线图
# 获取历史K线数据
stock_df = spider.get_stock_kline_factor_datas(security_code=stock['code'], period='day', market_type=market_type)
stock_df = stock_df[['date', 'open', 'close', 'low', 'high']]
stock_df.sort_values(by='date', ascending=True, inplace=True)
kline_data = stock_df.values.tolist()
# 计算 BOLL 指标
stock_df['boll_mid'] = stock_df['close'].rolling(26).mean()
close_std = stock_df['close'].rolling(20).std()
stock_df['boll_top'] = stock_df['boll_mid'] + 2 * close_std
stock_df['boll_bottom'] = stock_df['boll_mid'] - 2 * close_std
# 计算日收益率
stock_df['pct_chg'] = stock_df.close.pct_change()
# 计算对数收益率
stock_df['log_ret'] = np.log(stock_df.close / stock_df.close.shift(1))
# 计算累计收益率
print('对数收益率进行累计求和,可以计算出所有时间点上的收益率')
stock_df['cumulative_rets'] = stock_df.log_ret.cumsum().values
stock_df.fillna({'cumulative_rets': 0}, inplace=True)
# 计算年化收益率
year_ret = analysis_util.calc_annualized_returns(stock_df['cumulative_rets'].values[-1], days=stock_df.shape[0])
# 计算最大回撤
reward_days = analysis_util.calc_maximum_drawdown(stock_df['cumulative_rets'].values)
name = '{}({})'.format(stock['name'], stock['code'])
hint = '{},年化收益率:<span style="color:{}">{}</span>, 最大回撤:<span style="color:{}">{}</span>'.format(
name,
'red' if year_ret > 0 else 'green',
'{:.4f}%'.format(year_ret * 100),
'red' if reward_days > 0 else 'green',
'{:.4f}%'.format(reward_days * 100)
)
stock_df.fillna('-', inplace=True)
return jsonify({
'name': hint,
'kline_data': kline_data,
'boll_data': {
'UPPER': stock_df['boll_top'].values.tolist(),
'LOWER': stock_df['boll_bottom'].values.tolist(),
'MIDDLE': stock_df['boll_mid'].values.tolist()
},
'date': stock_df['date'].values.tolist(),
'日收益率': stock_df['pct_chg'].values.tolist(),
'日对数收益率': stock_df['log_ret'].values.tolist(),
'累计收益率': stock_df['cumulative_rets'].values.tolist(),
})
if __name__ == "__main__":
app.run(host='127.0.0.1', debug=False)
5、项目列表





6、项目获取方式
🍅**由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。**🍅
点赞、收藏、关注,不迷路,下方查看 👇🏻获取联系方式👇🏻