Добавьте осведомленность о бизнес-календаре к расписаниям
задает опции с использованием одного или нескольких необязательных аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Для примера, TT
= addBusinessCalendar(___,Name,Value
)TT = addBusinessCalendar(TT,'Holidays',H)
задает список праздничных дней, заданный как вектор datetime, который заменяет праздничные дни по умолчанию, найденные в holidays.m
. Можно задать несколько аргументы пары "имя-значение".
В этом примере показано добавление бизнес-календаря при вычислении скользящих различий по периодам (PoP) для 5 лет моделируемых дневных цен. Для каждой даты в расписании TT
, различие представляет собой разницу PoP соответствующей цены по сравнению с ценой за один период до этого.
Использование holidays
для указания праздников в holidays.m
для периода симуляции.
H = holidays(datetime(2014,1,1),datetime(2018,12,31));
Моделируйте ежедневные цены на три актива.
t = (datetime(2014,1,1):caldays:datetime(2018,12,31))'; rng(200,'twister') Price = 100 + 0.1*(0:numel(t) - 1)'.*cumsum(randn(numel(t),1)/100); Price = round(Price*100)/100; Price2 = round(Price*94)/100; Price3 = round(Price*88)/100; TT = timetable(Price,Price2,Price3,'RowTimes',t); head(TT,15)
ans=15×3 timetable
Time Price Price2 Price3
___________ ______ ______ ______
01-Jan-2014 100 94 88
02-Jan-2014 100 94 88
03-Jan-2014 100 94 88
04-Jan-2014 100 94 88
05-Jan-2014 100.01 94.01 88.01
06-Jan-2014 100.01 94.01 88.01
07-Jan-2014 100.02 94.02 88.02
08-Jan-2014 100.02 94.02 88.02
09-Jan-2014 100.04 94.04 88.04
10-Jan-2014 100.06 94.06 88.05
11-Jan-2014 100.08 94.08 88.07
12-Jan-2014 100.11 94.1 88.1
13-Jan-2014 100.11 94.1 88.1
14-Jan-2014 100.12 94.11 88.11
15-Jan-2014 100.12 94.11 88.11
Использование addBusinessCalendar
для указания праздничных дней для периода симуляции в расписании TT.
TT = addBusinessCalendar(TT,'Holidays',H);
Использование rollingreturns
с 'Method'
Аргумент пары "имя-значение" установлен на 'difference'
для вычисления различий, то есть изменения периода за периодом.
deltas = rollingreturns(TT,'Period',calweeks(1),'Method','difference'); head(deltas,15)
ans=15×3 timetable
Time Price_Difference_1w Price2_Difference_1w Price3_Difference_1w
___________ ___________________ ____________________ ____________________
01-Jan-2014 NaN NaN NaN
02-Jan-2014 NaN NaN NaN
03-Jan-2014 NaN NaN NaN
04-Jan-2014 NaN NaN NaN
05-Jan-2014 NaN NaN NaN
06-Jan-2014 NaN NaN NaN
07-Jan-2014 NaN NaN NaN
08-Jan-2014 NaN NaN NaN
09-Jan-2014 0.04 0.04 0.04
10-Jan-2014 0.06 0.06 0.05
11-Jan-2014 0.08 0.08 0.07
12-Jan-2014 0.11 0.1 0.1
13-Jan-2014 0.1 0.09 0.09
14-Jan-2014 0.1 0.09 0.09
15-Jan-2014 0.1 0.09 0.09
TT
- Входное расписание для обновления осведомленности о бизнес-календареВходное расписание для обновления осведомленности о бизнес-календаре, заданное как timetable
.
Типы данных: timetable
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
TT = addBusinessCalendar(TT,'Holidays',H)
'Holidays'
- Альтернативные праздники и даты закрытия рынкаholidays.m
(по умолчанию) | вектор datetimesАльтернативные праздники и даты закрытия рынка, заданные как разделенная разделенными запятой парами, состоящая из 'Holidays'
и вектор datetimes. Даты в Holidays
должны быть целыми датами, без каких-либо HH:MM:SS
компоненты. Бизнес не ведётся в даты в Holidays
. Для получения дополнительной информации см. holidays
и isbusday
.
Вы можете сгенерировать альтернативные расписания праздников с помощью createholidays
функция. Для этого выполните следующие шаги:
Сгенерируйте новую holidays
использование функции createholidays
.
Вызовите новую holidays
функция для получения списка праздничных дней.
Передайте альтернативные праздничные дни, чтобы addBusinessCalendar
использование 'Holidays'
аргумент пары "имя-значение".
Типы данных: char
| double
'Weekends'
- Альтернативные выходные дни, в которые не ведутся деловые операции[1 0 0 0 0 0 1]
что эквивалентно ["Sunday" "Saturday"]
(по умолчанию) | логический вектор с 7 элементами | строковый вектор со значением ["Sunday" "Saturday"]
Альтернативные выходные дни, в которые не проводится бизнес, указываются как разделенная разделенными запятой парами, состоящая из 'Weekends'
и логический вектор с семью элементами, в которых true (1
) указывает на выходной день и ложь (0
) указывает на будний день. Элементы 'Weekends'
закодированы как воскресенье, понедельник, вторник, среда, четверг, пятница и суббота. Можно также задать 'Weekends'
как строковый вектор, элементы которого явно перечисляют выходные дни. Если бизнес ведется семь дней в неделю, то уточняйте 'Weekends'
как [0 0 0 0 0 0 0]
.
Типы данных: logical
TT
- Обновленное расписание TT
с добавленной осведомленностью бизнес-календаря пользовательским свойствомОбновленное расписание TT
с добавленной осведомленностью бизнес-календаря пользовательским свойством BusinessCalendar
, возвращается как timetable
.
Настраиваемое свойство BusinessCalendar
содержит структуру данных, содержащую поле IsBusinessDay
который хранит вызываемую функцию (F
). Функция F
принимает матрицу datetime (D
) и возвращает матрицу логического индикатора (I
) того же размера: I = F(D)
. Истинные (1) элементы I
указать, что соответствующий элемент D
происходит в рабочий день; false (0) элементы I
указать обратное. Доступ к функции callable F
при помощи F = TT.Properties.CustomProperties.BusinessCalendar.IsBusinessDay
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.