addBusinessCalendar

Добавьте осведомленность о бизнес-календаре к расписаниям

Описание

пример

TT = addBusinessCalendar(TT) добавляет осведомленность о бизнес-календаре в вход timetable TT путем установки пользовательского свойства для выхода timetable TT.

пример

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        

Входные параметры

свернуть все

Входное расписание для обновления осведомленности о бизнес-календаре, заданное как timetable.

Типы данных: timetable

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: TT = addBusinessCalendar(TT,'Holidays',H)

Альтернативные праздники и даты закрытия рынка, заданные как разделенная разделенными запятой парами, состоящая из 'Holidays' и вектор datetimes. Даты в Holidays должны быть целыми датами, без каких-либо HH:MM:SS компоненты. Бизнес не ведётся в даты в Holidays. Для получения дополнительной информации см. holidays и isbusday.

Вы можете сгенерировать альтернативные расписания праздников с помощью createholidays функция. Для этого выполните следующие шаги:

  1. Сгенерируйте новую holidays использование функции createholidays.

  2. Вызовите новую holidays функция для получения списка праздничных дней.

  3. Передайте альтернативные праздничные дни, чтобы addBusinessCalendar использование 'Holidays' аргумент пары "имя-значение".

Типы данных: char | double

Альтернативные выходные дни, в которые не проводится бизнес, указываются как разделенная разделенными запятой парами, состоящая из 'Weekends' и логический вектор с семью элементами, в которых true (1) указывает на выходной день и ложь (0) указывает на будний день. Элементы 'Weekends' закодированы как воскресенье, понедельник, вторник, среда, четверг, пятница и суббота. Можно также задать 'Weekends' как строковый вектор, элементы которого явно перечисляют выходные дни. Если бизнес ведется семь дней в неделю, то уточняйте 'Weekends' как [0 0 0 0 0 0 0].

Типы данных: logical

Выходные аргументы

свернуть все

Обновленное расписание 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.

См. также

|

Введенный в R2020b