convert2weekly

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

Описание

пример

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

пример

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

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

WeeklyPrice = convert2weekly(DataTable(:,"Price"));

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

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

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

load SimulatedStockSeries

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

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

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

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

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

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

aggmethods = ["lastvalue" "sum"];
WeeklyTT1 = convert2weekly(DataTable,Aggregation=aggmethods)
WeeklyTT1=157×2 timetable
       Time        Price     Log_Return 
    ___________    ______    ___________

    05-Jan-2018    110.69       0.076188
    12-Jan-2018    119.91       0.080008
    19-Jan-2018     116.6      -0.027992
    26-Jan-2018    118.51       0.016248
    02-Feb-2018    120.03       0.012744
    09-Feb-2018    117.07       -0.02497
    16-Feb-2018    117.06    -8.5423e-05
    23-Feb-2018    116.72     -0.0029087
    02-Mar-2018    109.98      -0.059479
    09-Mar-2018    110.27      0.0026334
    16-Mar-2018    107.35      -0.026837
    23-Mar-2018    112.78       0.049344
    30-Mar-2018    110.27      -0.022507
    06-Apr-2018    105.27      -0.046403
    13-Apr-2018    106.01       0.007005
    20-Apr-2018    107.93       0.017949
      ⋮

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

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

DailyTT = convert2daily(DataTable,Aggregation=aggmethods);
tail(DailyTT)
ans=8×2 timetable
       Time        Price     Log_Return 
    ___________    ______    ___________

    24-Dec-2020    286.35     -0.0067521
    25-Dec-2020    286.26    -0.00031435
    26-Dec-2020    285.68     -0.0020282
    27-Dec-2020    285.61    -0.00024506
    28-Dec-2020    294.36       0.030176
    29-Dec-2020    300.44       0.020445
    30-Dec-2020    303.84       0.011253
    31-Dec-2020    301.04     -0.0092581

WeeklyTT2 = convert2weekly(DailyTT,Aggregation=aggmethods)
WeeklyTT2=157×2 timetable
       Time        Price     Log_Return 
    ___________    ______    ___________

    05-Jan-2018    110.69       0.076188
    12-Jan-2018    119.91       0.080008
    19-Jan-2018     116.6      -0.027992
    26-Jan-2018    118.51       0.016248
    02-Feb-2018    120.03       0.012744
    09-Feb-2018    117.07       -0.02497
    16-Feb-2018    117.06    -8.5423e-05
    23-Feb-2018    116.72     -0.0029087
    02-Mar-2018    109.98      -0.059479
    09-Mar-2018    110.27      0.0026334
    16-Mar-2018    107.35      -0.026837
    23-Mar-2018    112.78       0.049344
    30-Mar-2018    110.27      -0.022507
    06-Apr-2018    105.27      -0.046403
    13-Apr-2018    106.01       0.007005
    20-Apr-2018    107.93       0.017949
      ⋮

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

WeeklyTT1 и WeeklyTT2 равны.

convert2weekly отчеты заканчиваются по пятницам по умолчанию. В течение многих недель, в течение которых пятница не является торговым днем NYSE, функциональными результатами отчетов в предыдущий рабочий день. Можно использовать аргумент EndOfWeekDay значения имени задавать различный день недели, которая заканчивает Business Week.

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

свернуть все

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

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

Примечание

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

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

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

TT = addBusinessCalendar(TT);

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы задаете отдельный метод, convert2weekly применяет заданный метод ко всем временным рядам в TT1. Если вы задаете вектор строки или вектор ячейки aggregation, convert2weekly применяет агрегацию (j) к TT1 (: J); convert2weekly применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите 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
      04-Jan-2018    100.08    200.16    300.24    400.32
      05-Jan-2018    100.25    200.50    300.75    401.00
      06-Jan-2018    100.19    200.38    300.57    400.76
      07-Jan-2018    100.54    201.08    301.62    402.16
      08-Jan-2018    100.59    201.18    301.77    402.36
      09-Jan-2018    101.40    202.80    304.20    405.60
      10-Jan-2018    101.94    203.88    305.82    407.76
      11-Jan-2018    102.53    205.06    307.59    410.12
      12-Jan-2018    103.35    206.70    310.05    413.40
      13-Jan-2018    103.40    206.80    310.20    413.60
      14-Jan-2018    103.91    207.82    311.73    415.64
      15-Jan-2018    103.89    207.78    311.67    415.56
      16-Jan-2018    104.44    208.88    313.32    417.76
      17-Jan-2018    104.44    208.88    313.32    417.76
      18-Jan-2018    104.04    208.08    312.12    416.16
      19-Jan-2018    104.94    209.88    314.82    419.76

Соответствующее значение по умолчанию еженедельно заканчивается, представляя TT2 (в котором все дни являются рабочими днями и 'lastvalue' сообщается по пятницам), следующие.

        Time         AAA       BBB            CCC       
      ___________    ______    ______    ________________
      05-Jan-2018    100.25    200.50    300.75    401.00
      12-Jan-2018    103.35    206.70    310.05    413.40
      19-Jan-2018    104.94    209.88    314.82    419.76

'lastvalue' по умолчанию возвращает последнее, наблюдаемое на данной неделе для всех переменных в TT1.

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

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

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

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

День недели, которая заканчивает Business Week в виде значения в таблице.

ЗначениеДень, заканчивающийся каждую неделю
"Sunday" или 1В воскресенье
"Monday" или 2В понедельник
"Tuesday" или 3Во вторник
"Wednesday" или 4В среду
"Thursday" или 5В четверг
"Friday" или 6В пятницу
"Saturday" или 7В субботу

Если заданный день конца недели на данной неделе не является рабочим днем, в предыдущий рабочий день концы на той неделе.

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

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

свернуть все

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

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

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

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

Введенный в R2021a