optembndbybdt

Ценовые облигации со встроенными опциями с помощью процентного дерева Black-Derman-Toy

Описание

пример

[Price,PriceTree] = optembndbybdt(BDTTree,CouponRate,Settle,Maturity,OptSpec,Strike,ExerciseDates) вычисляет цену для облигаций со встроенными опциями из дерева процентных ставок Black-Derman-Toy и возвращает вероятности исполнения в PriceTree.

optembndbybdt вычисляет цены ванильных облигаций с встраиваемыми опциями, ступенчатыми купонными облигациями с встраиваемыми опциями, амортизацией облигаций с встраиваемыми опциями и облигациями тонущего фонда с встраиваемой опцией вызова. Дополнительные сведения см. в разделе Дополнительные сведения.

пример

[Price,PriceTree] = optembndbybdt(___,Name,Value) добавляет необязательные аргументы пары "имя-значение".

Примеры

свернуть все

Создайте BDTTree со следующими данными:

ZeroRates = [ 0.035;0.04;0.045];
Compounding = 1;
StartDates = ['jan-1-2007';'jan-1-2008';'jan-1-2009'];
EndDates   = ['jan-1-2008';'jan-1-2009';'jan-1-2010'];
ValuationDate = 'jan-1-2007';

Создайте RateSpec.

RateSpec = intenvset('Rates', ZeroRates, 'StartDates', ValuationDate, 'EndDates', ...
EndDates, 'Compounding', Compounding, 'ValuationDate', ValuationDate)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 1
             Disc: [3x1 double]
            Rates: [3x1 double]
         EndTimes: [3x1 double]
       StartTimes: [3x1 double]
         EndDates: [3x1 double]
       StartDates: 733043
    ValuationDate: 733043
            Basis: 0
     EndMonthRule: 1

Создайте VolSpec.

Volatility = 0.10 * ones (3,1);
VolSpec = bdtvolspec(ValuationDate, EndDates, Volatility)
VolSpec = struct with fields:
             FinObj: 'BDTVolSpec'
      ValuationDate: 733043
           VolDates: [3x1 double]
           VolCurve: [3x1 double]
    VolInterpMethod: 'linear'

Создайте TimeSpec.

TimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);

Создайте BDTTree.

BDTTree = bdttree(VolSpec, RateSpec, TimeSpec)
BDTTree = struct with fields:
      FinObj: 'BDTFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2]
        dObs: [733043 733408 733774]
        TFwd: {[3x1 double]  [2x1 double]  [2]}
      CFlowT: {[3x1 double]  [2x1 double]  [3]}
     FwdTree: {[1.0350]  [1.0406 1.0495]  [1.0447 1.0546 1.0667]}

Чтобы вычислить цену американской callable облигации, которая платит 5,25% годовой купон, созревает в Jan-1-2010 и вызывается на Jan-1-2008 и 01-Jan-2010.

BondSettlement = 'jan-1-2007';
BondMaturity   = 'jan-1-2010'; 
CouponRate = 0.0525;
Period = 1;
OptSpec = 'call'; 
Strike = [100];  
ExerciseDates = {'jan-1-2008' '01-Jan-2010'}; 
AmericanOpt = 1;

PriceCallBond = optembndbybdt(BDTTree, CouponRate, BondSettlement, BondMaturity,...
OptSpec, Strike, ExerciseDates, 'Period', 1,'AmericanOp', 1)
PriceCallBond = 101.4750

Создайте BDTTree со следующими данными:

ZeroRates = [ 0.025;0.03;0.045];
Compounding = 1;
StartDates = ['jan-1-2007';'jan-1-2008';'jan-1-2009'];
EndDates   = ['jan-1-2008';'jan-1-2009';'jan-1-2010'];
ValuationDate = 'jan-1-2007';

Создайте RateSpec.

RateSpec = intenvset('Rates', ZeroRates, 'StartDates', ValuationDate, 'EndDates', ...
EndDates, 'Compounding', Compounding, 'ValuationDate', ValuationDate);

Создайте дерево BDT со следующими данными.

Volatility = 0.10 * ones (3,1);
VolSpec = bdtvolspec(ValuationDate, EndDates, Volatility)
VolSpec = struct with fields:
             FinObj: 'BDTVolSpec'
      ValuationDate: 733043
           VolDates: [3x1 double]
           VolCurve: [3x1 double]
    VolInterpMethod: 'linear'

TimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);
BDTTree = bdttree(VolSpec, RateSpec, TimeSpec)
BDTTree = struct with fields:
      FinObj: 'BDTFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2]
        dObs: [733043 733408 733774]
        TFwd: {[3x1 double]  [2x1 double]  [2]}
      CFlowT: {[3x1 double]  [2x1 double]  [3]}
     FwdTree: {[1.0250]  [1.0315 1.0385]  [1.0614 1.0750 1.0917]}

Определите инструменты взаимозаменяемой связи.

Settle = '01-Jan-2007';
Maturity = {'01-Jan-2008';'01-Jan-2010'};
CouponRate = {{'01-Jan-2008' .0425;'01-Jan-2010' .0450}};  
OptSpec='call';
Strike= [86;90];
ExerciseDates= {'01-Jan-2008';'01-Jan-2010'};

Оцените инструменты.

[Price, PriceTree]= optembndbybdt(BDTTree, CouponRate,  Settle, Maturity, OptSpec, Strike,...
ExerciseDates, 'Period', 1,'AmericanOp', 1)
Price = 2×1

    86
    90

PriceTree = struct with fields:
                FinObj: 'BDTPriceTree'
                  tObs: [0 1 2 3]
                 PTree: {1x4 cell}
              ProbTree: {[1]  [0.5000 0.5000]  [0.2500 0.5000 0.2500]  [1x3 double]}
                ExTree: {1x4 cell}
            ExProbTree: {1x4 cell}
    ExProbsByTreeLevel: [2x4 double]

Исследуйте выходные PriceTree.ExTree. PriceTree.ExTree содержит массивы индикаторов упражнений. Каждый элемент массива ячеек является массивом, содержащим 1где используется опция и 0там, где нет.

PriceTree.ExTree{4} 
ans = 2×3

     0     0     0
     1     1     1

Для инструмента 1 нет упражнений, и инструмент 2 выполняется на всех узлах.

PriceTree.ExTree{3} 
ans = 2×3

     0     0     0
     0     0     0

Нет упражнений для инструмента 1 или инструмента 2.

PriceTree.ExTree{2} 
ans = 2×2

     1     1
     1     0

Существует упражнение для инструмента 1 на всех узлах, и инструмент 2 выполняется на некоторых узлах.

Далее посмотрим вероятность достижения каждого узла из корневого узла с помощью PriceTree.ProbTree.

PriceTree.ProbTree{2}
ans = 1×2

    0.5000    0.5000

PriceTree.ProbTree{3}
ans = 1×3

    0.2500    0.5000    0.2500

PriceTree.ProbTree{4}
ans = 1×3

    0.2500    0.5000    0.2500

Затем посмотрим вероятности упражнений, используя PriceTree.ExProbTree. PriceTree.ExProbTree содержит вероятности упражнений. Каждый элемент массива ячеек является массивом, содержащим 0, где нет упражнений или вероятность достижения этого узла, где выполняются упражнения.

PriceTree.ExProbTree{4}
ans = 2×3

         0         0         0
    0.2500    0.5000    0.2500

PriceTree.ExProbTree{3}
ans = 2×3

     0     0     0
     0     0     0

PriceTree.ExProbTree{2}
ans = 2×2

    0.5000    0.5000
    0.5000         0

Просмотрите вероятности упражнений на каждом уровне дерева с помощью PriceTree.ExProbsByTreeLevel. PriceTree.ExProbsByTreeLevel является массивом с каждой строкой, держащей вероятность упражнения для заданной опции во время наблюдения дерева.

PriceTree.ExProbsByTreeLevel
ans = 2×4

    1.0000    1.0000         0         0
    1.0000    0.5000         0    1.0000

Ценят следующие одношаговые вызываемые облигации, используя следующие данные: Данные для структуры терминов процентной ставки следующие:

Rates = [0.035; 0.042147; 0.047345; 0.052707];
ValuationDate = 'Jan-1-2010';
StartDates = ValuationDate;
EndDates = {'Jan-1-2011'; 'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'};
Compounding = 1;

