Використання моделей ARMA-GARCH для імітації валютних цін


10

Я встановив модель ARIMA (1,1,1) -GARCH (1,1) до часового ряду цін журналу обмінних курсів AUD / USD, відібраних з однохвилинними інтервалами протягом декількох років, що дало мені більше двох млн даних, за якими можна оцінити модель. Набір даних доступний тут . Для наочності це була модель ARMA-GARCH, встановлена ​​для повернення журналів завдяки інтеграції цін журналу першого порядку. Оригінальний часовий ряд AUD / USD виглядає приблизно так:

введіть тут опис зображення

Потім я спробував імітувати часовий ряд на основі приталеної моделі, давши мені наступне:

введіть тут опис зображення

Я і чекаю, і бажаю, щоб імітований часовий ряд відрізнявся від початкового ряду, але я не очікував, що буде така значна різниця. По суті, я хочу, щоб імітований серіал поводився або широко виглядав як оригінал.

Це код R, який я використав для оцінки моделі та моделювання серії:

library(rugarch)
rows <- nrow(data)
data <- (log(data[2:rows,])-log(data[1:(rows-1),]))
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE), distribution.model = "std")
fit <- ugarchfit(spec = spec, data = data, solver = "hybrid")
sim <- ugarchsim(fit, n.sim = rows)
prices <- exp(diffinv(fitted(sim)))
plot(seq(1, nrow(prices), 1), prices, type="l")

І це результат оцінки:

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(1,0,1)
Distribution    : std 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
mu      0.000000    0.000000   -1.755016 0.079257
ar1    -0.009243    0.035624   -0.259456 0.795283
ma1    -0.010114    0.036277   -0.278786 0.780409
omega   0.000000    0.000000    0.011062 0.991174
alpha1  0.050000    0.000045 1099.877416 0.000000
beta1   0.900000    0.000207 4341.655345 0.000000
shape   4.000000    0.003722 1074.724738 0.000000

Robust Standard Errors:
        Estimate  Std. Error   t value Pr(>|t|)
mu      0.000000    0.000002 -0.048475 0.961338
ar1    -0.009243    0.493738 -0.018720 0.985064
ma1    -0.010114    0.498011 -0.020308 0.983798
omega   0.000000    0.000010  0.000004 0.999997
alpha1  0.050000    0.159015  0.314436 0.753190
beta1   0.900000    0.456020  1.973598 0.048427
shape   4.000000    2.460678  1.625568 0.104042

LogLikelihood : 16340000 

Я дуже вдячний за будь-які вказівки щодо вдосконалення моделювання та моделювання чи будь-які уявлення про помилки, які я могла зробити. Схоже, залишок моделі не використовується як шумний термін у моїй спробі моделювання, хоча я не впевнений, як її включити.


1
Привіт Джефф! Ви також повинні надати свої дані (або принаймні репрезентативний зразок) потенційним помічникам. Крім того, ваш зразок коду не включає використовувані вами пакунки (де знаходяться функції ugarchspec()та ugarchsim()функції). Переконайтеся, що ваш код відтворюється щоразу, коли ви ставите запитання тут, і це "допоможе людям допомогти вам".
ЗбереженоByJESUS

Дякую за пораду, @SavedByJESUS. Я оновив свою публікацію, щоб включити бібліотеку R, яку я використав, та уточнив формат моїх даних.
Джефф

Основна причина, по якій ваші змодельовані дані відрізняються від оригінальної серії, полягає лише в тому, що встановлена ​​модель ARMA (1, 1, 1) GARCH (1, 1) не є відповідною моделлю для ваших даних. Спершу слід почати з вдосконалення своєї моделі, тоді ваше подальше моделювання буде схожим на вихідні дані.
ЗбереженоByJESUS

Відповіді:


1

Я працюю з прогнозуванням даних Forex і довіряйте мені, коли ви використовуєте методи статистичного прогнозування, будь то ARMA, ARIMA, GARCH, ARCH тощо. Вони завжди мають тенденцію до погіршення, коли ви намагаєтесь передбачити набагато завчасно. Вони можуть або не можуть працювати протягом наступного одного або двох періодів, але, безумовно, не більше того. Оскільки дані, з якими ви маєте справу, не мають автоматичної кореляції, не мають тенденції та не сезонності.

Моє запитання до вас, чи перевіряли ви ACF та PACF чи тести на тенденцію, сезонність перед тим, як використовувати ARMA та GARCH? Без вищезазначених властивостей у даних статистичне прогнозування не працює, оскільки ви порушуєте основні припущення цих моделей.


Дякую за Ваш коментар @JAbr, але я насправді не прогнозую. Швидше, моє застосування - це суворе моделювання альтернативного цінового шляху з тими ж статистичними характеристиками, що і спостережувані дані.
Джефф

Гаразд, але в інших палатах ви насправді прогнозуєте за допомогою моделі garch, чи не так, ваші симуляції використовують garch, а garch виробляє спостереження шляхом прогнозування.
JAbr

Абсолютно, але ви сказали, що прогнози моделі часових рядів погіршуються, оскільки горизонт поширюється далі в майбутнє. Я припускаю, що модель недостатньо відображає динаміку серії навіть при моделюванні (або прогнозуванні) на горизонті одного періоду.
Джефф

Я сказав: "Вони можуть працювати протягом наступного або двох періодів", моє погано, я повинен був сказати, може, чи ні.
JAbr

0

Мої пропозиції полягають у тому, щоб переконатися, що обрана вами модель відповідає даним.

  • Переконайтесь, що немає циклічних чи сезонних компонентів.
  • Виконайте розширений тест Dickey Fuller, щоб перевірити наявність одиничного кореня. Якщо є корінь одиниці, то продовжуйте диференціювати дані, поки тест Доповненого Діккі Фуллера не покаже наявність кореневих одиниць. Крім того, дотримуйтесь коефіцієнтів автоматичної кореляції, вони повинні знижуватись через деякий п ять проміжків часу для стабільності.
  • Можливо, ви переоцінили або недостатньо помістили модель, використовуючи неправильні замовлення? Знайдіть правильні замовлення, використовуючи AIC та BIC.

tdistribution.model="std"

Ти правий. Я відредагую свою відповідь.
A-ar

Мене не турбує надмірна підгонка - насправді, за своїм призначенням я хочу переповнити модель. Я перевірив стаціонарність, хоча не на сезонність. Незалежно від цих питань, здається, модель GARCH не працює належним чином. Схоже, що модельована серія є цілком гомоскедастичною.
Джефф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.