Оценка производных акции Используя деревья

Вычислительные цены на инструменты

Портфель, оценивая функции crrprice, eqpprice и ittprice вычисляет цену любого набора поддерживаемых инструментов на основе бинарного ценового дерева акции, подразумеваемого трехчленного ценового дерева или стандартного трехчленного дерева. Эти функции способны к оценке следующих инструментальных типов:

  • Фондовые опционы ванили

    • Американец и европеец помещают и вызывают

  • Экзотические опции

    • Азиат

    • Барьер

    • Составной объект

    • Lookback

    • Фондовые опционы (Бермуды поместили и вызывают расписания),

Синтаксис для вызова функционального crrprice:

[Price, PriceTree] = crrprice(CRRTree, InstSet, Options)

Синтаксис для eqpprice:

[Price, PriceTree] = eqpprice(EQPTree, InstSet, Options)

Синтаксис для ittprice:

Price = ittprice(ITTTree, ITTInstSet, Options)

Синтаксис для sttprice:

[Price, PriceTree] = sttprice(STTTree, InstSet, Name, Value)

Эти функции требуют двух входных параметров: ценовое дерево акции и набор инструментов, InstSet, и позволяют третий дополнительный аргумент.

Обязательные аргументы

CRRTree является ценовым деревом акции CRR, созданным с помощью crrtree. EQPTree является равным ценовым деревом акции вероятности, созданным с помощью eqptree. ITTTree является ценовым деревом акции ITT, созданным с помощью itttree. STTTree является стандартным трехчленным ценовым деревом акции, созданным с помощью stttree. Смотрите Двоичные деревья Акции Создания и Создание Подразумеваемых Трехчленных Деревьев, чтобы изучить, как создать эти структуры.

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

Дополнительный аргумент

Можно ввести третий дополнительный аргумент, Options, используемый при оценке барьерных опционов. Дополнительные сведения см. в Структуре опций Оценки.

Эти функции оценки внутренне классифицируют инструменты и вызывают соответствующую отдельную инструментальную функцию оценки для каждого из инструментальных типов. CRR оценивающие функции является asianbycrr, barrierbycrr, compoundbycrr, lookbackbycrr и optstockbycrr. Подобный набор функций существует для EQP, ITT и оценки STT. Можно также использовать эти функции непосредственно, чтобы вычислить цену наборов инструментов того же типа. Смотрите страницы с описанием для этих отдельных функций для получения дополнительной информации.

Вычислительные цены Используя CRR

Рассмотрите следующий пример, который использует портфель и данные о курсе акций в MAT-файле deriv.mat, включенный в тулбокс. Загрузите данные в рабочую область MATLAB®.

load deriv.mat

Используйте команду whos MATLAB, чтобы отобразить список переменных, загруженных из MAT-файла.

Name              Size            Bytes  Class     Attributes

  BDTInstSet        1x1             27344  struct              
  BDTTree           1x1              7322  struct              
  BKInstSet         1x1             27334  struct              
  BKTree            1x1              8532  struct              
  CRRInstSet        1x1             21066  struct              
  CRRTree           1x1              7086  struct              
  EQPInstSet        1x1             21066  struct              
  EQPTree           1x1              7086  struct              
  HJMInstSet        1x1             27336  struct              
  HJMTree           1x1              8334  struct              
  HWInstSet         1x1             27334  struct              
  HWTree            1x1              8532  struct              
  ITTInstSet        1x1             21070  struct              
  ITTTree           1x1             12660  struct              
  STTInstSet        1x1             21070  struct              
  STTTree           1x1              7782  struct              
  ZeroInstSet       1x1             17458  struct              
  ZeroRateSpec      1x1              2152  struct     

CRRTree и CRRInstSet являются необходимыми входными параметрами, чтобы вызвать функциональный crrprice.

Используйте instdisp, чтобы исследовать набор инструментов, содержавшихся в переменной CRRInstSet.

instdisp(CRRInstSet)
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name  Quantity
1     OptStock call    105    01-Jan-2003    01-Jan-2005    1           Call1 10      
2     OptStock put     105    01-Jan-2003    01-Jan-2006    0           Put1   5      
 
