Между чистыми и валовыми возвратами портфеля различия транзакционные издержки. Прокси чистой прибыли портфеля имеет определенные пропорциональные затраты на покупку и продажу активов, которые поддерживаются в PortfolioMAD
свойства объекта BuyCost
и SellCost
. Транзакционные затраты указаны в единицах общей отдачи и как таковые пропорциональны цене актива, так что они вводят модель для чистых возвратов портфеля в форме возврата. Например, предположим, что у вас есть акции по цене $40 и ваши обычные транзакционные расходы составляют 5 центов на акцию. Затем стоимость транзакции для запаса составляет 0,05/40 = 0,00125 (как определено в Чистых возвратах портфеля). Затраты вводятся как положительные значения, а кредиты - как отрицательные значения.
PortfolioMAD
Функция Для настройки транзакционных издержек необходимо указать начальный или текущий портфель в InitPort
свойство. Если начальный портфель не установлен при настройке свойств транзакционных затрат, InitPort
является 0
. Свойства транзакционных затрат можно задать с помощью PortfolioMAD
объект. Например, предположим, что транзакционные затраты на покупку и продажу указаны в переменных bc
и sc
и начальный портфель находится в переменной x0
затем устанавливаются транзакционные затраты:
bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ]; sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ]; x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ]; p = PortfolioMAD('BuyCost', bc, 'SellCost', sc, 'InitPort', x0); disp(p.NumAssets) disp(p.BuyCost) disp(p.SellCost) disp(p.InitPort)
5 0.0013 0.0013 0.0013 0.0013 0.0013 0.0013 0.0070 0.0013 0.0013 0.0024 0.4000 0.2000 0.2000 0.1000 0.1000
setCosts
ФункцияВы также можете задать свойства для транзакционных затрат с помощью setCosts
. Предположим, что у вас те же затраты и начальный портфель, что и в предыдущем примере. Учитывая PortfolioMAD
p объекта
с начальным портфелем, уже установленным, используйте setCosts
для настройки транзакционных издержек:
bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ];
sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ];
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = PortfolioMAD('InitPort', x0);
p = setCosts(p, bc, sc);
disp(p.NumAssets)
disp(p.BuyCost)
disp(p.SellCost)
disp(p.InitPort)
5 0.0013 0.0013 0.0013 0.0013 0.0013 0.0013 0.0070 0.0013 0.0013 0.0024 0.4000 0.2000 0.2000 0.1000 0.1000
Можно также настроить начальные InitPort
портфеля значение как необязательный аргумент для
setCosts
так, что следующий способ является эквивалентным для настройки транзакционных издержек:
bc = [ 0.00125; 0.00125; 0.00125; 0.00125; 0.00125 ]; sc = [ 0.00125; 0.007; 0.00125; 0.00125; 0.0024 ]; x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ]; p = PortfolioMAD; p = setCosts(p, bc, sc, x0); disp(p.NumAssets) disp(p.BuyCost) disp(p.SellCost) disp(p.InitPort)
5 0.0013 0.0013 0.0013 0.0013 0.0013 0.0013 0.0070 0.0013 0.0013 0.0024 0.4000 0.2000 0.2000 0.1000 0.1000
Оба PortfolioMAD
объект и setCosts
функция реализует скалярное расширение аргументов для транзакционных издержек и начального портфеля. Если на NumAssets
свойство уже задано в PortfolioMAD
объект, скалярные аргументы для этих свойств расширены, чтобы иметь одно и то же значение во всех размерностях. В сложение, setCosts
позволяет вам задать NumAssets
как необязательный конечный аргумент. Например, предположим, что у вас есть начальный портфель x0
и вы хотите установить общие транзакционные издержки для всех активов в вашей вселенной. Можно установить эти затраты любым из следующих эквивалентных способов:
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ]; p = PortfolioMAD('InitPort', x0, 'BuyCost', 0.002, 'SellCost', 0.002);
или
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ];
p = PortfolioMAD('InitPort', x0);
p = setCosts(p, 0.002, 0.002);
или
x0 = [ 0.4; 0.2; 0.2; 0.1; 0.1 ]; p = PortfolioMAD; p = setCosts(p, 0.002, 0.002, x0);
Чтобы удалить затраты из вашего PortfolioMAD
объект, используйте либо PortfolioMAD
объект или setCosts
с пустыми входами для свойств, которые будут удалены. Например, можно выровнять сбытовые затраты из PortfolioMAD
p объекта
в предыдущем примере:
p = PortfolioMAD(p, 'SellCost', []);
PortfolioMAD
| setCosts
| setScenarios
| simulateNormalScenariosByData
| simulateNormalScenariosByMoments