Тел.факс: +7(831)437-66-01
Факторинг  Анализ финансовых западных рынков 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88 89 90 91 92

Приложстше 2

ВЬРШСЛЕНИЕ E(R/S)

Данная программа вычисляет ожидаемое значение R/S для гауссовых приращений, используя методологию, описанную в Главе 5. В начале есть стартовое значение для числа наблюдений п и конечное значение е. Подобно программе для вычисления R/S, эта программа вычисляет E(R/S) для всех четных приращений между п и е. На пракгаке я проюжу R/S на фактических данных, а затем выполняю эту программу для E(R/S), изменяя е на общее число наблюдений, используемых для R/S, давая, таким образом, эквивалентные значения. Это можно изменить, и характерные значения в Таблице А2.1, которая следует за этим приложением, были рассчитаны также с помощью этой программы.

Результат содержится в файле ASCII, который называется ern.asc. Он содержит два столбца, E(R/S) и число наблюдений п. На этот раз логарифмы не берутся, хотя программу можно легко изменить, чтобы она это делала. В вычислении мы используем уравнение (5.4) до тех пор, пока п меньше 335. В этой точке большинство ПК не выдерживает достаточного количества разрядов для гамма-функций, и профамма переходит к уравнению (5.5), которое использует приближение Стерлинга.

п=9; е=1(Х30; ©beginning and ending observation numbers® do while n<e; n=n+l;

i = floor (e/n); num=(e/n); if i<num; goto repeat; endif; ifn< 335;

g = gamma (.5*(n-l))/(gamma(.5*n)*sqrt(pi));

else; g=((.5*n)(-.5))/sqrt(pi);

endif;

Ы); sum=0; do while r<n-l; n=r+l;

sum=sum+sqrt((n-r)/r); ©empirical correction® endo;

em = g*sum; ©calculation of E(R/S) using empirical correction @ output file ern.asc on;

p = n ~ em; print p; repeat: endo;



ВЬИИСЛЕНИЕ ПОСЛЕДОВАТЕЛЬНОГО СТАНДАРТНОГО ОТКЛОНЕНИЯ И СРЕДНЕГО

Программа, которая вычисляет последовательное стандартное отклонение и среднее - просто разновидность той программы, которая вычисляет нормированный размах. Данные непрерывно переформатируются в матрицу п X i, но приращение теперь представляет собой фиксированный шаг длиной г. Вместо нормированного размаха рассчитываются только сигма и среднее. Эга программа использует только первый столбец; она не выводит среднее по всем приращениям длиной i. Наконец, она не берет АК(1>разности, которые являются излишними для этого вида анализа. Результат - последовательное среднее и сигма, так же как и число наблюдений х.

©open ех = djal.dat; р = seekr(ex,l); sret = readr(ex,27000);

datx = sret[.,l]; obv = rows (datx);© ©GAUSS dataset input

REMс out©

load sret[] = prices.prn; datx=sret[., 1]; obv = rows[datx];

datr = ln(datx[2:obv]./datx [l:obv-l]); ©log returns© obv = rows (datr);

r = 1; x=19; ©incronents of one observation, start with 20

observations©

do while x<obv-r;

X = X + r; n = floor(obv/x);

xl = reshape (datr,n,x) ; ©reformat data into n by x matrix©

s = xl[.,l]; V = stdc(s); m = meanc (s); ©calculate sequential sigma and mean©

©print to file©

format 1 8; output file = seqvar.asc on; print x - V - m; endo;



ВЫЧИСЛЕНИЕ ВРЕМЕННОЙ СТРУКТУРЫ ВОЛАТИЛЬНОСТИ

Как и в программе для последовательного среднего и стандартного отклонения, программа вычисления временной структуры юлатильности испольет большую часть профаммы R/S-анализа, переформатируя данные как матрицу п X i, где п -временной интервал процента. В этом случае мы начинаем с ежедневных данных, строим вектор цен 27 002 X 1 и вычисляем стандартное отклонение изменений AR(1)-разностей. Затем мы переходим к 2-дневным данным и создаем матрицу цен 13 502 X 2. Столбец 1 теперь содержит цену каждые два дня. Затем мы вычисляем стандартное отклонение изменений AR(l)-paзнocтeй столбца 1. Мы продолжаем делать это до тех пор, пока у нас не закончатся данные.

В этом случае мы еще раз используем AR(l)-pa3H0CTH, потому что мы не хотим, чтобы стандартное отклонение более длительных периодов смещалось инфляционным ростом. В более коротких интервалах это не имеет большого значения.

©This section reads а GAUSS dataset as input. It has been REMd out® ©open ex = djal.dat; p=seekr(ex,1); sret = readr(ex,27002); datr=sret[.,1];@

©This section reads an ASCII file as input®

load sret [] = prices.prn;

datx=sret[.,]];

obv=((int(rows(datx)/100))*100)+2; ©set observations to even 100, +2 for

AR(1) calc®

datn = datx [2:obv]./datx[1 :obv]; ©Calculate log returns© obv = rows (datn);



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88 89 90 91 92