GARCH model for day-Ahead stock price forecasting
3 views (last 30 days)
Show older comments
Hello. I want to forecast stock market prices one day ahead (i.e 48 prices ahead). In the TrainDatax matrix (50X72) I have the input training data, while in the TrainDatay matrix (50X48) I have the output training data. I want to apply the model for price prediction. Additionally, I want the GARCH model for each row of the training data, i.e. 50 different GARCHs models. Also, the vector TestDatax (1X72) includes the test data. However, in the code below, the testing procedure cannot be done since the dimensions of the matrices are different. How can this problem be solved? Your help is valuable!!!
% GARCH(6,6) Model
garchModel = garch('GARCHLags', 1:6, 'ARCHLags', 1:6, 'Distribution', 't');
% Initialize an array to store GARCH parameters for each row
garchParams = cell(r, 1);
for i = 1:50
% Estimate parameters for each row
garchParams{i} = estimate(garchModel, TrainDatax(i, :)'); % TrainDatax: 50X72
end
% Forecasting
ForecastStock_Values = zeros(50, 48);
for i = 1:50
% Forecasting for each row
[variance, ~] = simulate(garchParams{i}, 48, 'NumPaths', 1);
ForecastStock_Values(i, :) = sqrt(variance(end, :)) .* TestDatax; % TestDatax: 1X72
end
Error message:
Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
ForecastValues(i, :) = sqrt(variance(end, :)) .* TestDatax;
0 Comments
Answers (1)
arushi
on 4 Jul 2024
Hi Stelios,
The error is occurring due to the following line:
ForecastValues(i, :) = sqrt(variance(end, :)) .* TestDatax;
Here, the output of the multiplication is a matrix of size 1x72. The ‘ForecastValues’ matrix has been declared as a matrix of size 50x48, which means that each row only has 48 columns. Hence, when you try to assign the values, it throws an error.
To overcome this, you need to make sure that the matrices are of compatible sizes. This can be done either by making the ‘TestDatax’ matrix of size 1x48 or the ‘ForecastValues’ matrix of size 1x72.
Hope this helps.
0 Comments
See Also
Categories
Find more on Conditional Variance Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!