convert2annual

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

Описание

пример

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

пример

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

Примеры

свернуть все

Прикладные методы агрегации к связанным переменным в 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