下载
登录/ 注册
主页
论坛
视频
热股
可转债
下载
下载

朴阳机器学算法交易

21-02-24 19:54 312次浏览
知道他的痛
+关注
博主要求身份验证
登录用户ID:
示例:时间序列预测:数据指标按时间维度统计形成序列,通过对时间序列波动的信息进行分解,分解成为可预测部分和不可预测部分,进行分类出长期趋势、季节变动、循环(周期)变动和随机波动四部分,进而实现趋势的相对精准预测。LSTM算法广泛应用于时间序列预测问题,是一种非常有效的方法。

LSTM算法代码实现:
#importing required libraries
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM

#creating dataframe
data = df.sort_index(ascending=True, axis=0)
new_data = pd.DataFrame(index=range(0,len(df)),columns=[‘Date‘, ‘Close‘])
for i in range(0,len(data)):
new_data[‘Date‘] = data[‘Date‘]
new_data[‘Close‘] = data[‘Close‘]

#setting index
new_data.index = new_data.Date
new_data.drop(‘Date‘, axis=1, inplace=True)

#creating train and test sets
dataset = new_data.values

train = dataset[0:987,:]
valid = dataset[987:,:]

#converting dataset into x_train and y_train
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(dataset)

x_train, y_train = [], []
for i in range(60,len(train)):
x_train.append(scaled_data[i-60:i,0])
y_train.append(scaled_data[i,0])
x_train, y_train = np.array(x_train), np.array(y_train)

x_train = np.reshape(x_train, (x_train.shape[0],x_train.shape[1],1))

# create and fit the LSTM network
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(x_train.shape[1],1)))
model.add(LSTM(units=50))
model.add(Dense(1))

model.compile(loss=‘mean_squared_error‘, optimizer=‘adam‘)
model.fit(x_train, y_train, epochs=1, batch_size=1, verbose=2)

#predicting 246 values, using past 60 from the train data
inputs = new_data[len(new_data) - len(valid) - 60:].values
inputs = inputs.reshape(-1,1)
inputs = scaler.transform(inputs)

X_test = []
for i in range(60,inputs.shape[0]):
X_test.append(inputs[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))
closing_price = model.predict(X_test)
closing_price = scaler.inverse_transform(closing_price)

待续

打开淘股吧APP
0
评论(0)
收藏
展开
热门 最新
提交