股票学习网

如何学炒股,入门炒股,股票入门,股票怎么玩,学习炒股网,股票技术,股票知识学习 - - 股票知识网!

炒股票软件与炒股票软件 python

2024-03-29 13:41分类:均线 阅读:

中资互联网券商老虎证券发布新闻稿宣布,推出了基于ChatGPT的金融问答人工智能(AI)“TigerGPT”,公司宣称这是业内首例在投资软件中部署AI投资助手。据介绍,TigerGPT属于运用老虎国际的金融数据库及OpenAI技术开发的文本生成式AI聊天机器人,目标是为用户提供智能的全球投资决策支持,初期以繁体中文、简体中文及英文版本为基础,未来会新增支持粤语等其他语言。

AI+金融:同花顺、财富趋势、恒生电子、金证股份

同花顺

公司亮点:公司的经营范围包括计算机、电子产品的技术开发、技术服务、成果转让,计算机软硬件的销售,设计、制作、发布、代理国内各类广告。[1]主要业务分为证券信息服务软件、手机证券软件和交易系统软件销售及维护。

走势:同花顺目前的走势虽然成交量不大,但形态有所走坏,所以预期还是要往下方5天线和年线这个区域回落的,等企稳之后再留意反弹机会。

财富趋势

公司亮点:深圳市财富趋势科技股份有限公司是国内证券行情交易系统软件产品的重要提供商,主营业务是面向证券公司等金融机构客户提供安全、稳定、可靠的金融软件解决方案,为证券公司等金融机构建设其投资者行情交易终端、终端用户信息系统以及客户服务系统等。同时为终端投资者客户提供专业、高效的证券信息服务。

趋势:股价处在明显的上升趋势中,形态出现之前的涨幅越大越好。

恒生电子

公司亮点:公司的主营业务是为金融机构提供IT软件产品与服务,主要提供自行开发研制的软件、定制软件、系统集成和科技园开发等产品。公司的产品长期在业内处于领先地位。
 

趋势:个股近期高位回落态势。目前下跌过程中,量能较大。短期支撑位或在60日均线附近。若跌破均线,后续或有继续调整的可能。

金证股份

公司亮点:国内最大的金融证券软件开发商和系统集成商之一;是一家主要从事金融证券软件和政府、金融、企业、教育的系统集成的公司,主要为证券、银行、基金、保险、信托、期货、交易所、登记公司、理财公司等金融行业客户提供系统软件开发、搭建、维护以及软件产品出售等服务。
 

趋势:图形来看个股近期走势冲高后回落盘整,目前股价回踩10日线附近,短线可以暂时观察,后续留意个股能否站稳10日线之上。

 

 

股票市场涨涨跌跌,好像毫无规律,但有一些人却凭借自己的直觉掌握了一些特殊规律,从而实现在股票上的实现斩获。现在在人工智能时代,Python+AI框架,无疑会利用人工智能优势可以对股票市场进行特征学习,抓取比凭借个人感觉更多的股票数字特征。本文要介绍的就是利用Python+keras对股票进行时间序列上的数字特征预测。

 

用Python结合人工智能尝试预测股票,会成就下一个股神?

 

预备条件:

假设您熟悉python,并且已经在系统中安装了python 3。本教程中使用了jupyter笔记本。您可以使用自己喜欢的IDE

使用的数据集:

本教程中使用的数据集是基于Tushare获取的股票信息。更多股票代码可以用下面的搜索工具获取。至于Tushare的使用,可以参考以前的文章学习。

 

 

搜更多精彩内容

 

股票查询

 

 

 

安装所需的库

对于此项目,您需要在python中安装以下软件包。如果未安装,则只需使用即可pip install PackageName。

NumPy —该库提供快速计算的n维数组对象。

Pandas —它提供了一个数据框和序列,可以对数据执行操作和分析。

matplotlib —该库有助于使用各种图表来可视化数据。

scikit-learn —这是一个机器学习库,提供了用于预测分析的各种工具和算法。我们将使用其工具或功能进行数据预处理。

Keras —这是一个基于TensorFlow的高级深度学习库,用于提供神经网络的简单实现。我们之所以使用它,是因为它对初学者友好且易于实施。

TensorFlow -这个库是由所需Keras作为Keras运行在TensorFlow本身。

开始编码

首先,需要导入将在项目中使用的库。在这里,numpy用于创建NumPy数组以训练和测试数据。pandas用于制作数据集的数据框并轻松检索值。matplotlib.pyplot绘制总体股价和预测价格之类的数据。MinMaxScaler从sklearn的(scikit-learn)预处理程序包中进行归一化处理。Sequential dense LSTM Dropout从Keras导入了数据,将有助于创建深度学习模型。稍后将讨论这些模块。

import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler #for deep learning model from keras import Sequential from keras.layers import Dense from keras.layers import LSTM from keras.layers import Dropout

现在,将数据集作为数据框加载到名为df的变量中。然后,检查了数据集的形状,结果为(2035,8)表示数据集中有2035行和8列。之后,将数据集上下颠倒过来,以便日期从最早的日期开始到最近的日期,这样做还必须重置索引。然后,打印数据集的一些开始行head()。

df = pd.read_csv('tu.csv') df.shape df = df[::-1] df = df.reset_index(drop=True) df.head()

