如何用Python预测第二天的股价?

How to predict stock price for the next day with Python?

我正在尝试预测我的系列赛第二天的股票价格,但我不知道如何 "query" 我的模型。这是我在 Python:

中的代码
# Define my period
d1 = datetime.datetime(2016,1,1)
d2 = datetime.datetime(2016,7,1)

# Get the data
df = web.DataReader("GOOG", 'yahoo', d1, d2)
# Calculate some indicators
df['20d_ma'] = pandas.rolling_mean(df['Adj Close'], window=20)
df['50d_ma'] = pandas.rolling_mean(df['Adj Close'], window=50)

# Create the model
from sklearn.linear_model import LinearRegression
from sklearn.cross_validation import train_test_split

X = df[list(df.columns)[6:]] # Adj Close and indicators...
y = df['Adj Close']

X_train, X_test, y_train, y_test = train_test_split(X, y)

model = LinearRegression()
model.fit(X_train,y_train)

好的,我需要查询模型 ( model.predict(..¿?..) ) 来预测 'next' 日的股票价格。

我该怎么做?

提前致谢!!!

model.predict(X_test) 

会完成任务的。这直接来自精彩 documentation 提问前先阅读基础知识。

Edit1:回复评论,那你的特征工程有问题。您无法使用模型预测值(使用您没有价值的功能。)。您将不得不回过头来重新思考为什么选择这些功能以及它们如何影响您的结果变量等。

Edit2:可能您需要做的是两个模型,一个基于 20d-avg 的时间序列模型来预测明天的 20d-avg。然后用它来预测股票价格。我个人认为,如果您可以使用时间序列模型并获得不错的结果,则不需要第二个模型。

您可以使用作为 sklearn 一部分的 Predict()。并计算 "next" 天的 X 值(您需要通过自己的算法来定义)。

直接来自 sklearn 库源代码:

def predict(self, X):
        """Predict using the linear model
        Parameters
        ----------
        X : {array-like, sparse matrix}, shape = (n_samples, n_features)
            Samples.
        Returns
        -------
        C : array, shape = (n_samples,)
            Returns predicted values.
        """
        return self._decision_function(X)

    _center_data = staticmethod(center_data)