В этом примере показано, как определить стоимость ликвидации отдельных запасов в портфеле с помощью анализа транзакционных издержек исследовательской группы Kissell. Сравните отдельные запасы в портфеле с помощью различных метрик в график поля точек.
В качестве примера данных для вычисления затрат используется процент стратегии торговли объемами. Можно также использовать торговую стратегию торгового времени для выполнения анализа путем замены процента объемных данных данными торгового времени.
Для доступа к коду примера введите edit KRGPortfolioLiquidityExample.m
в командной строке.
Получите данные о влиянии рынка на FTP-сайт Kissell Research Group. Подключитесь к FTP-сайту с помощью ftp
функция с именем пользователя и паролем. Перейдите к MI_Parameters
папка и извлечение данных о влиянии рынка в MI_Encrypted_Parameters.csv
файл. miData
содержит зашифрованную дату влияния на рынок, код и параметры.
f = ftp('ftp.kissellresearch.com','username','pwd'); mget(f,'MI_Encrypted_Parameters.csv'); close(f) miData = readtable('MI_Encrypted_Parameters.csv','delimiter', ... ',','ReadRowNames',false,'ReadVariableNames',true);
Создайте объект анализа затрат на транзакцию Kissell Research Group k
.
k = krg(miData);
Загрузите пример данных TradeData
из файла KRGExampleData.mat
, который входит в комплект поставки Datafeed Toolbox™.
load KRGExampleData.mat TradeData
Описание примерных данных см. в разделе Наборы данных исследовательской группы Kissell.
Оценка затрат на воздействие на рынок mi
.
TradeData.mi = marketImpact(k,TradeData);
Оцените риск синхронизации tr
.
TradeData.tr = timingRisk(k,TradeData);
Оцените коэффициент ликвидности lf
.
TradeData.lf = liquidityFactor(k,TradeData);
Для получения дополнительной информации о предыдущих расчетах обратитесь в исследовательскую группу Kissell.
Создайте график поля точек, которое показывает следующее:
Размер
Изменчивость
Влияние на рынок
Риск синхронизации
Коэффициент ликвидности
figure axOrder = subplot(2,3,1); nSymbols = 1:length(TradeData.Size); scatter(nSymbols,TradeData.Size*100,10,'filled') grid on box on title(' Order Size (%ADV)') axOrder.YAxis.TickLabelFormat = '%.1f%%'; axVolatility = subplot(2,3,2); scatter(nSymbols,TradeData.Volatility*100,10,'filled') grid on box on title('Volatility') axVolatility.YAxis.TickLabelFormat = '%g%%'; axMI = subplot(2,3,4); scatter(nSymbols,TradeData.mi,10,'filled') grid on box on title('Market Impact (bp)') axMI.YAxis.TickLabelFormat = '%.1f'; axTR = subplot(2,3,5); scatter(nSymbols,TradeData.tr,10,'filled') grid on box on title('Timing Risk (bp)') axTR.YAxis.TickLabelFormat = '%.1f'; axLF = subplot(2,3,6); scatter(nSymbols,TradeData.lf*100,10,'filled') grid on box on title('Liquidity Factor') axLF.YAxis.TickLabelFormat = '%.2f%%';
Этот рисунок демонстрирует представление моментального снимка в издержках на торговлю и ликвидацию, волатильности и размере акций в портфеле. Можно изменить этот график поля точек, включив другие переменные из TradeData
.
krg
| liquidityFactor
| marketImpact
| timingRisk