exponenta event banner

addBusinessCalendar

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

Описание

пример

TT = addBusinessCalendar(TT) добавляет информацию о бизнес-календаре к расписанию ввода TT путем установки пользовательского свойства для расписания вывода 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' и вектор дат. Даты в Holidays должны быть целыми датами, без каких-либо HH:MM:SS компоненты. На даты в Holidays. Дополнительные сведения см. в разделе holidays и isbusday.

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

  1. Создать новый holidays функция с использованием createholidays.

  2. Вызов нового holidays для получения списка праздников.

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

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

Альтернативные выходные дни, в которые не ведется бизнес, указанные как пара, разделенная запятыми, состоящая из 'Weekends' и логический вектор с семью элементами, в которых true (1) указывает день выходного дня и значение false (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 указать иное. Доступ к вызываемой функции F с помощью F = TT.Properties.CustomProperties.BusinessCalendar.IsBusinessDay.

См. также

|

Представлен в R2020b