convert2quarterly

Совокупные данные расписания к квартальной периодичности

Описание

пример

TT2 = convertquarterly(TT1) агрегирует данные (для примера, данных, записанных ежедневно или еженедельно) до квартальной периодичности.

пример

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

Примеры

свернуть все

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

Загрузите расписание (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

Использование convert2monthly агрегировать внутридневные цены и возвращаться к ежемесячной периодичности. Для поддержания согласованности между ценами и возвратами за любой данный месяц, агрегируйте цены путем сообщения последней зарегистрированной цены с помощью "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 

Использование convert2quarterly агрегировать данные по квартальной периодичности и сравнить результаты двух различных подходов. Первый подход вычисляет квартальные результаты путем агрегирования ежемесячных агрегатов, а второй подход вычисляет квартальные результаты путем прямого агрегирования исходных внутридневных данных. Обратите внимание, что convert2quaterly сообщает результаты за последний рабочий день каждого квартала.

tt1 = convert2quarterly(TT1,'Aggregation',["lastvalue" "sum"]);  % Monthly to quarterly
tt2 = convert2quarterly(TT ,'Aggregation',["lastvalue" "sum"]);  % Intra-daily to quarterly

head(tt1)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    29-Mar-2018     108.9      0.08526 
    29-Jun-2018     96.24     -0.12358 
    28-Sep-2018    111.37      0.14601 
    31-Dec-2018     92.72     -0.18327 
    29-Mar-2019      78.7     -0.16394 
    28-Jun-2019    110.54      0.33973 
    30-Sep-2019    180.13       0.4883 
    31-Dec-2019    163.65    -0.095949 

head(tt2)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    29-Mar-2018     108.9      0.08526 
    29-Jun-2018     96.24     -0.12358 
    28-Sep-2018    111.37      0.14601 
    31-Dec-2018     92.72     -0.18327 
    29-Mar-2019      78.7     -0.16394 
    28-Jun-2019    110.54      0.33973 
    30-Sep-2019    180.13       0.4883 
    31-Dec-2019    163.65    -0.095949 

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

Входные параметры

свернуть все

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

Примечание

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

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

TT = addBusinessCalendar(TT);

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

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

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

Пример: TT2 = convert2quarterly(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
          .             .         .         .         .
          .             .         .         .         .
          .             .         .         .         .
      31-Mar-2018    162.93    325.86    488.79    651.72
          .             .         .         .         .
          .             .         .         .         .
          .             .         .         .         .
      30-Jun-2018    223.22    446.44    669.66    892.88
          .             .         .         .         .
          .             .         .         .         .
          .             .         .         .         .
      30-Sep-2018    232.17    464.34    696.51    928.68
          .             .         .         .         .
          .             .         .         .         .
          .             .         .         .         .
      31-Dec-2018    243.17    486.34    729.51    972.68

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

         Time         AAA       BBB            CCC       
      ___________    ______    ______    ________________
      31-Mar-2018    162.93    325.86    488.79    651.72
      30-Jun-2018    223.22    446.44    669.66    892.88
      30-Sep-2018    232.17    464.34    696.51    928.68
      31-Dec-2018    243.17    486.34    729.51    972.68

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

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

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

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

свернуть все

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

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

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

Введенный в R2021a