Совокупные данные расписания для ежегодной периодичности
задает опции с использованием одного или нескольких необязательных аргументов пары "имя-значение" в сложение с входным параметром в предыдущем синтаксисе.TT2
= convert2annual(___,Name,Value
)
Прикладные методы агрегации к связанным переменным в timetable
при сохранении согласованности между агрегированными результатами при преобразовании в годовую периодичность. Можно использовать convert2annual
агрегировать как внутрисуточные данные, так и агрегированные ежемесячные данные. Эти методы приводят к эквивалентным годовым агрегатам.
Загрузите расписание (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 = convert2monthly(TT,'Aggregation',["lastvalue" "sum"]); head(TT1)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
31-Jan-2018 122.96 0.20669
28-Feb-2018 121.92 -0.008494
29-Mar-2018 108.9 -0.11294
30-Apr-2018 110.38 0.013499
31-May-2018 99.02 -0.10861
29-Jun-2018 96.24 -0.028477
31-Jul-2018 97.15 0.0094111
31-Aug-2018 101.51 0.043901
Использование convert2annual
агрегировать данные по годовой периодичности и сравнить результаты двух различных подходов к агрегированию. Первый подход вычисляет годовые результаты путем агрегирования ежемесячных агрегатов, а второй подход вычисляет ежегодные результаты путем прямого агрегирования исходных внутридневных данных. Заметьте, что по умолчанию конвертируемые отчеты результатов в последний рабочий день декабря. Чтобы изменить месяц, заканчивающий годовые периоды, используйте 'EndOfYearMonth'
аргумент пары "имя-значение" для convert2annual
.
tt1 = convert2annual(TT1,'Aggregation',["lastvalue" "sum"]) % Monthly to annual
tt1=3×2 timetable
Time Price Log_Return
___________ ______ __________
31-Dec-2018 92.72 -0.075586
31-Dec-2019 163.65 0.56815
31-Dec-2020 274.75 0.51813
tt2 = convert2annual(TT ,'Aggregation',["lastvalue" "sum"]) % Intra-daily to semiannual
tt2=3×2 timetable
Time Price Log_Return
___________ ______ __________
31-Dec-2018 92.72 -0.075586
31-Dec-2019 163.65 0.56815
31-Dec-2020 274.75 0.51813
Результаты двух подходов одинаковы, поскольку каждый годовой период содержит в точности 12 календарных месяцев.
TT1
- Данные для агрегирования в годовую периодичностьДанные для агрегирования в годовую периодичность, указанные в виде расписания.
Примечание
NaN
s указывает отсутствующие значения. Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает дни небизнеса (выходные, праздничные дни и закрытие рынка), добавьте осведомленность о бизнес-календаре при помощи addBusinessCalendar
во-первых. Например, следующая команда добавляет логику бизнес-календаря для включения только рабочих дней NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
TT2 = convert2annual(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'
- Используйте последнее значение в каждом году или дне.
Все перечисленные выше методы опускают отсутствующие данные (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 . . . . . . . . . . . . . . . 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 ___________ ______ ______ ________________ 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
'EndOfYearMonth'
- Месяц, который заканчивается годовыми периодами'December'
(неделя заканчиваются в пятницу) (по умолчанию) | целое число со значением 1
на 12
| вектор символов с 'January'
значений
, 'February'
, 'March'
, 'April'
, 'May'
, 'June'
, 'July'
, 'August'
, 'September'
, 'October'
, 'November'
, или 'December'
| строку со значением "January"
, "February"
, "March"
, "April"
, "May"
, "June"
, "July"
, "August"
, "September"
, "October"
, "November"
, или "December"
Месяц, который заканчивает годовые периоды, заданный как разделенная разделенными запятой парами, состоящая из 'EndOfYearMonth'
и строку, вектор символов или скаляр целое число.
Типы данных: double
| char
| string
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.