exponenta event banner

convert2annual

Сводные данные о графике на годовую периодичность

Описание

пример

TT2 = convert2annual(TT1) агрегирует данные (например, регистрируемые ежедневно или еженедельно) в годовую периодичность.

пример

TT2 = convert2annual(___,Name,Value) указывает параметры, использующие один или несколько необязательных аргументов пары имя-значение в дополнение к входному аргументу в предыдущем синтаксисе.

Примеры

свернуть все

Методы агрегирования Applyseparate для связанных переменных в timetable при сохранении согласованности между агрегированными результатами при преобразовании в годовую периодичность. Вы можете использовать convert2annual для агрегирования как внутрисуточных, так и агрегированных ежемесячных данных. Эти методы приводят к эквивалентным годовым совокупным показателям.

Загрузить расписание (TT) смоделированных данных цены акций и соответствующих логарифмических доходностей. Данные, хранящиеся в TT фиксируется в разное время в течение всего дня на Нью-Йоркской фондовой бирже (NYSE) рабочих дней с 1 января 2018 года по 31 декабря 2020 года. Расписание TT также включает осведомленность о бизнес-календаре NYSE. Если ваше расписание не учитывает нерабочие дни (выходные, праздничные дни и закрытие рынка), добавьте информацию о бизнес-календаре с помощью addBusinessCalendar во-первых.

load('SimulatedStock.mat','TT');
head(TT)
ans=8×2 timetable
            Time            Price     Log_Return
    ____________________    ______    __________

    02-Jan-2018 11:52:11    100.71     0.0070749
    02-Jan-2018 13:23:09    103.11      0.023551
    02-Jan-2018 14:45:30    100.24     -0.028229
    02-Jan-2018 15:30:48    101.37       0.01121
    03-Jan-2018 10:02:21    101.81     0.0043311
    03-Jan-2018 11:22:37    100.17      -0.01624
    03-Jan-2018 14:45:20     99.66    -0.0051043
    03-Jan-2018 14:55:39    100.12     0.0046051

Во-первых, агрегировать внутрисуточные цены и возвращаться к ежемесячной периодичности. Для поддержания непротиворечивости между ценами и доходностью, для любого данного месяца совокупные цены, сообщая последнюю зарегистрированную цену с помощью "lastvalue" и суммировать результаты суммированием всех логарифмических результатов с использованием "sum".

TT1 = convert2monthly(TT,'Aggregation',["lastvalue" "sum"]);
head(TT1)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-Jan-2018    122.96      0.20669 
    28-Feb-2018    121.92    -0.008494 
    29-Mar-2018     108.9     -0.11294 
    30-Apr-2018    110.38     0.013499 
    31-May-2018     99.02     -0.10861 
    29-Jun-2018     96.24    -0.028477 
    31-Jul-2018     97.15    0.0094111 
    31-Aug-2018    101.51     0.043901 

Использовать convert2annual агрегировать данные с ежегодной периодичностью и сравнивать результаты двух различных подходов к агрегированию. Первый подход вычисляет годовые результаты путем агрегирования ежемесячных агрегатов, а второй подход вычисляет годовые результаты путем прямого агрегирования исходных данных внутри дня. Обратите внимание, что по умолчанию результаты конвертируемых отчетов за последний рабочий день декабря. Чтобы изменить месяц, заканчивающийся годовыми периодами, используйте 'EndOfYearMonth' аргумент пары имя-значение для convert2annual.

tt1 = convert2annual(TT1,'Aggregation',["lastvalue" "sum"])  % Monthly to annual
tt1=3×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-Dec-2018     92.72    -0.075586 
    31-Dec-2019    163.65      0.56815 
    31-Dec-2020    274.75      0.51813 

tt2 = convert2annual(TT ,'Aggregation',["lastvalue" "sum"])  % Intra-daily to semiannual
tt2=3×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-Dec-2018     92.72    -0.075586 
    31-Dec-2019    163.65      0.56815 
    31-Dec-2020    274.75      0.51813 

Результаты этих двух подходов одинаковы, поскольку каждый годовой период содержит ровно 12 календарных месяцев.

Входные аргументы

свернуть все

Данные должны агрегироваться с ежегодной периодичностью, указанной в расписании.

Примечание

NaNs указывает на отсутствие значений. Метки времени должны быть в порядке возрастания или убывания.

По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает нерабочие дни (выходные, праздничные дни и закрытие рынка), добавьте информацию о бизнес-календаре с помощью addBusinessCalendar во-первых. Например, следующая команда добавляет логику бизнес-календаря для включения только рабочих дней NYSE.

