Работа с финансовыми объектами временных рядов

Введение

Финансовый объект временных рядов используется, как будто это была структура MATLAB®. (См. документацию MATLAB для описания структур MATLAB или как использовать MATLAB в целом.)

Эта часть примера принимает, что вы знаете, как использовать MATLAB и знакомы со структурами MATLAB. Терминология похожа на ту из структуры MATLAB. Финансовый компонент термина объекта временных рядов является взаимозаменяемым полем термина структуры MATLAB.

Финансовая структура объекта временных рядов

Финансовый объект временных рядов всегда содержит три имен компонентов: desc (поле описания), freq (поле индикатора частоты), и dates DateVector . Если вы создаете объект с помощью конструктора fints, значением по умолчанию для поля описания является вектор знака пробела (''). Если вы создаете объект из текстового файла данных с помощью ascii2fts, значением по умолчанию является имя текстового файла данных. Значением по умолчанию для поля индикатора частоты является 0 (Unknown частота). Объекты, созданные из операций, могут принять значение по умолчанию установка на 0. Например, если вы решаете выбрать значения выборочно от объекта, частоты новой объектной силы не совпасть с тем из объекта, из которого это прибыло.

Вектор даты dates не имеет множества значений по умолчанию. Когда вы создаете объект, необходимо предоставить вектор даты. Можно изменить вектор даты позже, но во время создания объекта необходимо обеспечить набор дат.

Итоговый компонент финансового объекта временных рядов является одним или несколькими серийными векторами данных. Если вы не предоставляете имя для ряда данных, именем по умолчанию является series1. Если вы имеете несколько рядов данных в объекте и не предоставляете имена, значением по умолчанию является ряд имени, сопровождаемый номером, например, series1, series2, и series3.

Экстракция данных

Вот осуществление о том, как извлечь данные из финансового объекта временных рядов. Как упомянуто прежде, можно думать об объекте как о структуре MATLAB. Подсветите каждую линию в упражнении в Браузере документации MATLAB, нажмите правую кнопку мыши и выберите Evaluate Selection, чтобы выполнить его.

Чтобы начаться, создайте финансовый объект временных рядов, названный myfts:

dates = (datenum('05/11/99'):datenum('05/11/99')+100)';
data_series1 = exp(randn(1, 101))';
data_series2 = exp(randn(1, 101))';
data = [data_series1 data_series2];
myfts = fints(dates, data)

myfts объект выглядит так:

Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints (line 165) 
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/display (line 66) 

myfts = 

    desc:  (none)
    freq:  Unknown (0)

    'dates:  (101)'    'series1:  (101)'    'series2:  (101)'
    '11-May-1999'      [         2.8108]    [         0.9323]
    '12-May-1999'      [         0.2454]    [         0.5608]
    '13-May-1999'      [         0.3568]    [         1.5989]
    '14-May-1999'      [         0.5255]    [         3.6682]
    '15-May-1999'      [         1.1862]    [         5.1284]
    '16-May-1999'      [         3.8376]    [         0.4952]
    '17-May-1999'      [         6.9329]    [         2.2417]
    '18-May-1999'      [         2.0987]    [         0.3579]
    '19-May-1999'      [         2.2524]    [         3.6492]
    '20-May-1999'      [         0.8669]    [         1.0150]
    '21-May-1999'      [         0.9050]    [         1.2445]
    '22-May-1999'      [         0.4493]    [         5.5466]
    '23-May-1999'      [         1.6376]    [         0.1251]
    '24-May-1999'      [         3.4472]    [         1.1195]
    '25-May-1999'      [         3.6545]    [         0.3374]...

В объекте существует больше дат; только первые несколько линий показывают здесь.

Примечание

Фактические данные в вашем series1 и series2 отличается от вышеупомянутого из-за использования случайных чисел.

Теперь создайте другой объект только со значениями для series2:

srs2 = myfts.series2
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/subsref (line 106) 
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/display (line 66) 
 
srs2 = 

    desc:  (none)
    freq:  Unknown (0)

    'dates:  (101)'    'series2:  (101)'
    '11-May-1999'      [         0.9323]
    '12-May-1999'      [         0.5608]
    '13-May-1999'      [         1.5989]
    '14-May-1999'      [         3.6682]
    '15-May-1999'      [         5.1284]
    '16-May-1999'      [         0.4952]
    '17-May-1999'      [         2.2417]
    '18-May-1999'      [         0.3579]
    '19-May-1999'      [         3.6492]
    '20-May-1999'      [         1.0150]
    '21-May-1999'      [         1.2445]
    '22-May-1999'      [         5.5466]
    '23-May-1999'      [         0.1251]
    '24-May-1999'      [         1.1195]
    '25-May-1999'      [         0.3374]...

Новый объект srs2 содержит все даты в myfts, но единственным рядом данных является series2. Имя ряда данных сохраняет свое имя от исходного объекта, myfts.

Примечание

Выход от ссылки на поле ряда данных или индексации финансового объекта временных рядов всегда является другим финансовым объектом временных рядов. Исключения ссылаются на описание, индикатор частоты и поля дат, и индексируют в поле дат.

Преобразование объекта к матрице

Функциональный fts2mat извлекает даты и/или серийные значения данных от объекта и размещает их в вектор или матрицу. Поведение по умолчанию извлекает только значения в вектор или матрицу. Посмотрите на следующий пример:

srs2_vec = fts2mat(myfts.series2)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/subsref (line 106) 
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/fts2mat (line 29) 

srs2_vec =

    0.9323
    0.5608
    1.5989
    3.6682
    5.1284
    0.4952
    2.2417
    0.3579
    3.6492
    1.0150
    1.2445
    5.5466
    0.1251
    1.1195
    0.3374...

Если вы хотите включать даты в выходную матрицу, обеспечьте второй входной параметр и установите его на 1. Это приводит к матрице, первый столбец которой является вектором последовательных чисел даты:

format long g

srs2_mtx = fts2mat(myfts.series2, 1)
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/subsref (line 106) 
Warning: FINTS will be removed in a future release. Use TIMETABLE instead. 
> In fints/fts2mat (line 29) 

srs2_mtx =

            730251      0.932251754559576
            730252      0.560845677519876
            730253      1.59888712183914
            730254      3.6681500883527
            730255      5.12842215360269
            730256      0.49519254119977
            730257      2.24174134286213
            730258      0.357918065917634
            730259      3.64915665824198
            730260      1.01504236943148
            730261      1.24446420606078
            730262      5.54661849025711
            730263      0.12507959735904
            730264      1.11953883096805
            730265      0.337398214166607

Векторный srs2_vec содержит series2 значения. Матричный srs2_mtx содержит даты в первом столбце и значениях series2 ряд данных во втором. Даты в первом столбце находятся в последовательном формате даты. Последовательный формат даты является представлением формата вектора символов даты (например, последовательная дата = 1 эквивалентно до 01 января 0000). (Последовательный вектор даты может включать информацию времени суток.)

long g формат отображения отображает числа без возведения в степень. (Чтобы вернуться к формату отображения по умолчанию, используйте format short. (См. format для описания форматов отображения MATLAB.) Помнят, что и вектор и матрица имеют 101 строку данных как в исходном объекте myfts но показаны усеченными здесь.

Смотрите также

| | | | | | | | | | | | | | | | | | | | |

Похожие темы