Агрегирование данных по расписанию на полугодовую периодичность
указывает параметры, использующие один или несколько необязательных аргументов пары имя-значение в дополнение к входному аргументу в предыдущем синтаксисе.TT2 = convert2semiannual(___,Name,Value)
Применение отдельных методов агрегации к связанным переменным в timetable при сохранении согласованности между агрегированными результатами при преобразовании в полугодовую периодичность. Вы можете использовать convert2semiannual для агрегирования как внутрисуточных, так и агрегированных квартальных данных. Эти методы приводят к эквивалентным полугодичным агрегатам.
Загрузить расписание (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
Использовать convert2quarterly для агрегирования внутрисуточных цен и возврата к квартальной периодичности. Для поддержания непротиворечивости между ценами и доходностью, для любого данного квартала, агрегированные цены, сообщая последнюю зарегистрированную цену с помощью "lastvalue" и суммировать результаты суммированием всех логарифмических результатов с использованием "sum".
TT1 = convert2quarterly(TT,'Aggregation',["lastvalue" "sum"])
TT1=12×2 timetable
Time Price Log_Return
___________ ______ __________
29-Mar-2018 108.9 0.08526
29-Jun-2018 96.24 -0.12358
28-Sep-2018 111.37 0.14601
31-Dec-2018 92.72 -0.18327
29-Mar-2019 78.7 -0.16394
28-Jun-2019 110.54 0.33973
30-Sep-2019 180.13 0.4883
31-Dec-2019 163.65 -0.095949
31-Mar-2020 177.46 0.081015
30-Jun-2020 168.96 -0.049083
30-Sep-2020 260.77 0.43398
31-Dec-2020 274.75 0.052223
Использовать convert2semiannual агрегировать данные до полугодовой периодичности и сравнивать результаты двух различных подходов. Первый подход вычисляет полугодовые результаты путем агрегирования квартальных агрегатов, а второй подход вычисляет полугодовые результаты путем прямого агрегирования исходных данных внутри дня. Обратите внимание, что convert2semiannual сообщает результаты за последний рабочий день июня и декабря.
tt1 = convert2semiannual(TT1,'Aggregation',["lastvalue" "sum"]) % Quarterly to semiannual
tt1=6×2 timetable
Time Price Log_Return
___________ ______ __________
29-Jun-2018 96.24 -0.038325
31-Dec-2018 92.72 -0.037261
28-Jun-2019 110.54 0.17579
31-Dec-2019 163.65 0.39235
30-Jun-2020 168.96 0.031932
31-Dec-2020 274.75 0.4862
tt2 = convert2semiannual(TT ,'Aggregation',["lastvalue" "sum"]) % Intra-daily to semiannual
tt2=6×2 timetable
Time Price Log_Return
___________ ______ __________
29-Jun-2018 96.24 -0.038325
31-Dec-2018 92.72 -0.037261
28-Jun-2019 110.54 0.17579
31-Dec-2019 163.65 0.39235
30-Jun-2020 168.96 0.031932
31-Dec-2020 274.75 0.4862
Результаты этих двух подходов одинаковы, поскольку каждый полугодовой период содержит ровно два календарных квартала.
TT1 - Данные для агрегирования на полугодовую периодичностьДанные для агрегирования до полугодовой периодичности, указанные в расписании. Полугодовые результаты агрегирования сообщаются в последний рабочий день июня и декабря.
Примечание
NaNs указывает на отсутствие значений. Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает нерабочие дни (выходные, праздничные дни и закрытие рынка), добавьте информацию о бизнес-календаре с помощью addBusinessCalendar во-первых. Например, следующая команда добавляет логику бизнес-календаря для включения только рабочих дней NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
TT2 = convert2semiannual(TT1,'Aggregation',["lastvalue" "sum"])'Aggregation' - Метод агрегирования для полугодового периода до полугодовой периодичности (агрегирование между днями)'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.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Типы данных: char | string | cell | function_handle
'Daily' - Метод внутрисуточной агрегации данных в TT1Метод внутрисуточной агрегации данных в TT1, указанная как пара, разделенная запятыми, состоящая из 'Daily' и вектор скалярных символов, строка или дескриптор функции, применяемые ко всем временным рядам в TT1, или вектор ячейки символьных векторов, строковый массив или вектор ячейки функции, обрабатывающий то же самое число переменных в TT1.
Типы данных: char | string | cell | function_handle
TT2 - Полугодовые данныеПолугодовые данные, возвращенные в виде расписания. Функция возвращает NaNs для переменных в TT2 для полугодовых периодов, когда данные не записываются ни в какие рабочие дни для этих переменных в TT1. Если TT1 находится в порядке возрастания, так же TT2, и если TT1 находится в порядке убывания, так же TT2.
Первая дата в TT2 является последней рабочей датой полугодового периода, в котором первая дата TT1 происходит, при условии TT1 имеет рабочие даты в этом полугодовом периоде, в противном случае первая дата в TT2 является следующей рабочей датой конца полугодового периода.
Последняя дата в TT2 - последняя рабочая дата полугодового периода, в котором последняя дата в TT1 происходит, при условии TT1 имеет рабочие даты в этом полугодовом периоде, в противном случае последняя дата в TT2 - это предыдущая рабочая дата окончания полугодового периода.
convert2annual | convert2daily | convert2monthly | convert2quarterly | convert2weekly | timetable
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.