Совокупные данные расписания для ежедневной периодичности
задает опции с использованием одного или нескольких необязательных аргументов пары "имя-значение" в сложение с входным параметром в предыдущем синтаксисе.TT2
= convert2daily(___,Name,Value
)
Применить отдельные методы агрегации к связанным переменным в 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
Совокупные цены и логарифмические возвраты к ежедневной периодичности. Чтобы сохранить согласованность между ценами и возвратами, для любого данного торгового дня агрегируйте цены, сообщив последнюю зарегистрированную цену при помощи "lastvalue"
и агрегировать возвраты путем суммирования всех логарифмических возвратов при помощи "sum"
.
tt = convert2daily(TT,'Aggregation',["lastvalue" "sum"]); head(tt)
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
Для проверки согласованности исследуйте вход и выходные расписания на 2 и 3 января 2018 года.
TT(1:8,:) % Input data for 02-Jan-2018 and 03-Jan-2018
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(1:2,:) % Return aggregated results
ans=2×2 timetable
Time Price Log_Return
___________ ______ __________
02-Jan-2018 101.37 0.013607
03-Jan-2018 100.12 -0.012408
Для каждого рабочего дня в TT
, заметьте, что выход агрегированная цена является последней ценой дня и что агрегированная доходность является суммой всех логарифмических возвратов. Кроме того, агрегированные возвраты соответствуют агрегированным ценам.
Например, совокупный возврат за 3 января 2018 года -0.012408
, что является логарифмическим возвратом, связанным с последними ценами, зафиксированными 2 и 3 января 2018 года (то есть -0.012408
= log(100.12)
- log(101.37)
).
Даты агрегированных результатов являются целыми датами, указывающими даты, за которые сообщаются агрегированные результаты.
TT1
- Данные для агрегирования к ежедневной периодичностиДанные для агрегирования в ежедневную периодичность, заданные как расписание.
Примечание
NaN
s указывает отсутствующие значения, временные метки должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не учитывает дни небизнеса (выходные, праздничные дни и закрытие рынка), добавьте осведомленность о бизнес-календаре при помощи addBusinessCalendar
во-первых. Например, следующая команда добавляет логику бизнес-календаря для включения только рабочих дней NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
TT2 = convert2daily(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 09:45:47 100.00 200.00 300.00 400.00 01-Jan-2018 12:48:09 100.03 200.06 300.09 400.12 02-Jan-2018 10:27:32 100.07 200.14 300.21 400.28 02-Jan-2018 12:46:09 100.08 200.16 300.24 400.32 02-Jan-2018 14:14:13 100.25 200.50 300.75 401.00 02-Jan-2018 15:52:31 100.19 200.38 300.57 400.76 03-Jan-2018 09:47:11 100.54 201.08 301.62 402.16 03-Jan-2018 11:24:23 100.59 201.18 301.77 402.36 03-Jan-2018 14:41:17 101.40 202.80 304.20 405.60 03-Jan-2018 16:00:00 101.94 203.88 305.82 407.76 04-Jan-2018 09:55:51 102.53 205.06 307.59 410.12 04-Jan-2018 10:07:12 103.35 206.70 310.05 413.40 04-Jan-2018 14:26:23 103.40 206.80 310.20 413.60 05-Jan-2018 13:13:12 103.91 207.82 311.73 415.64 05-Jan-2018 14:57:53 103.89 207.78 311.67 415.56
Соответствующие ежедневные результаты по умолчанию, представляющие TT2
(где 'lastvalue'
сообщается за каждый день) указаны ниже.
Time AAA BBB CCC ___________ ______ ______ ________________ 01-Jan-2018 100.03 200.06 300.09 400.12 02-Jan-2018 100.19 200.38 300.57 400.76 03-Jan-2018 101.94 203.88 305.82 407.76 04-Jan-2018 103.40 206.80 310.20 413.60 05-Jan-2018 103.89 207.78 311.67 415.56
Типы данных: char
| string
| cell
| function_handle
TT2
- Ежедневные данныеЕжедневные данные, возвращенные как расписание. Функция возвращается NaN
s для переменных в TT2
для рабочих дней, когда данные для этих переменных не записаны в TT1
. Если TT1
находится в порядке возрастания, так же как и TT2
, и если TT1
находится в порядке убывания, так же как и TT2
.
Первое свидание в TT2
является первой бизнес-датой на или после первой даты в TT1
. Последняя дата в TT2
является последней рабочей датой на или перед последней датой в TT1
.
convert2annual
| convert2monthly
| convert2quarterly
| convert2semiannual
| convert2weekly
| timetable
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.