% Create RateSpec
RS = intenvset('ValuationDate', ValuationDate, 'StartDates', StartDates,...
'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);

% Instrument
Settle = '01-Jan-2010';
Maturity = {'01-Jan-2013';'01-Jan-2014'};
CouponRate = {{'01-Jan-2012' .0425;'01-Jan-2014' .0750}};  
OptSpec='call';
Strike=100;
ExerciseDates='01-Jan-2012';  %Callable in two years

% Build the tree
% Assume the volatility to be 10%
Sigma = 0.1;  
BDTTimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Sigma*ones(1, length(EndDates))');
BDTT = bdttree(BDTVolSpec, RS, BDTTimeSpec);

% The first row corresponds to the price of the callable bond with maturity 
% of three years. The second row corresponds to the price of the callable bond
% with maturity of four years.
PBDT=  optembndbybdt(BDTT, CouponRate, Settle, Maturity ,OptSpec, Strike,...
ExerciseDates, 'Period', 1)
PBDT = 2×1

  100.0945
  100.0297

Корпорация выпускает трехлетнюю облигацию с обязательством по потопляющему фонду, требуя, чтобы компания потеряла 1/3 номинальные значения после первого года и 1/3 после второго года. У компании есть опция купить облигации на рынке или позвонить по $98. Следующие данные описывают подробные данные, необходимые для ценообразования облигации тонущего фонда:

Rates = [0.1;0.1;0.1;0.1];
ValuationDate = 'Jan-1-2011';
StartDates = ValuationDate;
EndDates = {'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'; 'Jan-1-2015'};
Compounding = 1;

% Create RateSpec
RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates',...
StartDates, 'EndDates', EndDates, 'Rates', Rates, 'Compounding', Compounding);

% Build the BDT tree
% Assume the volatility to be 10%
Sigma = 0.1;  
BDTTimeSpec = bdttimespec(ValuationDate, EndDates);
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Sigma*ones(1, length(EndDates))');
BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);

% Instrument
% The bond has a coupon rate of 9%, a period of one year and matures in
% 1-Jan-2014. Face decreases 1/3 after the first year and 1/3 after the 
% second year.
CouponRate = 0.09;
Settle = 'Jan-1-2011';
Maturity =  'Jan-1-2014';
Period = 1;
Face = { ...        
            {'Jan-1-2012'  100; ...
             'Jan-1-2013'   66.6666; ...
             'Jan-1-2014'   33.3333};
        };

% Option provision
OptSpec = 'call'; 
Strike = [98 98];
ExerciseDates ={'Jan-1-2012', 'Jan-1-2013'};

% Price of non-sinking fund bond. 
PNSF = bondbybdt(BDTT, CouponRate, Settle, Maturity, Period)
PNSF = 97.5131

Цена облигации с предоставлением опции.

PriceSF = optembndbybdt(BDTT, CouponRate, Settle, Maturity,...
OptSpec, Strike, ExerciseDates,'Period', Period, 'Face', Face)
PriceSF = 96.8364

Этот пример показывает, как оценить амортизирующую вызываемую связь и ванильную вызываемую связь с помощью модели решетки BDT.

Создайте RateSpec.

Rates = [0.025;0.028;0.030;0.031];
ValuationDate = 'Jan-1-2018';
StartDates = ValuationDate;
EndDates = {'Jan-1-2019'; 'Jan-1-2020'; 'Jan-1-2021'; 'Jan-1-2022'};
Compounding = 1;
RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates',...
StartDates, 'EndDates', EndDates, 'Rates', Rates, 'Compounding', Compounding);

Создайте дерево BDT и примите волатильность 5%.

Sigma = 0.05;  
BDTTimeSpec = bdttimespec(ValuationDate, EndDates);
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Sigma*ones(1, length(EndDates))');
BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);

Определите вызываемую связь.

CouponRate = 0.05;
Settle = 'Jan-1-2018';
Maturity =  'Jan-1-2021';
Period = 1;
    
    Face = { 
                 {'Jan-1-2019'  100; 
                  'Jan-1-2020'   70; ...
                   'Jan-1-2021'   50};
                 };
 
OptSpec = 'call'; 
Strike = [97 95 93];
ExerciseDates ={'Jan-1-2019' 'Jan-1-2020' 'Jan-1-2021'};

Оцените вызываемую амортизирующую связь с помощью дерева BDT.

BondType = 'amortizing';
Pcallbonds = optembndbybdt(BDTT, CouponRate, Settle, Maturity, OptSpec, Strike, ExerciseDates, 'Period', Period,'Face',Face,'BondType', BondType)
Pcallbonds = 99.5122

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

свернуть все

Древовидная структура процентной ставки, заданная при помощи bdttree.

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

Ставка купона на облигацию, заданная как NINST-by- 1 десятичный годовой темп или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек. Первый столбец NumDates-by- 2 массив ячеек является датами, и второй столбец связан скоростями. Дата указывает на последний день действия ставки купона.

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

Дата расчета для опции облигации, заданная как NINST-by- 1 вектор серийных номеров дат или векторов символов дат.

Примечание

The Settle дата для каждой облигации устанавливается в ValuationDate дерева BDT. Аргумент в пользу Settle игнорируется.

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

