convert2semiannual

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

Описание

пример

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

TT2 = convert2semiannual(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 функция.

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

SemiannualPrice = convert2semiannual(DataTable(:,"Price"));
tail(SemiannualPrice)
ans=6×1 timetable
       Time        Price 
    ___________    ______

    30-Jun-2018     99.29
    31-Dec-2018     84.26
    30-Jun-2019    169.77
    31-Dec-2019    153.22
    30-Jun-2020    224.29
    31-Dec-2020    301.04

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

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

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

load SimulatedStockSeries

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

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

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

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

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

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

aggmethods = ["lastvalue" "sum"];
SemiannualTT1 = convert2semiannual(DataTable,Aggregation=aggmethods);
tail(SemiannualTT1)
ans=6×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    30-Jun-2018     99.29    -0.032501 
    31-Dec-2018     84.26     -0.16414 
    30-Jun-2019    169.77      0.70054 
    31-Dec-2019    153.22     -0.10257 
    30-Jun-2020    224.29      0.38107 
    31-Dec-2020    301.04       0.2943 

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

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

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

    31-Mar-2019    112.93      0.29286 
    30-Jun-2019    169.77      0.40768 
    30-Sep-2019    148.97      -0.1307 
    31-Dec-2019    153.22      0.02813 
    31-Mar-2020    229.88      0.40568 
    30-Jun-2020    224.29    -0.024618 
    30-Sep-2020    246.77     0.095517 
    31-Dec-2020    301.04      0.19879 

SemiannualTT2 = convert2semiannual(QuarterlyTT,Aggregation=aggmethods)
SemiannualTT2=6×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    30-Jun-2018     99.29    -0.032501 
    31-Dec-2018     84.26     -0.16414 
    30-Jun-2019    169.77      0.70054 
    31-Dec-2019    153.22     -0.10257 
    30-Jun-2020    224.29      0.38107 
    31-Dec-2020    301.04       0.2943 

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

SemiannualTT1 и SemiannualTT2 равны.

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

свернуть все

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

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

Примечание

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

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

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

TT = addBusinessCalendar(TT);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Введенный в R2021a