Index Type    OptSpec Strike Settle         ExerciseDates  AmericanOpt BarrierSpec Barrier Rebate Name     Quantity
3     Barrier call    105    01-Jan-2003    01-Jan-2006    1           ui          102     0      Barrier1 1       
 
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt Name      Quantity
4     Compound call     130     01-Jan-2003    01-Jan-2006    1            put      5       01-Jan-2003    01-Jan-2005    1            Compound1 3       
 
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name      Quantity
5     Lookback call    115    01-Jan-2003    01-Jan-2006    0           Lookback1 7       
6     Lookback call    115    01-Jan-2003    01-Jan-2007    0           Lookback2 9       
 
Index Type  OptSpec Strike Settle         ExerciseDates  AmericanOpt AvgType    AvgPrice AvgDate Name   Quantity
7     Asian put     110    01-Jan-2003    01-Jan-2006    0           arithmetic NaN      NaN     Asian1 4       
8     Asian put     110    01-Jan-2003    01-Jan-2007    0           arithmetic NaN      NaN     Asian2 6       

Примечание

Из-за факторов пробела составная опция выше (Index 4) была сжата, чтобы соответствовать странице. Команда instdisp отображает все составные поля опции на вашем мониторе.

Инструментальный набор содержит восемь инструментов:

  • Две опции ванили (Call1, Put1)

  • Один барьерный опцион (Barrier1)

  • Одна составная опция (Compound1)

  • Две lookback опции (Lookback1, Lookback2)

  • Две азиатских опции (Asian1, Asian2)

Каждый инструмент имеет соответствующий индекс, который идентифицирует цены на инструменты в ценовом векторе, возвращенном crrprice.

Теперь используйте crrprice, чтобы вычислить цену каждого инструмента в инструментальном наборе.

Price = crrprice(CRRTree, CRRInstSet)
Price =

    8.2863
    2.5016
   12.1272
    3.3241
    7.6015
   11.7772
    4.1797
    3.4219

Вычислительные цены Используя EQP

Загрузите данные в рабочее пространство MATLAB.

load deriv.mat

Используйте команду whos MATLAB, чтобы отобразить список переменных, загруженных из MAT-файла.

Name              Size            Bytes  Class     Attributes

  BDTInstSet        1x1             27344  struct              
  BDTTree           1x1              7322  struct              
  BKInstSet         1x1             27334  struct              
  BKTree            1x1              8532  struct              
  CRRInstSet        1x1             21066  struct              
  CRRTree           1x1              7086  struct              
  EQPInstSet        1x1             21066  struct              
  EQPTree           1x1              7086  struct              
  HJMInstSet        1x1             27336  struct              
  HJMTree           1x1              8334  struct              
  HWInstSet         1x1             27334  struct              
  HWTree            1x1              8532  struct              
  ITTInstSet        1x1             21070  struct              
  ITTTree           1x1             12660  struct              
  STTInstSet        1x1             21070  struct              
  STTTree           1x1              7782  struct              
  ZeroInstSet       1x1             17458  struct              
  ZeroRateSpec      1x1              2152  struct     

EQPTree и EQPInstSet являются входными параметрами, требуемыми вызывать функциональный eqpprice.

Используйте команду instdisp, чтобы исследовать набор инструментов, содержавшихся в переменной EQPInstSet.

instdisp(EQPInstSet)
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name  Quantity
1     OptStock call    105    01-Jan-2003    01-Jan-2005    1           Call1 10      
2     OptStock put     105    01-Jan-2003    01-Jan-2006    0           Put1   5      
 
Index Type    OptSpec Strike Settle         ExerciseDates  AmericanOpt BarrierSpec Barrier Rebate Name     Quantity
3     Barrier call    105    01-Jan-2003    01-Jan-2006    1           ui          102     0      Barrier1 1       
 
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt Name      Quantity
4     Compound call     130     01-Jan-2003    01-Jan-2006    1            put      5       01-Jan-2003    01-Jan-2005    1            Compound1 3       
 
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name      Quantity
5     Lookback call    115    01-Jan-2003    01-Jan-2006    0           Lookback1 7       
6     Lookback call    115    01-Jan-2003    01-Jan-2007    0           Lookback2 9       
 
