convert2quarterly

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

Описание

пример

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

пример

TT2 = convert2quarterly(TT1,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами 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

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

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

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

  • "sum" — Суммируйте значения в каждом году или день.

  • "mean" — Вычислите среднее значение значений в каждом году или день.

  • "prod" — Вычислите продукт значений в каждом году или день.

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

  • "max" — Вычислите максимум значений в каждом году или день.

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

  • "lastvalue" — Используйте последнее значение в каждом году или день.

  • @customfcn — Пользовательский метод агрегации, который принимает табличную переменную и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры [].

Если вы задаете отдельный метод, convert2quarterly применяет заданный метод ко всем временным рядам в TT1. Если вы задаете вектор строки или вектор ячейки aggregation, convert2quarterly применяет агрегацию (j) к TT1 (: J); convert2quarterly применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime). Например, рассмотрите ежедневное расписание, представляющее 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 (в котором все дни являются рабочими днями и '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

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

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

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

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

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

свернуть все

Ежеквартальные данные, возвращенные как расписание. Временная договоренность TT1 и TT2 то же самое.

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

Если переменная TT1 не имеет никаких записей рабочего дня во время четверти в промежутке времени выборки, convert2quarterly возвращает NaN для той переменной и четверти в TT2.

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

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

Введенный в R2021a