Совокупные данные расписания до полугодовой периодичности
задает опции с использованием одного или нескольких необязательных аргументов пары "имя-значение" в сложение с входным параметром в предыдущем синтаксисе.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
- Данные для агрегирования до полугодовой периодичностиДанные для агрегирования в полугодовую периодичность, заданную в виде расписания. В последний рабочий день июня и декабря представлены результаты полугодовой агрегирования.
Примечание
NaN
s указывает отсутствующие значения. Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает дни небизнеса (выходные, праздничные дни и закрытие рынка), добавьте осведомленность о бизнес-календаре при помощи 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'
- Используйте последнее значение в каждом полугодовом периоде или дне.
Все перечисленные выше методы опускают отсутствующие данные (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.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
- Полугодовые данныеПолугодовые данные, возвращенные как расписание. Функция возвращается NaN
s для переменных в 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.