Index Type  OptSpec Strike Settle         ExerciseDates  AmericanOpt AvgType    AvgPrice AvgDate Name   Quantity
7     Asian put     110    01-Jan-2003    01-Jan-2006    0           arithmetic NaN      NaN     Asian1 4       
8     Asian put     110    01-Jan-2003    01-Jan-2007    0           arithmetic NaN      NaN     Asian2 6       
 
>> instdisp(EQPInstSet)
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name  Quantity
1     OptStock call    105    01-Jan-2003    01-Jan-2005    1           Call1 10      
2     OptStock put     105    01-Jan-2003    01-Jan-2006    0           Put1   5      
 
Index Type    OptSpec Strike Settle         ExerciseDates  AmericanOpt BarrierSpec Barrier Rebate Name     Quantity
3     Barrier call    105    01-Jan-2003    01-Jan-2006    1           ui          102     0      Barrier1 1       
 
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt Name      Quantity
4     Compound call     130     01-Jan-2003    01-Jan-2006    1            put      5       01-Jan-2003    01-Jan-2005    1            Compound1 3       
 
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name      Quantity
5     Lookback call    115    01-Jan-2003    01-Jan-2006    0           Lookback1 7       
6     Lookback call    115    01-Jan-2003    01-Jan-2007    0           Lookback2 9       
 
Index Type  OptSpec Strike Settle         ExerciseDates  AmericanOpt AvgType    AvgPrice AvgDate Name   Quantity
7     Asian put     110    01-Jan-2003    01-Jan-2006    0           arithmetic NaN      NaN     Asian1 4       
8     Asian put     110    01-Jan-2003    01-Jan-2007    0           arithmetic NaN      NaN     Asian2 6       
 

Примечание

Из-за факторов пробела составная опция выше (Index 4) была сжата, чтобы соответствовать странице. Команда instdisp отображает все составные поля опции на вашем мониторе.

Инструментальный набор содержит восемь инструментов:

  • Две опции ванили (Call1, Put1)

  • Один барьерный опцион (Barrier1)

  • Одна составная опция (Compound1)

  • Две lookback опции (Lookback1, Lookback2)

  • Две азиатских опции (Asian1, Asian2)

Каждый инструмент имеет соответствующий индекс, который идентифицирует цены на инструменты в ценовом векторе, возвращенном eqpprice.

Теперь используйте eqpprice, чтобы вычислить цену каждого инструмента в инструментальном наборе.

Price = eqpprice(EQPTree, EQPInstSet)
Price =

    8.4791
    2.6375
   12.2632
    3.5091
    8.7941
   12.9577
    4.7444
    3.9178

Вычислительные цены Используя ITT

Рассмотрите следующий пример, который использует портфель и данные о курсе акций в MAT-файле deriv.mat, включенный в тулбокс. Загрузите данные в рабочее пространство MATLAB.

load deriv.mat

Используйте команду whos MATLAB, чтобы отобразить список переменных, загруженных из MAT-файла.

Name              Size            Bytes  Class     Attributes

  BDTInstSet        1x1             27344  struct              
  BDTTree           1x1              7322  struct              
  BKInstSet         1x1             27334  struct              
  BKTree            1x1              8532  struct              
  CRRInstSet        1x1             21066  struct              
  CRRTree           1x1              7086  struct              
  EQPInstSet        1x1             21066  struct              
  EQPTree           1x1              7086  struct              
  HJMInstSet        1x1             27336  struct              
  HJMTree           1x1              8334  struct              
  HWInstSet         1x1             27334  struct              
  HWTree            1x1              8532  struct              
  ITTInstSet        1x1             21070  struct              
  ITTTree           1x1             12660  struct              
  STTInstSet        1x1             21070  struct              
  STTTree           1x1              7782  struct              
  ZeroInstSet       1x1             17458  struct              
  ZeroRateSpec      1x1              2152  struct     

