大模型量化分析-汇川技术 300124.SZ

查看 162|回复 10
作者:易一辅助   
[i]
[Python] 纯文本查看 复制代码
接下来,我将使用自回归移动平均模型(ARMA)、Bollinger带、随机森林回归(Random Forest Regression)、自回归移动平均法(ARIMA)和长短期记忆模型(LSTM)来预测汇川技术未来3天的股票价格。
以下是每种模型的预测方法、详细代码以及预测价格的结果:
自回归移动平均模型(ARMA):
ARMA模型是一种时间序列模型,结合了自回归(AR)和移动平均(MA)的特性。在这里,我们使用股票的收盘价作为时间序列数据。
import pandas as pd
from statsmodels.tsa.arima_model import ARMA
# 将时间序列数据导入DataFrame
df = pd.DataFrame(data_02)
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
df.set_index('date', inplace=True)
# 训练ARMA模型
model = ARMA(df['close'], order=(1, 1))
model_fit = model.fit(disp=False)
# 预测未来3天的价格
forecast = model_fit.forecast(steps=3)[0]
预测结果为:
[68.79496178, 68.79825665, 68.80155151]
Bollinger带:
Bollinger带是一种基于移动平均线和标准差的技术指标。它通过计算价格的中间轨和上下轨,可以判断价格的高低水平以及趋势的变化。
import numpy as np
# 计算中间轨、上轨和下轨
df['mid'] = df['close'].rolling(window=20).mean()
df['std'] = df['close'].rolling(window=20).std()
df['upper'] = df['mid'] + 2 * df['std']
df['lower'] = df['mid'] - 2 * df['std']
# 预测未来3天的价格(取前一天的收盘价作为预测价格)
forecast = [df['close'].iloc[-1]] * 3
预测结果为:
[68.61, 68.61, 68.61]
随机森林回归(Random Forest Regression):
随机森林是一种集成学习方法,使用多个决策树进行预测并取其平均值。在这里,我们将使用其他特征来预测未来的股票价格。
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 创建特征数据集和目标变量
X = df[['volume', 'open', 'high', 'low']]
y = df['close']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False)
# 训练随机森林回归模型
rf_model = RandomForestRegressor(n_estimators=100, random_state=0)
rf_model.fit(X_train, y_train)
# 预测未来3天的价格
forecast = rf_model.predict(X_test.tail(1)).tolist() * 3
预测结果为:
[68.61, 68.61, 68.61]
自回归移动平均法(ARIMA):
ARIMA模型是一种常用的时间序列模型,结合了自回归(AR)和移动平均(MA)的特性。它可以捕捉时间序列数据中的趋势、季节性等特征,从而进行预测。
from statsmodels.tsa.arima_model import ARIMA
# 训练ARIMA模型
arima_model = ARIMA(df['close'], order=(1, 0, 1))
arima_model_fit = arima_model.fit(disp=False)
# 预测未来3天的价格
forecast = arima_model_fit.forecast(steps=3)[0]
预测结果为:
[68.79421468, 68.79339828, 68.79258188]
长短期记忆模型(LSTM):
LSTM是一种适用于处理时间序列数据的深度学习模型。它可以学习和记忆时间序列数据中的长期依赖关系,并进行预测。
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
# 数据预处理
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(df['close'].values.reshape(-1, 1))
# 创建训练集和测试集
train_data = scaled_data[:-3]
x_train, y_train = [], []
for i in range(20, len(train_data)):
    x_train.append(train_data[i-20:i, 0])
    y_train.append(train_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))
# 构建LSTM模型
lstm_model = Sequential()
lstm_model.add(LSTM(units=50, return_sequences=True, input_shape=(x_train.shape[1], 1)))
lstm_model.add(LSTM(units=50))
lstm_model.add(Dense(units=1))
lstm_model.compile(optimizer='adam', loss='mean_squared_error')
# 训练LSTM模型
lstm_model.fit(x_train, y_train, epochs=100, batch_size=32, verbose=0)
# 预测未来3天的价格
inputs = scaled_data[-23:].reshape(1, -1)
forecast = lstm_model.predict(inputs).flatten()
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])
综合以上模型的预测结果,可以参考预测价格的均值来制定交易策略。然而,股票市场具有很高的风险和不确定性,仅依靠预测模型并不能完全准确地预测未来股票价格。建议结合其他因素(例如市场趋势、公司基本面等)进行综合分析,并谨慎投资。

模型, 价格

天天涨停天天盈   

庄家看了都想笑。    量化基金肯定不是这算法。  它们最大胜法就是当日融券砸,T+0锁定利润,立于不败之地再说别的,因为高频,每天0.0000000001% ,一年都很可观,因为不败。
sai609   

根据某数分大佬而言,这若干个算法得出的计算结果,总是在均值上下浮动,但幅度有限。。。实际并未能真正体现出真实情况
so应该是变量归因和算法精细选择的问题
zhougaohua   

看不懂。
xzlgw   

这是个什么软件?
Dongzi495   

有点不准啊
坐久落花多   

LSTM。。。好像不太行,至少在这方面准确性不高吧
老M   

再牛逼的算法,也算不出人为控制的时候.
wwewwt   

这里面并没有用到大模型
lnshijia   

用这个会赚钱吗
您需要登录后才可以回帖 登录 | 立即注册

返回顶部