Совокупные данные о расписании к еженедельной периодичности
Примените отдельные методы агрегации к связанным переменным в timetable при поддержании непротиворечивости между агрегированными результатами при преобразовании от ежедневной газеты до еженедельной периодичности. Можно использовать convert2weekly агрегировать и внутриежедневные данные и агрегированные ежедневные данные. Эти методы результат в эквивалентном еженедельнике агрегируются.
Загрузите расписание (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
Используйте convert2daily к совокупным внутриежедневным ценам и возвращается к ежедневной периодичности. Обеспечить непротиворечивость между ценами и возвращается, в течение любого данного торгового дня, совокупных цен путем создания отчетов о последней записанной цене с "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
Используйте convert2weekly агрегировать данные к еженедельной периодичности и сравнить результаты двух различных подходов агрегации. Первый подход вычисляет еженедельные результаты путем агрегации ежедневной газеты, агрегируется, и второй подход вычисляет еженедельные результаты путем прямой агрегации исходных внутриежедневных данных.
tt1 = convert2weekly(TT1,'Aggregation',["lastvalue" "sum"]); % Daily to weekly tt2 = convert2weekly(TT ,'Aggregation',["lastvalue" "sum"]); % Intra-daily to weekly head(tt1)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
05-Jan-2018 112.78 0.12027
12-Jan-2018 125.93 0.11029
19-Jan-2018 117.67 -0.067842
26-Jan-2018 118.8 0.0095573
02-Feb-2018 120.85 0.017109
09-Feb-2018 123.68 0.023147
16-Feb-2018 124.33 0.0052417
23-Feb-2018 127.09 0.021956
head(tt2)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
05-Jan-2018 112.78 0.12027
12-Jan-2018 125.93 0.11029
19-Jan-2018 117.67 -0.067842
26-Jan-2018 118.8 0.0095573
02-Feb-2018 120.85 0.017109
09-Feb-2018 123.68 0.023147
16-Feb-2018 124.33 0.0052417
23-Feb-2018 127.09 0.021956
Заметьте, что результатами двух подходов является то же самое и тот convert2weekly отчеты по пятницам по умолчанию. В течение многих недель, в которые пятница не является торговым днем NYSE, функциональными результатами отчетов в предыдущий рабочий день. Кроме того, можно использовать convert2weekly дополнительный аргумент пары "имя-значение" 'EndOfWeekDay'чтобы задать различный день недели, которая заканчивает Business Week.
TT1 — Данные, чтобы агрегироваться к еженедельной периодичностиДанные, чтобы агрегироваться к еженедельной периодичности в виде расписания.
Каждая переменная может быть числовым вектором (одномерный ряд) или числовая матрица (многомерный ряд).
Примечание
NaNs указывают на отсутствующие значения.
Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), добавьте осведомленность бизнес-календаря при помощи addBusinessCalendar сначала. Например, следующая команда добавляет логику бизнес-календаря, чтобы включать только рабочие дни NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN, где Name имя аргумента и Value соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
TT2 = convert2weekly(TT1,'Aggregation',["lastvalue" "sum"])Aggregation — Метод агрегации для TT1 данные для внутринедельной или междневной агрегации"lastvalue"
(значение по умолчанию) | "sum"
| "prod" | "mean" | "min" | "max" | "firstvalue" | вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюМетод агрегации для TT1 определение, как данные агрегированы за рабочие дни во внутринедельной или междневной периодичности в виде одного из следующих методов, вектора строки из методов или длины numVariables вектор ячейки из методов, где numVariables количество переменных в TT1.
"sum" — Суммируйте значения в каждом году или день.
"mean" — Вычислите среднее значение значений в каждом году или день.
"prod" — Вычислите продукт значений в каждом году или день.
"min" — Вычислите минимум значений в каждом году или день.
"max" — Вычислите максимум значений в каждом году или день.
"firstvalue" — Используйте первое значение в каждом году или день.
"lastvalue" — Используйте последнее значение в каждом году или день.
@customfcn — Пользовательский метод агрегации, который принимает табличную переменную и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры [].
Если вы задаете отдельный метод, convert2weekly применяет заданный метод ко всем временным рядам в TT1. Если вы задаете вектор строки или вектор ячейки aggregation, convert2weekly применяет агрегацию ( к j)TT1 (: ; J)convert2weekly применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime). Например, рассмотрите ежедневное расписание, представляющее 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
04-Jan-2018 100.08 200.16 300.24 400.32
05-Jan-2018 100.25 200.50 300.75 401.00
06-Jan-2018 100.19 200.38 300.57 400.76
07-Jan-2018 100.54 201.08 301.62 402.16
08-Jan-2018 100.59 201.18 301.77 402.36
09-Jan-2018 101.40 202.80 304.20 405.60
10-Jan-2018 101.94 203.88 305.82 407.76
11-Jan-2018 102.53 205.06 307.59 410.12
12-Jan-2018 103.35 206.70 310.05 413.40
13-Jan-2018 103.40 206.80 310.20 413.60
14-Jan-2018 103.91 207.82 311.73 415.64
15-Jan-2018 103.89 207.78 311.67 415.56
16-Jan-2018 104.44 208.88 313.32 417.76
17-Jan-2018 104.44 208.88 313.32 417.76
18-Jan-2018 104.04 208.08 312.12 416.16
19-Jan-2018 104.94 209.88 314.82 419.76Соответствующее значение по умолчанию еженедельно заканчивается, представляя TT2 (в котором все дни являются рабочими днями и 'lastvalue' сообщается по пятницам), следующие.
Time AAA BBB CCC
___________ ______ ______ ________________
05-Jan-2018 100.25 200.50 300.75 401.00
12-Jan-2018 103.35 206.70 310.05 413.40
19-Jan-2018 104.94 209.88 314.82 419.76'lastvalue' по умолчанию возвращает последнее, наблюдаемое на данной неделе для всех переменных в TT1.
Все методы не используют недостающие данные (NaNs) в прямых вычислениях агрегации на каждой переменной. Однако для ситуаций, в которых отсутствующие значения появляются в первой строке TT1, отсутствующие значения могут также появиться в агрегированных результатах TT2. Чтобы обратиться к недостающим данным, запишите и задайте пользовательский метод агрегации (указатель на функцию), который поддерживает недостающие данные.
Типы данных: char | string | cell | function_handle
Daily — Суточный метод агрегации для TT1"lastvalue" (значение по умолчанию) | "sum" | "prod" | "mean" | "min" | "max" | "firstvalue" | вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюСуточный метод агрегации для TT1В виде метода агрегации, вектора строки из методов или длины numVariables вектор ячейки из методов. Для получения дополнительной информации о поддерживаемых методах и поведениях, смотрите 'Aggregation' аргумент значения имени.
Типы данных: char | string | cell | function_handle
EndOfWeekDay — День недели, которая заканчивает Business Week"Friday" (недели заканчиваются в пятницу) (значение по умолчанию) | скалярное целое число со значением 1 через 7 | "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | вектор символовДень недели, которая заканчивает Business Week в виде значения в таблице.
| Значение | День, заканчивающийся каждую неделю |
|---|---|
"Sunday" или 1 | В воскресенье |
"Monday" или 2 | В понедельник |
"Tuesday" или 3 | Во вторник |
"Wednesday" или 4 | В среду |
"Thursday" или 5 | В четверг |
"Friday" или 6 | В пятницу |
"Saturday" или 7 | В субботу |
Если заданный день конца недели на данной неделе не является рабочим днем, в предыдущий рабочий день концы на той неделе.
Типы данных: double | char | string
TT2 — Еженедельные данныеЕженедельные данные, возвращенные как расписание. Временная договоренность TT1 и TT2 то же самое.
Если переменная TT1 не имеет никаких записей рабочего дня в ежегодный период в промежутке времени выборки, convert2weekly возвращает NaN в течение того переменного и ежегодного периода в TT2.
Если первая неделя (week1) из TT1 содержит по крайней мере один рабочий день, первое свидание в TT2 последняя бизнес-дата week1. В противном случае, первое свидание в TT2 следующая дата бизнеса конца недели TT1.
Если на прошлой неделе (weekT) из TT1 содержит по крайней мере один рабочий день, последнюю дату в TT2 последняя бизнес-дата weekT. В противном случае, последняя дата в TT2 предыдущая дата бизнеса конца недели TT1.
convert2daily | convert2quarterly | convert2semiannual | convert2monthly | convert2annual | timetable | addBusinessCalendar
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.