Совокупные данные о расписании к ежемесячной периодичности
задает опции с помощью одного или нескольких дополнительных аргументов пары "имя-значение" в дополнение к входному параметру в предыдущем синтаксисе.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"
.
Заметьте, что функция агрегации для простых возвратов управляет вдоль первого (строка) размерностью и не использует недостающие данные (NaN
s). Для получения дополнительной информации о пользовательских функциях агрегации смотрите 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
— Данные, чтобы агрегироваться к ежемесячной периодичностиДанные, чтобы агрегироваться к ежемесячной периодичности в виде расписания.
Примечание
NaN
s указывают на отсутствующие значения. Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), добавьте осведомленность бизнес-календаря при помощи 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'
среднее значение
напоминание
min
Max
Первое значение
, или 'lastvalue'
| представьте в виде строки со значением "sum"
среднее значение
напоминание
min
Max
Первое значение
, или "lastvalue"
Метод агрегации для TT1
данные для агрегации внутримесяца или междня в виде разделенной запятой пары, состоящей из 'Aggregation'
и вектор символов, строка или указатель на функцию применились ко всем временным рядам в TT1
, или вектор ячейки из векторов символов, представьте в виде строки вектор или вектор ячейки из указателей на функцию та же длина как количество переменных в TT1
.
Методы агрегации задают, как данные агрегированы за рабочие дни в периодичности внутримесяца или междня. Доступные методы агрегации:
'sum'
— Суммируйте значения в каждом месяце или день.
'mean'
— Вычислите среднее значение значений в каждом месяце или день.
'prod'
— Вычислите продукт значений в каждом месяце или день.
'min'
— Вычислите минимум значений в каждом месяце или день.
'max'
— Вычислите максимум значений в каждом месяце или день.
'firstvalue'
— Используйте первое значение в каждом месяце или день.
'lastvalue'
— Используйте последнее значение в каждом месяце или день.
Все упомянутые выше методы не используют недостающие данные (NaN
s) в прямых вычислениях агрегации. Однако в ситуациях, в которых отсутствующие значения появляются в первой строке 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
— Ежемесячные данныеЕжемесячные данные, возвращенные как расписание. Функция возвращает NaN
s для переменных в 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.