convert2annual

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

Описание

пример

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

пример

TT2 = convert2annual(TT1,Name,Value) дополнительные опции использования заданы одними или несколькими аргументами name-value.

Примеры

свернуть все

Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты в SimulatedStockSeries.mat.

load SimulatedStockSeries

Расписание DataTable содержит измерения, зарегистрированные в различные, неправильные времена в течение торговых часов (9:30 к 16:00) Нью-Йоркской фондовой биржи (NYSE) с 1 января 2018, в течение 31 декабря 2020.

Например, отобразите первые несколько наблюдений.

head(DataTable)
ans=8×2 timetable
            Time            Price     Log_Return
    ____________________    ______    __________

    01-Jan-2018 11:52:48       100     -0.025375
    01-Jan-2018 13:23:13    101.14      0.011336
    01-Jan-2018 14:45:09     101.5     0.0035531
    01-Jan-2018 15:30:30    100.15      -0.01339
    02-Jan-2018 10:43:37     99.72    -0.0043028
    03-Jan-2018 10:02:21    100.11     0.0039033
    03-Jan-2018 11:22:37    103.96      0.037737
    03-Jan-2018 13:42:27    107.05       0.02929

DataTable не включает осведомленность бизнес-календаря. Если вы хотите с учетом нерабочих дней (выходные, праздники и закрытия рынка), и вы имеете лицензию Financial Toolbox™, добавляете осведомленность бизнес-календаря при помощи addBusinessCalendar функция.

Агрегируйте ценовой ряд к ежегодному ряду путем создания отчетов об окончательной цене в каждом году.

AnnualPrice = convert2annual(DataTable(:,"Price"));

AnnualPrice расписание, содержащее окончательные цены в течение каждого года, о котором сообщают, в DataTable.

В этом примере показано, как задать соответствующий метод агрегации для модулей переменной. Это также показывает, как использовать convert2annual агрегировать и суточные данные и агрегировало intra день к ежемесячным данным, которые приводят к эквивалентным ежегодным агрегатам.

Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты в SimulatedStockSeries.mat.

load SimulatedStockSeries

Ценовая серия Price содержит абсолютные измерения, тогда как журнал возвращает серию Log_Return скорость изменения ценового ряда среди последовательных наблюдений. Поскольку ряды имеют различные модули, необходимо задать соответствующий метод, когда вы агрегировали ряд. А именно, если вы сообщаете об окончательной цене за данную периодичность, необходимо сообщить, что сумма журнала возвращается в каждый период.

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

  1. Передайте DataTable непосредственно к convert2annual.

  2. Совокупный DataTable так, чтобы результат имел ежемесячную периодичность при помощи convert2monthly, и затем передайте результат convert2annual.

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

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

aggmethods = ["lastvalue" "sum"];
AnnualTT1 = convert2annual(DataTable,Aggregation=aggmethods)
AnnualTT1=3×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-Dec-2018     84.26     -0.19664 
    31-Dec-2019    153.22      0.59797 
    31-Dec-2020    301.04      0.67537 

AnnualTT1 расписание, содержащее годовые данные. Price серия итоговых курсов акций в течение каждого года и Log_Return сумма журнала, возвращается в течение каждого года.

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

MonthlyTT = convert2monthly(DataTable,Aggregation=aggmethods);
tail(MonthlyTT)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-May-2020    227.22    -0.029872 
    30-Jun-2020    224.29    -0.012979 
    31-Jul-2020     236.4     0.052585 
    31-Aug-2020     227.5    -0.038375 
    30-Sep-2020    246.77     0.081306 
    31-Oct-2020    275.07      0.10857 
    30-Nov-2020    298.87     0.082983 
    31-Dec-2020    301.04    0.0072345 

AnnualTT2 = convert2annual(MonthlyTT,Aggregation=aggmethods)
AnnualTT2=3×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    31-Dec-2018     84.26     -0.19664 
    31-Dec-2019    153.22      0.59797 
    31-Dec-2020    301.04      0.67537 

MonthlyTT расписание с ежемесячной периодичностью. Price серия итоговых курсов акций в течение каждого месяца и Log_Return сумма журнала, возвращается в течение каждого месяца.

AnnualTT1 и AnnualTT2 равны.

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

свернуть все

Данные, чтобы агрегироваться к ежегодной периодичности в виде расписания.

Каждая переменная может быть числовым вектором (одномерный ряд) или числовая матрица (многомерный ряд).

Примечание

  • NaNs указывают на отсутствующие значения.

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

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

TT = addBusinessCalendar(TT);

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

Аргументы name-value

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

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

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

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

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

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

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

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

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

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

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

Если вы задаете отдельный метод, convert2annual применяет заданный метод ко всем временным рядам в TT1. Если вы задаете вектор строки или вектор ячейки aggregation, convert2annual применяет агрегацию (j) к TT1 (: J); convert2annual применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime). Например, считайте вход ежедневным расписанием с тремя переменными.

         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
По умолчанию, convert2annual применяет метод агрегации "lastvalue", который сообщает для каждой переменной о значениях прошлого рабочего дня каждого года. Агрегированные ежегодные результаты следующие:
TT2 = convert2annual(TT1)
TT2 =

  1×3 timetable

          Time         AAA       BBB            CCC       
      ___________    ______    ______    ________________
      31-Dec-2018    256.75    513.50    770.25   1027.00

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

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

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

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

Месяц, который заканчивает ежегодные периоды в виде значения в этой таблице.

ЗначениеМесяц, заканчивающийся каждый год
"January" или 1Январь
"February" или 2Февраль
"March" или 3Март
"April" или 4Апрель
"May" или 5Май
"June" или 6Июнь
"July" или 7Июль
"August" или 8Август
"September" или 9Сентябрь
"October" или 10Октябрь
"November" или 11Ноябрь
"December" или 12Декабрь

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

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

свернуть все

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

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

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

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

Введенный в R2021a