TT = addBusinessCalendar(TT);

Типы данных: timetable

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: TT2 = convert2annual(TT1,'Aggregation',["lastvalue" "sum"])

Метод агрегирования для TT1 данные для ежегодной агрегации, указанные как пара, разделенная запятыми, состоящая из 'Aggregation' и символьный вектор, строка или дескриптор функции, примененный ко всем временным рядам в TT1, или вектор ячейки символьных векторов, строковый вектор или вектор ячейки функции обрабатывает ту же длину, что и число переменных в TT1.

Методы агрегирования определяют способ агрегирования данных в течение рабочих дней в году с ежегодной периодичностью. Доступные методы агрегирования:

  • 'sum' - суммировать значения за каждый год или день.

  • 'mean' - Рассчитать среднее значение значений за каждый год или день.

  • 'prod' - Рассчитать произведение значений в каждом году или дне.

  • 'min' - Вычислите минимум значений в каждом году или дне.

  • 'max' - рассчитать максимум значений за каждый год или день.

  • 'firstvalue' - Используйте первое значение в каждом году или дне.

  • 'lastvalue' - использовать последнее значение в каждом году или дне.

Все перечисленные выше методы пропускают отсутствующие данные (NaNs) в расчетах прямой агрегации. Однако в ситуациях, когда отсутствующие значения появляются в первой строке TT1, отсутствующие значения также могут отображаться в агрегированных результатах TT2.

Кроме того, в качестве дескрипторов функций можно указать методы агрегации. Чтобы включить отсутствующие данные, укажите функции в качестве дескрипторов функций, которые включают отсутствующие данные при агрегировании данных. Функции агрегации должны принимать базовые данные, сохраненные в TT1 и возвращает выходной сигнал, который является скалярным вектором или вектором строки и должен принимать пустые входные данные. Каждая функция агрегации применяется к соответствующей переменной и вызывается по одной. Каждая переменная должна содержать либо один числовой вектор, либо числовую матрицу. Например, рассмотрим ежедневное расписание, представляющее TT1 с тремя переменными.

         Time         AAA       BBB            CCC       
      ___________    ______    ______    ________________
      01-Jan-2018    100.00    200.00    300.00    400.00
      02-Jan-2018    100.03    200.06    300.09    400.12
      03-Jan-2018    100.07    200.14    300.21    400.28
          .             .         .         .         .
          .             .         .         .         .
          .             .         .         .         .
      29-Dec-2018    249.16    498.32    747.48    996.64
      30-Dec-2018    250.21    500.42    750.63   1000.84
      31-Dec-2018    256.75    513.50    770.25   1027.00

Соответствующие еженедельные результаты по умолчанию, представляющие TT2 (в котором все дни являются рабочими днями и 'lastvalue' сообщается в последний рабочий день каждого года) являются следующими.

          Time         AAA       BBB            CCC       
      ___________    ______    ______    ________________
      31-Dec-2018    256.75    513.50    770.25   1027.00

Типы данных: char | string | cell | function_handle

Метод внутрисуточной агрегации данных в TT1, указанная как пара, разделенная запятыми, состоящая из 'Daily' и символьный вектор, строковый скаляр или дескриптор функции, примененный ко всем временным рядам в TT1, или вектор ячейки символьных векторов, строковый вектор или вектор ячейки функции обрабатывает ту же длину, что и число переменных в TT1.

Типы данных: char | string | cell | function_handle

Месяц, заканчивающий годовые периоды, указанный как пара, разделенная запятыми, состоящая из 'EndOfYearMonth' и строка, символьный вектор или скалярное целое число.

Типы данных: double | char | string

Выходные аргументы

свернуть все

Годовые данные, возвращенные в виде графика. Функция возвращает NaNs для переменных в TT2 для годовых периодов, когда данные по этим переменным не записываются ни в какие рабочие дни в TT1. Если TT1 находится в порядке возрастания, так же TT2, и если TT1 находится в порядке убывания, так же TT2.

Первая дата в TT2 является последней рабочей датой годового периода (года), в котором первая дата TT1 происходит, при условии TT1 имеет рабочие даты в этом годовом периоде (году), в противном случае первая дата в TT2 является следующей рабочей датой на конец года.

Последняя дата в TT2 является последней рабочей датой годового периода (года), в котором последняя дата TT1 происходит, при условии TT1 имеет рабочие даты в этом годовом периоде (году), в противном случае последняя дата в TT2 - это предыдущая дата окончания периода.

Представлен в R2021a