Дата зрелости, заданная как NINST-by- 1 вектор серийных номеров дат или векторов символов дат.

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

Определение опции, заданное как NINST-by- 1 массив ячеек из векторов символов.

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

Опции цены значения, заданные как NINST-by- 1 или NINST-by- NSTRIKES в зависимости от типа опции:

  • Европейская опция - NINST-by- 1 вектор значений цены доставки.

  • Бермудская опция - NINST по количеству ударов (NSTRIKES) матрица значений цены доставки. Каждая строка является расписанием для одной опции. Если опция имеет меньше NSTRIKES возможности упражнений, конец строки заполнен NaNс.

  • Американская опция - NINST-by- 1 вектор значений цены доставки для каждой опции.

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

Опции даты упражнений, заданные как NINST-by- 1, NINST-by- 2, или NINST-by- NSTRIKES использование серийных номеров дат или векторов символов дат в зависимости от типа опции:

  • Для европейской опции используйте NINST-by- 1 вектор дат. Для европейской опции существует только один ExerciseDates на дату истечения срока действия опции.

  • Для опции Бермудских островов используйте NINST-by- NSTRIKES вектор дат.

  • Для американской опции используйте NINST-by- 2 вектор контуров дат упражнения. Опция может быть использована в любую дату между или включая пару дат в этой строке. Если только один не - NaN указана дата, или если ExerciseDates является NINST-by- 1 вектор, опция может быть реализована между ValuationDate дерева запасов и одной перечисленной ExerciseDates.

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

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

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

Пример: Price = optembndbybdt(BDTTree,CouponRate,Settle,Maturity,OptSpec,Strike,ExerciseDates,'Period',1,'AmericanOp',1)

Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanOpt' и NINST-by- 1 положительные целочисленные флаги со значениями:

  • 0 - Европейский/Бермудские острова

  • 1 - Американский

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

Купоны в год, заданные как разделенная разделенными запятой парами, состоящая из 'Period' и a NINST-by- 1 вектор.

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

Базис отсчета дней, заданный как разделенная разделенными запятой парами, состоящая из 'Basis' и a NINST-by- 1 вектор целых чисел.

  • 0 = факт/факт

  • 1 = 30/360 (SIA)

  • 2 = факт/360

  • 3 = факт/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Для получения дополнительной информации см. раздел Базиса.

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

Флаг правила в конце месяца, заданный как разделенная разделенными запятой парами, состоящая из 'EndMonthRule' и неотрицательное целое число, использующее NINST-by- 1 вектор. Это правило применяется только тогда, когда Maturity - дата окончания месяца для месяца, имеющего 30 или менее дней.

  • 0 = Игнорируйте правило, означающее, что дата выплаты купона по облигации всегда совпадает с числовым днем месяца.

  • 1 = Установите правило, означающее, что дата выплаты купона по облигации всегда является последним фактическим днем месяца.

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

Дата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate' и a NINST-by- 1 вектор с использованием серийных номеров дат или векторов символов дат.

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

Нерегулярная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate' и a NINST-by- 1 вектор с использованием последовательных номеров дат или векторов символов дат.

Когда FirstCouponDate и LastCouponDate оба заданы, FirstCouponDate имеет приоритет при определении структуры купонного платежа. Если вы не задаете FirstCouponDateДаты платежа денежного потока определяются из других входов.

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

Нерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate' и a NINST-by- 1 вектор с использованием серийных номеров дат или векторов символов дат.

При отсутствии заданного FirstCouponDate, a заданное LastCouponDate определяет купонную структуру облигации. Купонная структура облигации усечена в LastCouponDate, независимо от того, где он падает, и сопровождается только датой движения денежных средств по облигации со сроком погашения. Если вы не задаете LastCouponDateДаты платежа денежного потока определяются из других входов.

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

Дата начала платежей (дата, с которой рассматривается денежный поток облигаций), заданная как разделенная разделенными запятой парами, состоящая из 'StartDate' и a NINST-by- 1 вектор с использованием серийных номеров дат или векторов символов дат.

Если вы не задаете StartDate, дата начала вступления в силу является Settle дата.

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

Номинальное или номинальное значение, заданное как разделенная разделенными запятой парами, состоящая из 'Face' и a NINST-by- 1 вектор или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек, где первый столбец является датами, а второй столбец связан с номинальным значением. Дата указывает последний день, когда значение лица является допустимым.

Примечание

Инструменты без Face расписание рассматривается как ванильные облигации или ступенчатые купонные облигации с встраиваемыми опциями.

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