ITTTree и ITTInstSet являются входными параметрами, требуемыми вызывать функциональный ittprice. Используйте команду instdisp, чтобы исследовать набор инструментов, содержавшихся в переменной ITTInstSet.

instdisp(ITTInstSet)
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name  Quantity
1     OptStock call    95     01-Jan-2006    31-Dec-2008    1           Call1 10      
2     OptStock put     80     01-Jan-2006    01-Jan-2010    0           Put1   4      
 
Index Type    OptSpec Strike Settle         ExerciseDates  AmericanOpt BarrierSpec Barrier Rebate Name     Quantity
3     Barrier call    85     01-Jan-2006    31-Dec-2008    1           ui          115     0      Barrier1 1       
 
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt Name      Quantity
4     Compound call     99      01-Jan-2006    01-Jan-2010    1            put      5       01-Jan-2006    01-Jan-2010    1            Compound1 3       
 
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name      Quantity
5     Lookback call    85     01-Jan-2006    01-Jan-2008    0           Lookback1 7       
6     Lookback call    85     01-Jan-2006    01-Jan-2010    0           Lookback2 9       
 
Index Type  OptSpec Strike Settle         ExerciseDates  AmericanOpt AvgType    AvgPrice AvgDate Name   Quantity
7     Asian call    55     01-Jan-2006    01-Jan-2008    0           arithmetic NaN      NaN     Asian1 5       
8     Asian call    55     01-Jan-2006    01-Jan-2010    0           arithmetic NaN      NaN     Asian2 7       

Инструментальный набор содержит восемь инструментов:

  • Две опции ванили (Call1, Put1)

  • Один барьерный опцион (Barrier1)

  • Одна составная опция (Compound1)

  • Две lookback опции (Lookback1, Lookback2)

  • Две азиатских опции (Asian1, Asian2)

Каждый инструмент имеет соответствующий индекс, который идентифицирует цены на инструменты в ценовом векторе, возвращенном ittprice.

Теперь используйте ittprice, чтобы вычислить цену каждого инструмента в инструментальном наборе.

Price = ittprice(ITTTree, ITTInstSet)
Price =

    1.6506
   10.6832
    2.4074
    3.2294
    0.5426
    6.1845
    3.2052
    6.6074

Вычислительные цены Используя STT

Рассмотрите следующий пример, который использует портфель и данные о курсе акций в MAT-файле deriv.mat, включенный в тулбокс. Загрузите данные в рабочее пространство MATLAB.

load deriv.mat

Используйте команду whos MATLAB, чтобы отобразить список переменных, загруженных из MAT-файла.

 Name              Size            Bytes  Class     Attributes

  BDTInstSet        1x1             27344  struct              
  BDTTree           1x1              7322  struct              
  BKInstSet         1x1             27334  struct              
  BKTree            1x1              8532  struct              
  CRRInstSet        1x1             21066  struct              
  CRRTree           1x1              7086  struct              
  EQPInstSet        1x1             21066  struct              
  EQPTree           1x1              7086  struct              
  HJMInstSet        1x1             27336  struct              
  HJMTree           1x1              8334  struct              
  HWInstSet         1x1             27334  struct              
  HWTree            1x1              8532  struct              
  ITTInstSet        1x1             21070  struct              
  ITTTree           1x1             12660  struct              
  STTInstSet        1x1             21070  struct              
  STTTree           1x1              7782  struct              
  ZeroInstSet       1x1             17458  struct              
  ZeroRateSpec      1x1              2152  struct     

STTTree и STTInstSet являются входными параметрами, требуемыми вызывать функциональный sttprice. Используйте команду instdisp, чтобы исследовать набор инструментов, содержавшихся в переменной STTInstSet.

instdisp(STTInstSet)
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name  Quantity
1     OptStock call    100    01-Jan-2009    01-Jan-2011    1           Call1 10      
2     OptStock put      80    01-Jan-2009    01-Jan-2012    0           Put1   5      
 