数据集的前5个条目

仅选择了一个“ 开放”功能来训练的模型,但是您可以自由选择多个功能,但是随后将相应地更改代码。在训练集中,有2000个值,而在测试中,只选择35个值。然后简单地打印了两个类别的数据,分别train_set test_set是(2000,1)和(35,1)。

open_price = df.iloc[:,1:2] train_set = open_price[:2000].values test_set = open_price[2000:].values print("Train size: ",train_set.shape) print("Test size:",test_set.shape)

在这里,将Date列转换为DateTime格式以方便地进行绘制。然后简单地用于plot_date绘制整个时间轴上的股票开盘价的图,并使用保存该图savefig。

dates = pd.to_datetime(df['Date']) plt.plot_date(dates, open_price,fmt='-') plt.savefig("test1final.png")

现在,已经初始化了MinMaxScalar用于缩放0到1范围内的每个值的。这是非常重要的一步,因为当特征处于相对相似的缩放比例时,神经网络和其他算法的收敛速度更快。

sc = MinMaxScaler() train_set_scaled = sc.fit_transform(train_set)

棘手的部分到了。现在,必须使数据适合我们的RNN模型,即使用目标最终值制作数据序列。让我用这个例子来解释。假设数据集的值介于1到10之间,并且序列长度为3。在这种情况下,训练数据如下所示:

序列训练数据示例

在代码中,序列的长度为60,这意味着只有前60个值将决定下一个值,而不是整个数据集。之后,创建了NumPy x_train和NumPy数组以y_train进行快速计算,并根据模型的要求重塑了训练集。的最终形状为x_train(1940,60,1)。

x_train = [] y_train = [] for i in range(60,2000): x_train.append(train_set_scaled[i-60:i,0]) y_train.append(train_set_scaled[i,0]) x_train = np.array(x_train) y_train = np.array(y_train)x_train = np.reshape(x_train,(x_train.shape[0],x_train.shape[1],1)) x_train.shape

现在,将创建模型的架构。使用Keras是因为与其他可用库相比,使用Keras进行深度学习模型非常容易。在这里,初始化了Sequential对象,该对象充当模型内所有图层的捆绑程序。模型总共有4个LSTM层和1个致密层。

LSTM(长期短期记忆)是一种递归神经网络,具有一些上下文状态单元,它们充当长期或短期记忆单元,并且这些单元调节输出。当需要根据历史背景而不是仅根据最后的输入来预测输出时,这一点很重要。例如,必须预测序列3,4,5 ,?中的下一个数字。那么输出就是6(x + 1),但是顺序为0,2,4 ,? 输出也是6,但是它也取决于上下文信息

Dropout用于通过一次简单地停用某些单元(神经元)来防止数据过拟合。在案例中,一次会停用20%的单元。最后,有一个包含1个单位的密集层,可提供预测值。

然后,只需使用优化程序编译模型,然后将模型拟合到数据上,然后运行20次迭代即可。

reg = Sequential()reg.add(LSTM(units = 50,return_sequences=True,input_shape=(x_train.shape[1],1))) reg.add(Dropout(0.2))reg.add(LSTM(units = 50,return_sequences=True)) reg.add(Dropout(0.2))reg.add(LSTM(units = 50,return_sequences=True)) reg.add(Dropout(0.2))reg.add(LSTM(units=50)) reg.add(Dropout(0.2))reg.add(Dense(units=1)) reg.compile(optimizer = 'adam',loss='mean_squared_error') reg.fit(x_train,y_train, epochs=20, batch_size =1,verbose=2)

每次迭代的损失

如您所见,模型收敛于15 个epoch,总共花了90分钟才能运行20次。是的,RNN模型需要时间训练。

RNN模型需要时间

现在,是时候为测试创建输入了。的形状input为(95,1),下面也缩放了此数据。

input = open_price[len(open_price)-len(test_set)-60:].values input.shape input = sc.transform(input)

这是最后一部分,其中简单地制作数据序列以预测最近35天的库存值。第一个序列包含从1至60的数据来预测第61个值,第二个序列包含从2到61的数据来预测第62个值,依此类推。的形状x_test是(35,60,1),这说明了这一点。

x_test = [] for i in range(60,95): x_test.append(input[i-60:i,0]) x_test = np.array(x_test) x_test = np.reshape(x_test,(x_test.shape[0],x_test.shape[1],1)) x_test.shape

最终,只是预测使用值predict定义的模型的功能,并绘制最后35个某种给定股票的实际和预测值。

pred = reg.predict(x_test) pred = sc.inverse_transform(pred) plt.plot(test_set,color='green') plt.plot(pred,color='red') plt.title('股票预测') plt.show()

最后具体运行结果就作为作业留给大家自行完成。但可以很乐观的告诉大家,模型在某些特定时间段上预测给定股票的未来趋势方面非常准确

但是,距离成为股票市场上的出色顾问还会有比较大的挑战。

下一步目标

通过合并更多功能增加数据集以及调整模型本身,可以进一步改善模型

https://www.suoduoma.com

上一篇:股市入门书籍推荐还有个人怎么炒股票入门

下一篇:炒股短线选股技巧有哪些以及短线如何快速选股

相关推荐

返回顶部