Тип базовой связи, заданный как разделенная разделенными запятой парами, состоящая из 'BondType' и a NINST-by- 1 массив ячеек из векторов символов или строковых массивов, определяющий, является ли базовая связь ванильной связью, амортизирующей связью или вызываемой тонкой фондовой связью. Поддерживаемые типы:

  • 'vanilla'является стандартной вызываемой или приемлемой связью со скаляром Face значение и один купон или ступенчатые купоны.

  • 'callablesinking' является облигацией с графиком Face значения и обеспечение вызова тонущего фонда с одним или ступенчатыми купонами.

  • 'amortizing' является амортизирующей вызываемой или приемлемой связью с графиком Face значения с одинарными или ступенчатыми купонами.

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

Производные опции ценообразования, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и структуру, которая создается с derivset.

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

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

свернуть все

Ожидаемая цена встроенной опции в момент 0, возвращается как NINST-by- 1 матрица.

Структура, содержащая деревья векторов цен на приборы, вектор времени наблюдения для каждого узла и вероятностей упражнений. Значения:

  • PriceTree.PTree содержит чистые цены.

  • PriceTree.tObs содержит время наблюдения.

  • PriceTree.ExTree содержит массивы индикаторов упражнений. Каждый элемент массива ячеек является массивом, содержащим 1где используется опция и 0там, где нет.

  • PriceTree.ProbTree содержит вероятность достижения каждого узла из корневого узла.

  • PriceTree.ExProbTree содержит вероятности упражнений. Каждый элемент массива ячеек является массивом, содержащим 0где нет упражнений или вероятность достижения этого узла, где выполняются упражнения.

  • PriceTree.ExProbsByTreeLevel является массивом с каждой строкой, держащей вероятность упражнения для заданной опции во время наблюдения дерева.

Подробнее о

свернуть все

Ванильная связь со встроенной опцией

Облигация с ванильным купоном представляет собой залог, представляющий собой обязательство погасить заемную сумму в установленный срок и производить периодические выплаты процентов до этого времени.

Эмитент облигации производит периодические выплаты процентов до погашения облигации. При погашении эмитент выплачивает держателю облигации основную сумму задолженности ( номинальное значение) и последний процентный платеж. Ванильная облигация с встроенной опцией - это там, где опционный контракт имеет базовый актив ванильной облигации.

Ступенчатая купонная облигация с функциями Callable и Puttable

Повышающая и понижающая облигация является долговым обеспечением с заранее определенной купонной структурой с течением времени.

С помощью этих инструментов купоны увеличиваются (повышаются) или уменьшаются (снижаются) в определенные моменты времени в течение срока действия облигации. Шаговые купонные облигации могут иметь опции функции (вызов и размещение).

Облигация тонущего фонда с опцией Call Embedded

Облигация тонущего фонда - купонная облигация с обеспечением тонущего фонда.

Данное положение обязывает эмитента амортизировать фрагменты основного долга до погашения, что влияет на цены облигаций с момента изменения основного погашения. Это означает, что инвесторы получают купон и фрагмент основного долга, выплаченную с течением времени. Эти виды облигаций снижают кредитный риск, поскольку это снижает вероятность того, что инвесторы не получат основной платеж на срок погашения.

Облигация может иметь результирующий фонд опции условием, позволяющим эмитенту погасить обязательство по потопляющему фонду либо путем покупки облигаций, подлежащих погашению с рынка, либо путем вызова облигации через релейный фонд, в зависимости от того, что дешевле. Если процентные ставки высоки, то эмитент выкупает с рынка сумму требования облигаций, так как облигации малы, но если процентные ставки низки (цены облигаций высокие), то скорее всего эмитент покупает облигации по цене вызова. В отличие от вызова функции, однако, если облигация имеет вызов опции результирующего фонда, эмитент обязан, а не опция, выкупить шаги выпуска, как указано. Из-за этого облигации тонущего фонда торгуются по более низкой цене, чем облигации нетонущего фонда.

Амортизация вызываемой или приемной связи

Амортизация callable или puttable облигаций работает в соответствии с запланированным Face.

Амортизирующая вызываемая облигация дает эмитенту право перезвонить облигации, но вместо оплаты Face сумма в срок погашает часть основной суммы вместе с купонными платежами. Амортизирующая облигация, подлежащая оплате, возвращает часть основной суммы вместе с купонными платежами и предоставляет держателю облигации право продать облигацию эмитенту.

Введенный в R2008a
Для просмотра документации необходимо авторизоваться на сайте