Index Type    OptSpec Strike Settle         ExerciseDates  AmericanOpt BarrierSpec Barrier Rebate Name     Quantity
3     Barrier call    105    01-Jan-2009    01-Jan-2012    1           ui          115     0      Barrier1 1       
 
Index Type     UOptSpec UStrike USettle        UExerciseDates UAmericanOpt COptSpec CStrike CSettle        CExerciseDates CAmericanOpt Name      Quantity
4     Compound call     95      01-Jan-2009    01-Jan-2012    1            put      5       01-Jan-2009    01-Jan-2011    1            Compound1 3       
 
Index Type     OptSpec Strike Settle         ExerciseDates  AmericanOpt Name      Quantity
5     Lookback call    90     01-Jan-2009    01-Jan-2012    0           Lookback1 7       
6     Lookback call    95     01-Jan-2009    01-Jan-2013    0           Lookback2 9       
 
Index Type  OptSpec Strike Settle         ExerciseDates  AmericanOpt AvgType    AvgPrice AvgDate Name   Quantity
7     Asian call    100    01-Jan-2009    01-Jan-2012    0           arithmetic NaN      NaN     Asian1 4       
8     Asian call    100    01-Jan-2009    01-Jan-2013    0           arithmetic NaN      NaN     Asian2 6       
 

Инструментальный набор содержит восемь инструментов:

  • Две опции ванили (Call1, Put1)

  • Один барьерный опцион (Barrier1)

  • Одна составная опция (Compound1)

  • Две lookback опции (Lookback1, Lookback2)

  • Две азиатских опции (Asian1, Asian2)

Каждый инструмент имеет соответствующий индекс, который идентифицирует цены на инструменты в ценовом векторе, возвращенном sttprice.

Теперь используйте sttprice, чтобы вычислить цену каждого инструмента в инструментальном наборе.

Price = sttprice(STTTree, STTInstSet)
Price =

    4.5025
    3.0603
    3.7977
    1.7090
   11.7296
   12.9120
    1.6905
    2.6203

Исследование Вывода от функций оценки

Цены в выходном векторе, Price соответствует ценам в нуле времени наблюдения (tObs = 0), который задан как дата оценки дерева акции. Инструментальная индексация в Price совпадает с индексацией в InstSet.

В примере CRR цены в векторе Price соответствуют инструментам в этом порядке.

InstNames = instget(CRRInstSet, 'FieldName','Name')
InstNames =

Call1
Put1
Barrier1
Compound1 
Lookback1  
Lookback2  
Asian1     
Asian2     

Так, в векторе Price четвертый элемент, 3.3241, представляет цену четвертого инструмента (Compound1), и шестой элемент, 11.7772, представляет цену шестого инструмента (Lookback2).

В примере ITT цены в векторе Price соответствуют инструментам в этом порядке.

InstNames = instget(ITTInstSet, 'FieldName','Name')
InstNames =

Call1
Put1
Barrier1
Compound1 
Lookback1  
Lookback2  
Asian1     
Asian2     

Так, в векторе Price первый элемент, 1.650, представляет цену первого инструмента (Call1), и восьмые элементы, 6.607, представляют цену восьмого инструмента (Asian2).

Ценовое дерево Вывод для CRR

Если вы вызываете функцию оценки с двумя выходными аргументами, например:

[Price, PriceTree] = crrprice(CRRTree, CRRInstSet)

вы генерируете ценовую древовидную структуру наряду с информацией о ценах.

Эта ценовая древовидная структура PriceTree содержит всю информацию о ценах.

PriceTree =
FinObj: 'BinPriceTree'
PTree: {[8x1 double] [8x2 double] [8x3 double] [8x4 double] [8x5 double]}
tObs: [0 1 2 3 4]
dObs: [731582 731947 732313 732678 733043]

Первое поле этой структуры, FinObj, указывает, что эта структура представляет ценовое дерево. Второе поле, PTree, является деревом, содержащим цены на инструменты в каждом узле дерева. Наконец, третьи и четвертые поля, tObs и dObs, представляют время и дату наблюдения каждого уровня PTree с tObs с помощью модулей с точки зрения соединения периодов.

