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