python炒股学习软件_要炒股,学Python-LSTM学习
这里数据是基于kaggle ,New York Stock Exchange 主要关注序列分析,当然真实炒股还要很多维度的分析,特别中国更要看宏观分析,比如kaggle有根据新闻数据辅助预测的比赛。真的炒股还需要各种操盘软件了。
总之股市有风险入市需谨慎,可以学习多角度分析。
数据读取
from __future__ import print_function
import numpy as np
import pandas as pd
import os
from subprocess import check_output
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
from sklearn.model_selection import train_test_split
import time #helper libraries
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
from numpy import newaxis
import warnings
warnings.filterwarnings("ignore")
def readData(path):
"""
使用pandas读取数据
"""
data = pd.read_csv(path)
cols = list(data.columns.values)
return data[cols]
if __name__ == "__main__":
# 设置显示格式
pd.set_option('display.width', 1000)
homePath = os.path.dirname(os.path.abspath('__file__'))
# Windows下的存储路径与Linux并不相同
if os.name == "nt":
dataPath = "%s\\prices.csv" % homePath
else:
dataPath = "%s/prices.csv" % homePath
prices = readData(dataPath)
可以看数据,是基本的股票数据,包括开盘价,收盘价,最低价,最高价,交易量等。
取一只雅虎股票来分析,
yahoo = prices[prices['symbol']=='YHOO']
yahoo_stock_prices = yahoo.close.values.astype('float32') #取收盘价
yahoo_stock_prices = yahoo_stock_prices.reshape(1762, 1) #转为数组
yahoo_stock_prices.shape
#查看价格趋势
print(yahoo.head())
plt.plot(yahoo_stock_prices)
plt.show()
image.png
分训练测试集
train_size = int(len(yahoo_stock_prices) * 0.80) #前80%数据作为训练
test_size = len(yahoo_stock_prices) - train_size
train, test = yahoo_stock_prices[0:train_size,:], yahoo_stock_prices[train_size:len(yahoo_stock_prices),:]
print(len(train), len(test))
将数组转换为数据的矩阵
def create_dataset(dataset, look_back=1): #look_back默认为1表示预测一天后的
dataX, dataY = [], [] #dataX为原始数据列,y就是它下一天的值,转为自回归问题。
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back), 0] #t+look_bak时刻之前的数据
dataX.append(a)
dataY.append(dataset[i + look_back, 0]) #t+look_back的数据
return np.array(dataX), np.array(dataY)
# reshape into X=t and Y=t+1
#t时刻以及t前的数据预测t+1时刻的值
look_back = 1
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)
转为矩阵格式
trainX = trainX.reshape(trainX.shape[0], 1, trainX.shape[1])
testX = testX.reshape(testX.shape[0], 1, testX.shape[1])
trainX.shape
建模
model = Sequential() #初始化序列模型
model.add(LSTM(
input_dim=1,
output_dim=50,
return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(
100,
return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(
output_dim=1))
model.add(Activation('linear'))
start = time.time()
model.compile(loss='mse', optimizer='rmsprop')
print ('compilation time : ', time.time() - start)
训练
model.fit(
trainX,
trainY,
batch_size=128,
nb_epoch=10,
validation_split=0.05)
def plot_results_multiple(predicted_data, true_data,length):
plt.plot(scaler.inverse_transform(true_data.reshape(-1, 1))[length:])
plt.plot(scaler.inverse_transform(np.array(predicted_data).reshape(-1, 1))[length:])
plt.show()
#predict lenght consecutive values from a real one
def predict_sequences_multiple(model, firstValue,length):
prediction_seqs = []
curr_frame = firstValue
for i in range(length):
predicted = []
print(model.predict(curr_frame[newaxis,:,:]))
predicted.append(model.predict(curr_frame[newaxis,:,:])[0,0])
curr_frame = curr_frame[0:]
curr_frame = np.insert(curr_frame[0:], i+1, predicted[-1], axis=0)
prediction_seqs.append(predicted[-1])
return prediction_seqs
predict_length=5
predictions = predict_sequences_multiple(model, testX[0], predict_length)
print(scaler.inverse_transform(np.array(predictions).reshape(-1, 1)))
plot_results_multiple(predictions, testY, predict_length)
python炒股学习软件_要炒股,学Python-LSTM学习相关推荐
- 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...
AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...
- python积木编程软件_最新海龟编辑器(Python编辑器)v0.6.1 官方版下载地址电脑版-锐品软件...
海龟编辑器是编程猫推出的一款Python编辑器,专门针对少儿Python学习,让孩子通过简单的方式,爱上Python,学会Python,软件界面简洁,使用方便,想要快速学习Python的用户,不妨试试 ...
- python培训一般多久_零基础学python需要多久
一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...
- python赋值运算符难理解_零基础学 Python(8)运算符 — 算术、比较、赋值、逻辑...
Python 的运算符有:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.位运算符.身份运算符.本章主要讲解 Python 的算术运算符.比较运算符.赋值运算符.逻辑运算符. 算术运算符 ...
- python中数据读写_【循序渐进学Python——文件中数据的读写以及操作】
[循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] [循序渐进学Python--文件中数据的读写以及操作] 相信大家都想过自己有一天,可以用 ...
- Python 图像 一样大小_#带你学Python# 表白利器:用Python发微信表情画-带你认识图片的秘密...
首先感谢大家对上篇文章"python实现传染病模型"的肯定: 孙小白:#带你学Python# 疫情当前,在家没事?你也可以用Python预测疫情发展zhuanlan.zhihu. ...
- python处在哪个阶段_如何在学Python的过程中更好地成长技术
Python是一门编程语言,所以重点在于如何用好这门语言,只有能够做好项目,才能证明自己逐步掌握好了这门语言.在学习阶段,最终的目标是要尝试着自己用Python搭建一个网站,也算是对自己学习成果的一种 ...
- 高中必备学习软件_有哪些适合高中生的学习软件?
先来推荐一波实质的干货推荐,必备软件!!! 『作文纸条』 这个APP真的要夸! 界面简洁,排版美观,每天都向你推送最新的素材,最重要的是里面有一群爱写作的大佬每天都在写作文!!!这么好的宝藏APP怎么 ...
- 32岁学python有前途吗_新手小白学Python有前途吗
很多同学在选择学习python之初,可能都有这样的疑惑:学Python有前途吗?对于新兴的事物,人们慢慢接受是需要一个过程的,那究竟学python有没有前途呢?今天北大青鸟小编就来给大家指导一下迷津. ...
- python新手怎么入门_新手怎么学Python?Python入门必看!
原标题:新手怎么学Python?Python入门必看! 作为新手,学习一门编程语言无疑是一头雾水,上海尚观科技为了让大家在学习Python编程的时候,有一个学习方向,在这里给大家分享了的方法,希望能帮 ...
最新文章
- 记录PCLVisualizer问题
- 袁哥写的漏洞研究方法总结
- substr vs substring
- mysql实现查询最近7天的数据
- 累积分布函数_C7: 概率函数和分布函数Distribution Function
- vs 常见问题汇总
- android webview 字体 系统字体大小,Android 系统字体大小动态改变,导致webview中显示不兼容的问题解决...
- 关于从EXCEL中导入到SQL server中的问题
- Vue组件间的传值五大场景,你造吗?
- 在shell脚本中使用*正则的问题
- QT 网络编程之https
- Pr剪辑上分攻略 -- 动漫电影混剪
- C/C++实现刮刮乐-刮奖区,刮出一套房
- csma研究背景_CSMA/CD协议的特点
- 交换机的工作模式:IVL和SVL
- 水井坊VS舍得酒业,谁是A股川酒“老三“?
- VS code 下载加速 中文设置 中英文切换 中文注释乱码
- Android开发 - PsyDuck说明书
- TextView(文本框)
- Python批量爬取王者荣耀英雄高清壁纸