convert2weekly

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

TT1 = convert2daily(TT,'Aggregation',["lastvalue" "sum"]);
head(TT1)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    02-Jan-2018    101.37     0.013607 
    03-Jan-2018    100.12    -0.012408 
    04-Jan-2018    106.76     0.064214 
    05-Jan-2018    112.78     0.054856 
    08-Jan-2018    119.07     0.054273 
    09-Jan-2018    119.46      0.00327 
    10-Jan-2018    124.44     0.040842 
    11-Jan-2018    125.63    0.0095174 

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

tt1 = convert2weekly(TT1,'Aggregation',["lastvalue" "sum"]);   % Daily to weekly
tt2 = convert2weekly(TT ,'Aggregation',["lastvalue" "sum"]);   % Intra-daily to weekly

head(tt1)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    05-Jan-2018    112.78      0.12027 
    12-Jan-2018    125.93      0.11029 
    19-Jan-2018    117.67    -0.067842 
    26-Jan-2018     118.8    0.0095573 
    02-Feb-2018    120.85     0.017109 
    09-Feb-2018    123.68     0.023147 
    16-Feb-2018    124.33    0.0052417 
    23-Feb-2018    127.09     0.021956 

head(tt2)
ans=8×2 timetable
       Time        Price     Log_Return
    ___________    ______    __________

    05-Jan-2018    112.78      0.12027 
    12-Jan-2018    125.93      0.11029 
    19-Jan-2018    117.67    -0.067842 
    26-Jan-2018     118.8    0.0095573 
    02-Feb-2018    120.85     0.017109 
    09-Feb-2018    123.68     0.023147 
    16-Feb-2018    124.33    0.0052417 
    23-Feb-2018    127.09     0.021956 

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

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

свернуть все

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

Примечание

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

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

TT = addBusinessCalendar(TT);

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

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

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

Пример: TT2 = convert2weekly(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
      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.

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

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

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

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

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

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

свернуть все

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

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

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

Введенный в R2021a
Для просмотра документации необходимо авторизоваться на сайте