Professional Documents
Culture Documents
import pandas as pd
import numpy as np
from vnstock import *
from matplotlib import pyplot as plt
import seaborn as sns
import math
import warnings
warnings.filterwarnings('ignore')
start_date = "2015-09-01"
end_date = "2023-05-29"
print(start_date)
print(end_date)
2015-09-01
2023-05-29
df = df.set_index("TradingDate")
df["Return"] = df["Close"].pct_change()
df = df.fillna(0)
df
TradingDate
# Convert daily volatility to annaul volatility, assume that the average trading days per year are 252 days
std_annual = math.sqrt(252) * std_daily
print ('Annual volatility: ', '{:.2f}'.format(std_annual))
import arch
3a
maxlag = 10
order = arma_order_select_ic(df["Return"], ic='aic', trend='c', max_ar=10, max_ma=0)
optimal_lag = order['aic_min_order'][0]
print("Optimal lag order:", optimal_lag)
ar_resid = result_ar.resid
3b
In-sample: The likelihood value of EGARCH Model is bigger than the likelihood value of GJR-GARCH Model (5233.26>-154339). Hence,
we can conclude that the EGARCH Model is better than the GJR-GARCH Model.
training_df = df["Return"][0:-101]
testing_df = df["Return"][-101:-1]
window = 30
actual_std = testing_df.rolling(window).std()
gjr_gm_training_result = gjr_gm_training.fit(first_obs = i,
last_obs = i + len(training_df) - 1, update_freq = 5, disp="off")
forecast_var = pd.DataFrame(forecasts).T
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 8. The message is:
Positive directional derivative for linesearch
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
egarch_gm_training_result = egarch_gm_training.fit(first_obs = i,
last_obs = i + len(training_df) - 1, update_freq = 5, disp="off")
forecast_var_egarch = pd.DataFrame(forecasts_egarch).T
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 4. The message is:
Inequality constraints incompatible
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(
C:\Users\ASUS\anaconda3\envs\Student Resources\lib\site-packages\arch\univariate\base.py:766: ConvergenceWarnin
g: The optimizer returned code 9. The message is:
Iteration limit reached
See scipy.optimize.fmin_slsqp for code meaning.
warnings.warn(