Добавьте осведомленность бизнес-календаря в расписания
задает опции с помощью одного или нескольких дополнительных аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Например, 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
— Введите расписание, чтобы обновиться с осведомленностью бизнес-календаряВведите расписание, чтобы обновиться с осведомленностью бизнес-календаря в виде a 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'
— Альтернативные дни выходных дней, в которые не ведется никакое дело
который эквивалентен ["Sunday" "Saturday"]
(значение по умолчанию) | логический вектор с 7 элементами | представляет вектор в виде строки со значением ["Sunday" "Saturday"]
Альтернативные дни выходных дней, в которые никакое дело не ведется в виде разделенной запятой пары, состоящей из 'Weekends'
и логический вектор с семью элементами, в который верный (1
) указывает на день выходных дней и ложь (0
) указывает на рабочий день. Элементы 'Weekends'
закодированы как в воскресенье, в понедельник, во вторник, в среду, в четверг, в пятницу, и в субботу. Можно также задать 'Weekends'
как вектор строки, элементы которого явным образом перечисляют дни выходных дней. Если дело ведется семь дней в неделю, то задайте 'Weekends'
как [0 0 0 0 0 0 0]
.
Типы данных: логический
TT
— Обновленное расписание TT
с добавленной осведомленностью бизнес-календаря пользовательским свойствомОбновленное расписание TT
с добавленной осведомленностью бизнес-календаря пользовательским свойством BusinessCalendar
, возвращенный как a timetable
.
Пользовательское свойство BusinessCalendar
содержит структуру данных, которая содержит поле IsBusinessDay
это хранит вызываемую функцию (F
). Функциональный F
принимает матрицу datetime (D
) и возвращает логическую матрицу индикатора (I
) одного размера: I = F(D)
. Элементы true (1) I
укажите что соответствующий элемент D
происходит в рабочий день; ложь (0) элементы I
укажите в противном случае. Доступ к вызываемому функциональному F
при помощи F = TT.Properties.CustomProperties.BusinessCalendar.IsBusinessDay
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.