Совокупные данные о расписании к ежедневной периодичности
Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты в SimulatedStockSeries.mat
.
load SimulatedStockSeries
Расписание DataTable
содержит измерения, зарегистрированные в различные, неправильные времена в течение торговых часов (9:30 к 16:00) Нью-Йоркской фондовой биржи (NYSE) с 1 января 2018, в течение 31 декабря 2020.
Например, отобразите первые несколько наблюдений.
head(DataTable)
ans=8×2 timetable
Time Price Log_Return
____________________ ______ __________
01-Jan-2018 11:52:48 100 -0.025375
01-Jan-2018 13:23:13 101.14 0.011336
01-Jan-2018 14:45:09 101.5 0.0035531
01-Jan-2018 15:30:30 100.15 -0.01339
02-Jan-2018 10:43:37 99.72 -0.0043028
03-Jan-2018 10:02:21 100.11 0.0039033
03-Jan-2018 11:22:37 103.96 0.037737
03-Jan-2018 13:42:27 107.05 0.02929
DataTable
не включает осведомленность бизнес-календаря. Если вы хотите с учетом нерабочих дней (выходные, праздники и закрытия рынка), и вы имеете лицензию Financial Toolbox™, добавляете осведомленность бизнес-календаря при помощи addBusinessCalendar
функция.
Агрегируйте ежедневный ценовой ряд к ежедневному ряду путем создания отчетов об окончательной цене каждого дня.
DailyPrice = convert2daily(DataTable(:,"Price"));
tail(DailyPrice)
ans=8×1 timetable
Time Price
___________ ______
24-Dec-2020 286.35
25-Dec-2020 286.26
26-Dec-2020 285.68
27-Dec-2020 285.61
28-Dec-2020 294.36
29-Dec-2020 300.44
30-Dec-2020 303.84
31-Dec-2020 301.04
DailyPrice
расписание, содержащее окончательные цены в течение каждого дня, о котором сообщают, в DataTable
.
В этом примере показано, как задать соответствующий метод агрегации для модулей переменной.
Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты SimulatedStockSeries.mat
.
load SimulatedStockSeries
Ценовая серия Price
содержит абсолютные измерения, тогда как журнал возвращает серию Log_Return
скорость изменения ценового ряда среди последовательных наблюдений. Поскольку ряды имеют различные модули, необходимо задать соответствующий метод, когда вы агрегировали ряд. А именно, если вы сообщаете об окончательной цене за данную периодичность, необходимо сообщить, что сумма журнала возвращается в каждый период.
Агрегируйте данные так, чтобы результат имел ежедневную периодичность. Для каждого ряда задайте метод агрегации, который подходит для модуля.
DailyTT = convert2daily(DataTable,Aggregation=["lastvalue" "sum"])
DailyTT=1096×2 timetable
Time Price Log_Return
___________ ______ __________
01-Jan-2018 100.15 -0.023876
02-Jan-2018 99.72 -0.0043028
03-Jan-2018 105.57 0.057008
04-Jan-2018 109.01 0.032065
05-Jan-2018 110.69 0.015294
06-Jan-2018 110.48 -0.001899
07-Jan-2018 113.83 0.029872
08-Jan-2018 116.41 0.022412
09-Jan-2018 118.54 0.018132
10-Jan-2018 120.46 0.016067
11-Jan-2018 120.87 0.0033978
12-Jan-2018 119.91 -0.0079741
13-Jan-2018 117.38 -0.021325
14-Jan-2018 116.04 -0.011482
15-Jan-2018 114.72 -0.011441
16-Jan-2018 115.28 0.0048696
⋮
DailyTT1
расписание, содержащее ежедневные окончательные цены, и журнал возвращается.
Проверьте результаты на 1 января 2018 в течение 3 января 2018.
jan42018 = datetime(2018,01,04); DataTable(DataTable.Time < jan42018,:)
ans=9×2 timetable
Time Price Log_Return
____________________ ______ __________
01-Jan-2018 11:52:48 100 -0.025375
01-Jan-2018 13:23:13 101.14 0.011336
01-Jan-2018 14:45:09 101.5 0.0035531
01-Jan-2018 15:30:30 100.15 -0.01339
02-Jan-2018 10:43:37 99.72 -0.0043028
03-Jan-2018 10:02:21 100.11 0.0039033
03-Jan-2018 11:22:37 103.96 0.037737
03-Jan-2018 13:42:27 107.05 0.02929
03-Jan-2018 14:45:20 105.57 -0.013922
DailyTT(DailyTT.Time < jan42018,:)
ans=3×2 timetable
Time Price Log_Return
___________ ______ __________
01-Jan-2018 100.15 -0.023876
02-Jan-2018 99.72 -0.0043028
03-Jan-2018 105.57 0.057008
По визуальному сравнению, ежедневному соответствию конечных результатов. Каждый вычисляемый ежедневный логарифмический возврат является суммой журнала, возвращается зарегистрированный в течение соответствующего дня в необработанных данных. Двойная проверка журнал возвращается от 2 и 3 января путем вычисления различия между логарифмическими окончательными ценами в течение каждого дня.
verify = diff(log(DailyTT.Price)); verify(1:2)
ans = 2×1
-0.0043
0.0570
TT1
— Данные, чтобы агрегироваться к ежедневной периодичностиДанные, чтобы агрегироваться к ежедневной периодичности в виде расписания.
Каждая переменная может быть числовым вектором (одномерный ряд) или числовая матрица (многомерный ряд).
Примечание
NaN
s указывают на отсутствующие значения.
Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), и вы имеете лицензию Financial Toolbox™, добавляете осведомленность бизнес-календаря при помощи addBusinessCalendar
сначала. Например, следующая команда добавляет логику бизнес-календаря, чтобы включать только рабочие дни NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN
, где Name
имя аргумента и Value
соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
TT2 = convert2daily(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
— Пользовательский метод агрегации, который принимает расписание и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры []
.
Если вы задаете отдельный метод, convert2daily
применяет заданный метод ко всем временным рядам в TT1
. Если вы задаете вектор строки или вектор ячейки aggregation
, convert2daily
применяет агрегацию (
к j
)TT1 (:
; J
)convert2daily
применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime
). Например, рассмотрите ежедневное расписание, представляющее 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
Все методы не используют недостающие данные (NaN
s) в прямых вычислениях агрегации на каждой переменной. Однако для ситуаций, в которых отсутствующие значения появляются в первой строке TT1
, отсутствующие значения могут также появиться в агрегированных результатах TT2
. Чтобы обратиться к недостающим данным, запишите и задайте пользовательский метод агрегации (указатель на функцию), который поддерживает недостающие данные.
Типы данных: char |
string
| cell
| function_handle
TT2
— Ежедневные данныеЕжедневные данные, возвращенные как расписание. Временная договоренность TT1
и TT2
то же самое.
Если переменная TT1
не имеет никаких записей в течение рабочего дня в промежутке времени выборки, convert2daily
возвращает NaN
в течение того переменного и рабочего дня в TT2
.
Первое свидание в TT2
первая бизнес-дата на или после первого свидания в TT1
. Последняя дата в TT2
последняя бизнес-дата на или перед последней датой в TT1
.
convert2weekly
| convert2monthly
| convert2quarterly
| convert2semiannual
| convert2annual
| timetable
| addBusinessCalendar
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.