Сводные данные о графике на ежемесячную периодичность
указывает параметры, использующие один или несколько необязательных аргументов пары имя-значение в дополнение к входному аргументу в предыдущем синтаксисе.TT2 = convert2monthly(___,Name,Value)
Применение отдельных методов агрегации к связанным переменным в timetable при сохранении согласованности между агрегированными результатами при преобразовании в ежемесячную периодичность. Вы можете использовать convert2monthly для агрегирования как внутрисуточных, так и агрегированных ежедневных данных. Эти методы приводят к эквивалентным ежемесячным агрегатам. Наконец, можно агрегировать результаты в определенный день каждого месяца (например, 15-й), а не в конец месяца по умолчанию.
Загрузить расписание (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 = 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
Использовать convert2monthly агрегировать данные до ежемесячной периодичности и сравнивать результаты двух различных подходов. Первый подход вычисляет ежемесячные результаты путем агрегирования ежедневных агрегатов, а второй подход вычисляет ежемесячные результаты путем прямого агрегирования исходных данных внутри дня. Обратите внимание, что, хотя convert2monthly сообщает о результатах в последний рабочий день каждого месяца по умолчанию, вы можете сообщать о ежемесячных результатах 15 числа каждого месяца с помощью необязательного аргумента пара имя-значение 'EndOfMonthDay'.
tt1 = convert2monthly(TT1,'Aggregation',["lastvalue" "sum"],'EndOfMonthDay',15); % Daily to monthly tt2 = convert2monthly(TT ,'Aggregation',["lastvalue" "sum"],'EndOfMonthDay',15); % Intra-daily to monthly head(tt1)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
12-Jan-2018 125.93 0.23056
15-Feb-2018 120.55 -0.043662
15-Mar-2018 113.49 -0.06035
13-Apr-2018 112.07 -0.012591
15-May-2018 110.47 -0.01438
15-Jun-2018 99.06 -0.10902
13-Jul-2018 95.74 -0.03409
15-Aug-2018 99.94 0.042934
head(tt2)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
12-Jan-2018 125.93 0.23056
15-Feb-2018 120.55 -0.043662
15-Mar-2018 113.49 -0.06035
13-Apr-2018 112.07 -0.012591
15-May-2018 110.47 -0.01438
15-Jun-2018 99.06 -0.10902
13-Jul-2018 95.74 -0.03409
15-Aug-2018 99.94 0.042934
Обратите внимание, что результаты двух подходов одинаковы. Для месяцев, в которых 15-й день не является торговым днем NYSE, функция сообщает результаты за предыдущий рабочий день.
Можно применить пользовательские методы агрегации с помощью дескрипторов функций. Укажите дескриптор функции для агрегирования связанных переменных в timetable при сохранении согласованности между агрегированными результатами при преобразовании из ежедневной в ежемесячную периодичность.
Загрузить расписание (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
Сначала добавьте другую переменную в TT который содержит простые (пропорциональные) возвраты, связанные с ценами в TT и изучите первые несколько строк.
TT.Simple_Return = exp(TT.Log_Return) - 1; % Log returns to simple returns
head(TT)ans=8×3 timetable
Time Price Log_Return Simple_Return
____________________ ______ __________ _____________
02-Jan-2018 11:52:11 100.71 0.0070749 0.0071
02-Jan-2018 13:23:09 103.11 0.023551 0.023831
02-Jan-2018 14:45:30 100.24 -0.028229 -0.027834
02-Jan-2018 15:30:48 101.37 0.01121 0.011273
03-Jan-2018 10:02:21 101.81 0.0043311 0.0043405
03-Jan-2018 11:22:37 100.17 -0.01624 -0.016108
03-Jan-2018 14:45:20 99.66 -0.0051043 -0.0050913
03-Jan-2018 14:55:39 100.12 0.0046051 0.0046157
Создайте функцию для агрегирования простых возвратов и вычисления ежемесячных агрегатов. Для поддержания непротиворечивости между ценами и доходностью, для любого месяца, агрегированные цены, сообщая последнюю зарегистрированную цену с помощью "lastvalue" и сообщить логарифмические результаты путем суммирования всех промежуточных логарифмических результатов с помощью "sum".
Обратите внимание, что функция агрегации для простых возвратов работает вдоль первой (строки) размерности и пропускает отсутствующие данные (NaNs). Дополнительные сведения о пользовательских функциях агрегирования см. в разделе timetable и retime. Когда методы агрегирования представляют собой сочетание поддерживаемых методов и пользовательских функций, 'Aggregation' аргумент пары имя-значение должен быть указан как вектор ячейки методов, заключённых в фигурные скобки.
f = @(x)(prod(1 + x,1,'omitnan') - 1); % Aggregate simple returns tt = convert2monthly(TT,'Aggregation',{'lastvalue' 'sum' f}); head(tt)
ans=8×3 timetable
Time Price Log_Return Simple_Return
___________ ______ __________ _____________
31-Jan-2018 122.96 0.20669 0.2296
28-Feb-2018 121.92 -0.008494 -0.008458
29-Mar-2018 108.9 -0.11294 -0.10679
30-Apr-2018 110.38 0.013499 0.01359
31-May-2018 99.02 -0.10861 -0.10292
29-Jun-2018 96.24 -0.028477 -0.028075
31-Jul-2018 97.15 0.0094111 0.0094555
31-Aug-2018 101.51 0.043901 0.044879
TT1 - Данные для агрегирования в месячную периодичностьДанные агрегируются до ежемесячной периодичности, указанной в расписании.
Примечание
NaNs указывает на отсутствие значений. Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает нерабочие дни (выходные, праздничные дни и закрытие рынка), добавьте информацию о бизнес-календаре с помощью addBusinessCalendar во-первых. Например, следующая команда добавляет логику бизнес-календаря для включения только рабочих дней NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
TT2 = convert2monthly(TT1,'Aggregation',["lastvalue" "sum"])'Aggregation' - Метод агрегирования для TT1 данные для внутримесячной или междневной агрегации'lastvalue'
(по умолчанию) | символьный вектор со значением 'sum', 'mean', 'prod', 'min', 'max', 'firstvalue', или 'lastvalue' | строка со значением "sum", "mean", "prod", "min", "max", "firstvalue", или "lastvalue"Метод агрегирования для 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
. . . . .
. . . . .
. . . . .
31-Jan-2018 114.65 229.3 343.95 458.60
. . . . .
. . . . .
. . . . .
28-Feb-2018 129.19 258.38 387.57 516.76
. . . . .
. . . . .
. . . . .
31-Mar-2018 162.93 325.86 488.79 651.72
. . . . .
. . . . .
. . . . .
30-Apr-2018 171.72 343.44 515.16 686.88
. . . . .
. . . . .
. . . . .
31-May-2018 201.24 402.48 603.72 804.96
. . . . .
. . . . .
. . . . .
30-Jun-2018 223.22 446.44 669.66 892.88Соответствующие ежемесячные результаты по умолчанию, представляющие TT2 (в котором все дни являются рабочими днями и 'lastvalue' сообщается в последний рабочий день каждого месяца) являются следующими.
Time AAA BBB CCC
___________ ______ ______ ________________
31-Jan-2018 114.65 229.30 343.95 458.60
28-Feb-2018 129.19 258.38 387.57 516.76
31-Mar-2018 162.93 325.86 488.79 651.72
30-Apr-2018 171.72 343.44 515.16 686.88
31-May-2018 201.24 402.48 603.72 804.96
30-Jun-2018 223.22 446.44 669.66 892.88Типы данных: char | string | cell | function_handle
'Daily' - Метод внутрисуточной агрегации данных в TT1Метод внутрисуточной агрегации данных в TT1, указанная как пара, разделенная запятыми, состоящая из 'Daily' и вектор скалярных символов, строка или дескриптор функции, применяемые ко всем временным рядам в TT1, или вектор ячейки символьных векторов, строковый массив или вектор ячейки функции, обрабатывающий то же самое число переменных в TT1.
Типы данных: char | string | cell | function_handle
'EndOfMonthDay' - День месяца, заканчивающегося месяцами1 кому 31День месяца, который заканчивается месяцами, указанный как пара, разделенная запятыми, состоящая из 'EndOfMonthDay' и скалярное целое число. Для месяцев с меньшим количеством дней, чем EndOfMonthDayрезультаты агрегирования отображаются в последний рабочий день месяца.
Типы данных: double
TT2 - Ежемесячные данныеЕжемесячные данные, возвращаемые в виде расписания. Функция возвращает NaNs для переменных в TT2 для месяцев, когда данные не записываются ни в какие рабочие дни для этих переменных в TT1. Если TT1 находится в порядке возрастания, так же TT2, и если TT1 находится в порядке убывания, так же TT2.
Первая дата в TT2 - последняя рабочая дата месяца, в котором первая дата в TT1 происходит, при условии TT1 имеет рабочие даты в этом месяце, в противном случае первая дата в TT2 является следующей рабочей датой на конец месяца.
Последняя дата в TT2 - последняя рабочая дата месяца, в котором последняя дата в TT1 происходит, при условии TT1 имеет рабочие даты в этом месяце, в противном случае последняя дата в TT2 - это предыдущая дата окончания месяца.
convert2annual | convert2daily | convert2quarterly | convert2semiannual | convert2weekly | timetable
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.