更新:我预测哪些数据可以通过调整收盘价来获得未来预测?

问题描述

我编写了一个 Python 代码,可以使用统计数据、机器学习和深度学习模型进行预测。不过,如果您指出我的以下想法在预测股票未来价格时出了什么问题,我将不胜感激。

  1. 下载历史数据。
  2. 添加技术指标作为功能
  3. 通过将“调整后的收盘价”价格向后移动要预测的天数(例如“days_to_predict”)来创建目标列,从而在空单元格中获得 NaN。
  4. 删除“成交量”、“调整收盘价”、“收盘价”、“低价”、“开盘价”和“高价”列。
  5. 将与 NaN 对应的特征数组中的最后“days_to_predict”行复制到另一个名为“X_forecast”的变量中。
  6. 从特征中删除这些行以及目标列中的 NaN。
  7. 将特征和目标数组拆分为训练集和测试集。
  8. 进行特征/训练集缩放。
  9. 使用训练集训练模型。
  10. 使用测试集测试模型的性能
  11. 使用模型预测 X_forcast。

虽然我为此付出了很多努力,但我并没有得到准确的结果。我的问题是:我是否抓住了错误的 X_forecast?请告诉我我的算法出了什么问题,或者更好的是,是否有另一种我不知道的获取 X_forecast 的方法

以下是前一天的示例代码

import pandas_datareader as web
import numpy as np
from datetime import datetime,date,timedelta

start_date = '01/01/2004'
end_date = date.today()
ticker = 'TSLA'
data_source = 'yahoo' 
days_into_the_future = 1
test_size = 0.25

df = web.DataReader(ticker,data_source,start_date,end_date)
data = {}
data['df'] = df.copy()
data['df']['target'] = data['df']['Adj Close'].shift(-days_into_the_future)
data['df'] = data['df'].drop(['Volume','Adj Close','Close'],1)
data['X_forecast'] = data['df'].iloc[-days_into_the_future:,:-1]
data['df'] = data['df'].dropna()
data['feature'] = data['df'].drop(['target'],1)
data['target'] = data['df'].iloc[:,-1]

X = np.array(data['feature'])
y = np.array(data['target'])
timefeatures = data['feature'].index  

# split the dataset into training & testing sets by date
train_samples = int((1 - test_size) * len(X))
data["X_train"] = X[:train_samples]
data["y_train"] = y[:train_samples]
data["X_test"]  = X[train_samples:]
data["y_test"]  = y[train_samples:]
data["dates_train"] = timefeatures[:train_samples] # Extract the dates of train and test set dates
data["dates_test"] = timefeatures[train_samples:]

from sklearn.linear_model import LinearRegression
model = LinearRegression()
history = model.fit(data['X_train'],data['y_train']) 

predictionlineReg = history.predict(data['X_test'])  # Linear regression
predictionlineRegfuture = history.predict(data['X_forecast'])[0] # For tomorrow's prediction

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)