Добавление информации о бизнес-календаре к расписаниям
указывает параметры, использующие один или несколько необязательных аргументов пары имя-значение в дополнение к входным аргументам в предыдущем синтаксисе. Например, 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
(по умолчанию) | вектор времениАльтернативные праздничные дни и даты закрытия рынка, указанные как пара, разделенная запятыми, состоящая из 'Holidays' и вектор дат. Даты в 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) указывает день выходного дня и значение false (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 указать иное. Доступ к вызываемой функции F с помощью F = TT.Properties.CustomProperties.BusinessCalendar.IsBusinessDay.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.