Используя интерфейс командной строки, можно непосредственно исследовать PriceTree.PTree, поле в структуре PriceTree, которая содержит ценовое дерево с ценовыми векторами в каждом состоянии. Первый узел представляет tObs = 0, соответствуя дате оценки.

PriceTree.PTree{1}
ans =
8.2863
2.5016
12.1272
3.3241
7.6015
11.7772
4.1797
3.4219

С этим интерфейсом можно наблюдать цены на все инструменты в портфеле в определенное время.

Функциональный eqpprice также возвращает ценовое дерево, которое можно исследовать таким же образом.

Ценовое дерево Вывод для ITT

Если вы вызываете функцию оценки с двумя выходными аргументами, например:

[Price, PriceTree] = ittprice(ITTTree, ITTInstSet)

вы генерируете ценовую древовидную структуру наряду с информацией о ценах.

Эта ценовая древовидная структура PriceTree содержит всю информацию о ценах.

PriceTree = 

    FinObj: 'TrinPriceTree'
     PTree: {[8x1 double]  [8x3 double]  [8x5 double]  [8x7 double]  [8x9 double]}
      tObs: [0 1 2 3 4]
      dObs: [732678 733043 733408 733773 734139]

Первое поле этой структуры, FinObj, указывает, что эта структура представляет трехчленное ценовое дерево. Второе поле, PTree является деревом, содержащим цены на инструменты в каждом узле дерева. Наконец, третьи и четвертые поля, tObs и dObs, представляют время и дату наблюдения каждого уровня PTree с tObs с помощью модулей с точки зрения соединения периодов.

Используя интерфейс командной строки, можно непосредственно исследовать PriceTree.PTree, поле в структуре PriceTree, которая содержит ценовое дерево с ценовыми векторами в каждом состоянии. Первый узел представляет tObs = 0, соответствуя дате оценки.

PriceTree.PTree{1}
ans =

    1.6506
   10.6832
    2.4074
    3.2294
    0.5426
    6.1845
    3.2052
    6.6074

С этим интерфейсом можно наблюдать цены на все инструменты в портфеле в определенное время.

Цены для Lookback и азиатские опции для деревьев акции

Опции Lookback и азиатские опции зависимы от предшествующего пути развития, и, как таковы, нет никаких уникальных цен ни на какой узел кроме корневого узла. Так, соответствующие значения для lookback и азиатских опций в ценовом дереве установлены к NaN, единственное исключение, являющееся корневым узлом. Это становится очевидным, если вы исследуете цены во втором узле (tobs = 1) ценового дерева CRR:

PriceTree.PTree{2}
ans =

   11.9176         0
    0.9508    7.1914
   16.4600    2.6672
    2.5896    5.0000
       NaN       NaN
       NaN       NaN
       NaN       NaN
       NaN       NaN

Исследование цен во втором узле (tobs = 1) ценовых отображений дерева ITT:

PriceTree.PTree{2}  
 ans =

    3.9022         0         0
    6.3736   13.3743   22.1915
    5.6914         0         0
    2.7663    3.8594    5.0000
       NaN       NaN       NaN
       NaN       NaN       NaN
       NaN       NaN       NaN
       NaN       NaN       NaN

Графическое представление деревьев производной акции

Можно использовать функциональный treeviewer, чтобы отобразить графическое представление дерева, позволяя вам исследовать в интерактивном режиме цены и уровни на узлах дерева до зрелости. Графические представления CRR, EQP и деревьев LR эквивалентны деревьям Black-Derman-Toy (BDT), учитывая, что они - все двоичные деревья переобъединения. Графические представления ITT и деревьев STT эквивалентны деревьям Белого как оболочка (HW), учитывая, что они - все деревья переобъединения трехчлена. Смотрите Графическое представление Деревьев для обзора использования treeviewer с деревьями CRR, деревьями EQP, деревьями LR, деревьями ITT, и деревьями STT и их соответствующими деревьями цены опции. Следуйте инструкциям для деревьев BDT.

Смотрите также

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Связанные примеры

Больше о

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