Совокупные данные о расписании к полугодовой периодичности
Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты 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
функция.
Агрегируйте ценовой ряд к полугодовому ряду путем создания отчетов об окончательной цене каждого периода в январе к июню и периода в июле к декабрю.
SemiannualPrice = convert2semiannual(DataTable(:,"Price"));
tail(SemiannualPrice)
ans=6×1 timetable
Time Price
___________ ______
30-Jun-2018 99.29
31-Dec-2018 84.26
30-Jun-2019 169.77
31-Dec-2019 153.22
30-Jun-2020 224.29
31-Dec-2020 301.04
SemiannualPrice
расписание, содержащее окончательные цены за каждый полугодовой период, о котором сообщают, в DataTable
.
В этом примере показано, как задать соответствующий метод агрегации для модулей переменной. Кроме того, пример показывает, как использовать convert2semiannual
агрегировать и суточные данные и агрегированные ежеквартальные данные, которые приводят к эквивалентным полугодовым агрегатам.
Загрузите симулированные данные о курсе акций и соответствующие логарифмические возвраты SimulatedStockSeries.mat
.
load SimulatedStockSeries
Ценовая серия Price
содержит абсолютные измерения, тогда как журнал возвращает серию Log_Return
скорость изменения ценового ряда среди последовательных наблюдений. Поскольку ряды имеют различные модули, необходимо задать соответствующий метод, когда вы агрегировали ряд. А именно, если вы сообщаете об окончательной цене за данную периодичность, необходимо сообщить, что сумма журнала возвращается в каждый период.
Чтобы проиллюстрировать, как обеспечить непротиворечивость среди методов агрегации, используйте два подхода, чтобы агрегировать DataTable
так, чтобы результат имел полугодовую периодичность.
Передайте DataTable
непосредственно к convert2semiannual
.
Совокупный DataTable
так, чтобы результат имел ежеквартальную периодичность при помощи convert2quarterly
, и затем передайте результат convert2semiannual
.
В обоих случаях задайте создание отчетов о последней цене, и сумма журнала возвращается в течение каждого периода.
Непосредственно совокупный данные так, чтобы результат имел полугодовую периодичность. Для каждого ряда задайте метод агрегации, который подходит для модуля.
aggmethods = ["lastvalue" "sum"]; SemiannualTT1 = convert2semiannual(DataTable,Aggregation=aggmethods); tail(SemiannualTT1)
ans=6×2 timetable
Time Price Log_Return
___________ ______ __________
30-Jun-2018 99.29 -0.032501
31-Dec-2018 84.26 -0.16414
30-Jun-2019 169.77 0.70054
31-Dec-2019 153.22 -0.10257
30-Jun-2020 224.29 0.38107
31-Dec-2020 301.04 0.2943
SemiannualTT1
расписание, содержащее полугодовые данные. Price
серия итоговых курсов акций в течение каждого периода в январе к июню и периода в июле к декабрю и Log_Return
сумма журнала, возвращается в течение каждого полугодового периода.
Агрегируйте данные на двух шагах: агрегируйте данные так, чтобы результат имел ежеквартальную периодичность, затем агрегируйте ежеквартальные данные к полугодовым данным. Для каждого ряда задайте метод агрегации, который подходит для модуля.
QuarterlyTT = convert2quarterly(DataTable,Aggregation=aggmethods); tail(QuarterlyTT)
ans=8×2 timetable
Time Price Log_Return
___________ ______ __________
31-Mar-2019 112.93 0.29286
30-Jun-2019 169.77 0.40768
30-Sep-2019 148.97 -0.1307
31-Dec-2019 153.22 0.02813
31-Mar-2020 229.88 0.40568
30-Jun-2020 224.29 -0.024618
30-Sep-2020 246.77 0.095517
31-Dec-2020 301.04 0.19879
SemiannualTT2 = convert2semiannual(QuarterlyTT,Aggregation=aggmethods)
SemiannualTT2=6×2 timetable
Time Price Log_Return
___________ ______ __________
30-Jun-2018 99.29 -0.032501
31-Dec-2018 84.26 -0.16414
30-Jun-2019 169.77 0.70054
31-Dec-2019 153.22 -0.10257
30-Jun-2020 224.29 0.38107
31-Dec-2020 301.04 0.2943
QuarterlyTT
расписание с ежеквартальной периодичностью. Price
серия итоговых курсов акций для каждой четверти и Log_Return
сумма журнала, возвращается для каждой четверти.
SemiannualTT1
и SemiannualTT2
равны.
TT1
— Данные, чтобы агрегироваться к полугодовой периодичностиДанные, чтобы агрегироваться к полугодовой периодичности в виде расписания.
Каждая переменная может быть числовым вектором (одномерный ряд) или числовая матрица (многомерный ряд).
Примечание
NaN
s указывают на отсутствующие значения.
Метки времени должны быть в порядке возрастания или убывания.
По умолчанию все дни являются рабочими днями. Если ваше расписание не считает в течение многих нерабочих дней (выходные, праздники и закрытия рынка), и вы имеете лицензию Financial Toolbox™, добавляете осведомленность бизнес-календаря при помощи addBusinessCalendar
сначала. Например, следующая команда добавляет логику бизнес-календаря, чтобы включать только рабочие дни NYSE.
TT = addBusinessCalendar(TT);
Типы данных: timetable
Задайте дополнительные пары аргументов как Name1=Value1,...,NameN=ValueN
, где Name
имя аргумента и Value
соответствующее значение. Аргументы name-value должны появиться после других аргументов, но порядок пар не имеет значения.
TT2 = convert2semiannual(TT1,'Aggregation',["lastvalue" "sum"])
Aggregation
— Метод агрегации в течение полугодового периода к полугодовой периодичности (междневная агрегация)"lastvalue"
(значение по умолчанию) | "sum"
| "prod"
| "mean"
| "min"
| "max"
| "firstvalue"
| вектор символов | указатель на функцию | представляет вектор в виде строки | вектор ячейки из векторов символов или указателей на функциюМетод агрегации для TT1
определение, как данные агрегированы за рабочие дни в полугодовой период к полугодовой агрегации периодичности в виде одного из следующих методов, вектора строки из методов или длины numVariables
вектор ячейки из методов, где numVariables
количество переменных в TT1
.
"sum"
— Суммируйте значения в каждом году или день.
"mean"
— Вычислите среднее значение значений в каждом году или день.
"prod"
— Вычислите продукт значений в каждом году или день.
"min"
— Вычислите минимум значений в каждом году или день.
"max"
— Вычислите максимум значений в каждом году или день.
"firstvalue"
— Используйте первое значение в каждом году или день.
"lastvalue"
— Используйте последнее значение в каждом году или день.
@customfcn
— Пользовательский метод агрегации, который принимает табличную переменную и возвращает числовой скаляр (для одномерного ряда) или вектор-строка (для многомерного ряда). Функция должна принять пустые входные параметры []
.
Если вы задаете отдельный метод, convert2semiannual
применяет заданный метод ко всем временным рядам в TT1
. Если вы задаете вектор строки или вектор ячейки aggregation
, convert2semiannual
применяет агрегацию (
к j
)TT1 (:
; J
)convert2semiannual
применяет каждый метод агрегации по одному (для получения дополнительной информации, смотрите retime
). Например, рассмотрите ежедневное расписание, представляющее TT1
с тремя переменными.
Time AAA BBB CCC ___________ ______ ______ _________________ 01-Jan-2018 100.00 200.00 300.00 400.00 02-Jan-2018 100.02 200.04 300.06 400.08 03-Jan-2018 99.96 199.92 299.88 399.84 . . . . . . . . . . . . . . . 28-Jun-2018 69.63 139.26 208.89 278.52 29-Jun-2018 70.15 140.3 210.45 280.60 30-Jun-2018 75.77 151.54 227.31 303.08 01-Jul-2018 75.68 151.36 227.04 302.72 02-Jul-2018 71.34 142.68 214.02 285.36 03-Jul-2018 69.25 138.50 207.75 277.00 . . . . . . . . . . . . . . . 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 ___________ ______ ______ ________________ 30-Jun-2018 75.77 151.54 227.31 303.08 31-Dec-2018 256.75 513.50 770.25 1027.00
Все методы не используют недостающие данные (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
TT2
— Полугодовые данныеПолугодовые данные, возвращенные как расписание. convert2semiannual
сообщают полугодовые результаты агрегации в прошлый рабочий день июня и декабря. Функция возвращает NaN
s для переменных в TT2
в течение полугодовых периодов, когда никакие данные не зарегистрированы ни в какие рабочие дни для тех переменных в TT1
. Если TT1
в порядке возрастания, так также TT2
, и если TT1
в порядке убывания, так также TT2
.
Первое свидание в TT2
последняя бизнес-дата полугодового периода в который первое свидание в TT1
происходит, обеспечил TT1
имеет бизнес-даты в тот полугодовой период, в противном случае первое свидание в TT2
следующий конец полугодовой даты бизнеса периода.
Последняя дата в TT2
последняя бизнес-дата полугодового периода в который последняя дата в TT1
происходит, обеспечил TT1
имеет бизнес-даты в тот полугодовой период, в противном случае последнюю дату в TT2
предыдущий конец полугодовой даты бизнеса периода.
convert2daily
| convert2weekly
| convert2monthly
| convert2quarterly
| convert2annual
| timetable
| addBusinessCalendar
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.