convert2semiannual

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

TT1 = convert2quarterly(TT,'Aggregation',["lastvalue" "sum"])
TT1=12×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 
    31-Mar-2020    177.46     0.081015 
    30-Jun-2020    168.96    -0.049083 
    30-Sep-2020    260.77      0.43398 
    31-Dec-2020    274.75     0.052223 

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

tt1 = convert2semiannual(TT1,'Aggregation',["lastvalue" "sum"])  % Quarterly to semiannual
tt1=6×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    29-Jun-2018     96.24    -0.038325 
    31-Dec-2018     92.72    -0.037261 
    28-Jun-2019    110.54      0.17579 
    31-Dec-2019    163.65      0.39235 
    30-Jun-2020    168.96     0.031932 
    31-Dec-2020    274.75       0.4862 

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

    29-Jun-2018     96.24    -0.038325 
    31-Dec-2018     92.72    -0.037261 
    28-Jun-2019    110.54      0.17579 
    31-Dec-2019    163.65      0.39235 
    30-Jun-2020    168.96     0.031932 
    31-Dec-2020    274.75       0.4862 

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

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

свернуть все

Данные, чтобы агрегироваться к полугодовой периодичности в виде расписания. О полугодовых результатах агрегации сообщают в прошлый рабочий день июня и декабря.

Примечание

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

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

TT = addBusinessCalendar(TT);

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

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

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

Пример: TT2 = convert2semiannual(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.02    200.04    300.06     400.08
      03-Jan-2018     99.96    199.92    299.88     399.84
          .             .         .         .          .
          .             .         .         .          .
          .             .         .         .          .
      28-Jun-2018     69.63    139.26    208.89     278.52
      29-Jun-2018     70.15     140.3    210.45     280.60
      30-Jun-2018     75.77    151.54    227.31     303.08
      01-Jul-2018     75.68    151.36    227.04     302.72
      02-Jul-2018     71.34    142.68    214.02     285.36
      03-Jul-2018     69.25    138.50    207.75     277.00
          .             .         .         .          .
          .             .         .         .          .
          .             .         .         .          .
      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       
      ___________    ______    ______    ________________
      30-Jun-2018     75.77    151.54    227.31    303.08
      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

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

свернуть все

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

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

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

Введенный в R2021a