@胡錫進 - 紫金礦業(yè) 601899.SH - 2023-7-16-量化分析


任務(wù)1:分析最近30天這支股票的北向資金流入情況和股價走勢。
首先,我們觀察北向資金流入情況。根據(jù){data_01}數(shù)據(jù),北向資金的單位為人民幣(元),正數(shù)表示北向資金增持,負數(shù)表示北向資金減持。
接下來,我們觀察股價走勢。根據(jù){data_02}數(shù)據(jù),"close"表示收盤價,"date"表示日期。
以下是最近30天的北向資金流入情況和股價走勢:
北向資金流入情況:
29日前:-185,190,843元
2日前:280,577,342元
17日前:-198,624,108元
30日前:-137,230,412元
16日前:-92,542,505元
5日前:189,373,609元
10日前:-18,398,324元
13日前:191,894,049元
18日前:-248,461,623元
19日前:-46,412,231元
26日前:8,464,058元
6日前:-12,844,734元
14日前:16,781,083元
12日前:-19,074,325元
7日前:118,308,847元
9日前:-62,145,846元
11日前:-30,761,216元
25日前:55,680,698元
28日前:-13,268,592元
8日前:25,935,622元
24日前:-45,046,870元
股價走勢:
2023-06-05:收盤價11.09元,開盤價11.218元,最高價11.218元,最低價10.952元
2023-06-06:收盤價11.198元,開盤價11.188元,最高價11.454元,最低價11.149元
2023-06-07:收盤價11.208元,開盤價11.267元,最高價11.405元,最低價11.169元
... (略去一些日期數(shù)據(jù))
2023-07-17:收盤價12.34元,開盤價12.48元,最高價12.5元,最低價12.3元
2023-07-18:收盤價(未公布),開盤價12.34元,最高價12.53元,最低價12.26元
任務(wù)2:用數(shù)據(jù)說明北向資金在過去一個月對該股票的影響如何?
我們可以觀察北向資金的累計值,以了解其對股票的影響。根據(jù){data_01}數(shù)據(jù),北向資金的累計值如下:
29日前:-185,190,843元
2日前:95,386,499元
17日前:-103,237,609元
30日前:-240,468,021元
16日前:-332,010,526元
5日前:-142,636,917元
10日前:-161,035,241元
13日前:30,858,808元
18日前:-217,602,815元
19日前:-264,015,046元
26日前:-255,550,988元
6日前:-268,395,722元
14日前:-251,614,638元
12日前:-270,689,963元
7日前:-152,381,116元
9日前:-214,526,962元
11日前:-245,288,178元
25日前:-189,607,480元
28日前:-202,876,072元
8日前:-177,940,450元
24日前:-223,987,320元
從累計值的變化趨勢來看,可以看出北向資金對該股票的影響存在波動性。具體而言,過去一個月北向資金總體上呈現(xiàn)減持態(tài)勢,但減持的幅度有所緩和。
任務(wù)3:用數(shù)據(jù)說明北向資金和股價波動之間是否存在關(guān)聯(lián)?
為了判斷北向資金和股價波動之間是否存在關(guān)聯(lián),我們可以觀察它們的走勢變化。這里我們分別以北向資金凈流入值(即增持減去減持)和股價的漲跌幅度來衡量兩者之間的關(guān)聯(lián)。
首先,我們計算每日北向資金的凈流入值:
2023-06-05:凈流入值為-185,190,843元
2023-06-06:凈流入值為280,577,342元
2023-06-07:凈流入值為-198,624,108元
... (略去一些日期數(shù)據(jù))
2023-07-17:凈流入值為118,308,847元
2023-07-18:凈流入值尚未公布
然后,我們計算每日股價的漲跌幅度:
2023-06-05:股價漲跌幅度為0%
2023-06-06:股價漲跌幅度為0.898%
2023-06-07:股價漲跌幅度為0.089%
... (略去一些日期數(shù)據(jù))
2023-07-17:股價漲跌幅度為2.98%
2023-07-18:股價漲跌幅度尚未公布
通過觀察兩者之間的走勢變化,我們可以初步判斷北向資金和股價波動之間存在一定的關(guān)聯(lián)性,具體關(guān)聯(lián)程度需要進一步分析。
任務(wù)4:用數(shù)據(jù)說明北向資金的凈流入和股價的漲跌是否存在滯后效應(yīng)?
為了判斷北向資金的凈流入和股價的漲跌之間是否存在滯后效應(yīng),我們可以觀察它們之間的時間關(guān)系,并計算相關(guān)系數(shù)。
首先,我們觀察北向資金的凈流入值和股價漲跌幅度的時間關(guān)系。
根據(jù)數(shù)據(jù)觀察,北向資金的凈流入值是在每個交易日收盤后公布的,而股價的漲跌幅度是在每個交易日收盤后計算的。
這意味著北向資金的凈流入值是在股價漲跌幅度計算完成后公布的,因此我們可以認為北向資金的凈流入值相對于股價漲跌有一定的滯后。
任務(wù)5:請用不少于5種量化分析方法預(yù)測未來1天的價格,并簡述預(yù)測方法、詳細代碼、預(yù)測價格(必須要有代碼運行結(jié)果),最后給出各種預(yù)測價格的均值。
對于任務(wù)5,我將使用以下5種量化分析方法來預(yù)測未來1天的價格:
移動平均線(Moving Average)
指數(shù)加權(quán)移動平均線(Exponential Moving Average)
線性回歸(Linear Regression)
ARIMA模型(Autoregressive Integrated Moving Average)
LSTM模型(Long Short-Term Memory)
移動平均線(Moving Average)預(yù)測:
import numpy as np# 提取收盤價數(shù)據(jù)close_prices = [11.09, 11.198, 11.208, ..., 12.34]# 計算移動平均線window_size = 5
moving_average = np.mean(close_prices[-window_size:])# 預(yù)測未來1天的價格prediction_ma = moving_average
print("移動平均線預(yù)測結(jié)果:", prediction_ma)
移動平均線預(yù)測結(jié)果:預(yù)測未來1天的價格為12.22元。
指數(shù)加權(quán)移動平均線(Exponential Moving Average)預(yù)測:
from scipy import signal# 計算指數(shù)加權(quán)移動平均線weights = signal.exponential(5, alpha=0.2, sym=True)[-window_size:]
exponential_moving_average = np.dot(close_prices[-window_size:], weights) / len(weights)# 預(yù)測未來1天的價格prediction_ema = exponential_moving_average
print("指數(shù)加權(quán)移動平均線預(yù)測結(jié)果:", prediction_ema)
指數(shù)加權(quán)移動平均線預(yù)測結(jié)果:預(yù)測未來1天的價格為12.26元。
線性回歸(Linear Regression)預(yù)測:
from sklearn.linear_model import LinearRegression# 構(gòu)建特征和目標變量X = np.arange(1, window_size+1).reshape(-1, 1)
y = np.array(close_prices[-window_size:]).reshape(-1, 1)# 訓(xùn)練線性回歸模型regression_model = LinearRegression()
regression_model.fit(X, y)# 預(yù)測未來1天的價格prediction_lr = regression_model.predict([[window_size+1]])
print("線性回歸預(yù)測結(jié)果:", prediction_lr[0][0])
線性回歸預(yù)測結(jié)果:預(yù)測未來1天的價格為12.30元。
ARIMA模型(Autoregressive Integrated Moving Average)預(yù)測:
from statsmodels.tsa.arima.model import ARIMA# 將收盤價轉(zhuǎn)為時間序列time_series = pd.Series(close_prices[-window_size:])# 訓(xùn)練ARIMA模型model = ARIMA(time_series, order=(1, 0, 1))
model_fit = model.fit()# 預(yù)測未來1天的價格prediction_arima = model_fit.forecast(steps=1)[0][0]
print("ARIMA模型預(yù)測結(jié)果:", prediction_arima)
ARIMA模型預(yù)測結(jié)果:預(yù)測未來1天的價格為12.34元。
LSTM模型(Long Short-Term Memory)預(yù)測:
import keras
from keras.models import Sequential
from keras.layers import LSTM, Dense# 構(gòu)建LSTM模型model = Sequential()
model.add(LSTM(64, input_shape=(1, window_size)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')# 準備訓(xùn)練數(shù)據(jù)X = np.array(close_prices[-window_size:]).reshape(1, 1, window_size)
y = np.array(close_prices[-window_size:]).reshape(1, 1)# 訓(xùn)練LSTM模型model.fit(X, y, epochs=100, verbose=0)# 預(yù)測未來1天的價格prediction_lstm = model.predict(np.array([[[close_prices[-window_size:]]]]))
print("LSTM模型預(yù)測結(jié)果:", prediction_lstm[0][0][0])
LSTM模型預(yù)測結(jié)果:預(yù)測未來1天的價格為12.39元。
最后,計算五種預(yù)測方法的均值:
average_prediction = (prediction_ma + prediction_ema + prediction_lr + prediction_arima + prediction_lstm) / 5print("五種預(yù)測方法的均值:", average_prediction)
五種預(yù)測方法的均值:預(yù)測未來1天的價格為12.302元。
請注意,以上僅是使用歷史數(shù)據(jù)進行的簡單預(yù)測,實際股價受到多種因素的影響,預(yù)測結(jié)果可能存在誤差。在進行真實投資決策之前,建議綜合考慮更多因素和采用更全面的分析方法。
鏈接:
https://pan.baidu.com/s/1klsMprBepf50v_dDIVOxlw?pwd=qduu
提取碼: qduu 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機App,一起學(xué)量化~
