Совокупные данные о расписании к ежемесячной периодичности
Примените отдельные методы агрегации к связанным переменным в 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
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN
, где Name
имя аргумента и Value
соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
TT2 = convert2monthly(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
— Пользовательский метод агрегации, который принимает табличную переменную и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры []
.
Если вы задаете отдельный метод, convert2monthly
применяет заданный метод ко всем временным рядам в TT1
. Если вы задаете вектор строки или вектор ячейки aggregation
, convert2monthly
применяет агрегацию (
к j
)TT1 (:
; J
)convert2monthly
применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите 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 . . . . . . . . . . . . . . . 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
Все методы не используют недостающие данные (NaN
s) в прямых вычислениях агрегации на каждой переменной. Однако для ситуаций, в которых отсутствующие значения появляются в первой строке TT1
, отсутствующие значения могут также появиться в агрегированных результатах TT2
. Чтобы обратиться к недостающим данным, запишите и задайте пользовательский метод агрегации (указатель на функцию), который поддерживает недостающие данные.
Типы данных: char |
string
| cell
| function_handle
Daily
— Суточный метод агрегации для TT1
"lastvalue"
(значение по умолчанию) | "sum"
| "prod"
| "mean"
| "min"
| "max"
| "firstvalue"
| вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюСуточный метод агрегации для TT1
В виде метода агрегации, вектора строки из методов или длины numVariables
вектор ячейки из методов. Для получения дополнительной информации о поддерживаемых методах и поведениях, смотрите 'Aggregation'
аргумент значения имени.
Типы данных: char |
string
| cell
| function_handle
EndOfMonthDay
— День месяца, который заканчивает месяцы1
к 31
День месяца, который заканчивает месяцы в виде скалярного целого числа со значением 1
к 31
. В течение многих месяцев с меньшим количеством дней, чем EndOfMonthDay
, convert2monthly
агрегация отчетов заканчивается в прошлый рабочий день месяца.
Типы данных: double
TT2
— Ежемесячные данныеЕжемесячные данные, возвращенные как расписание. Временная договоренность TT1
и TT2
то же самое.
Если переменная TT1
не имеет никаких записей рабочего дня в течение месяца в промежутке времени выборки, convert2monthly
возвращает NaN
для той переменной и месяц в TT2
.
Если первый месяц (month1
) из TT1
содержит по крайней мере один рабочий день, первое свидание в TT2
последняя бизнес-дата month1
. В противном случае, первое свидание в TT2
следующая дата бизнеса конца месяца TT1
.
Если в прошлом месяце (monthT
) из TT1
содержит по крайней мере один рабочий день, последнюю дату в TT2
последняя бизнес-дата monthT
. В противном случае, последняя дата в TT2
предыдущая дата бизнеса конца месяца TT1
.
convert2daily
| convert2weekly
| convert2quarterly
| convert2semiannual
| convert2annual
| addBusinessCalendar
| timetable
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.