Проведите анализ чувствительности для оценки торговых издержек

Этот пример показывает, как оценить изменения в торговых издержках из-за ликвидности, волатильности и чувствительности рынка к потоку заказов и сделкам. С помощью анализа транзакционных издержек исследовательской группы Kissell можно моделировать окружение торговых издержек для набора запасов. Анализ чувствительности позволяет вам оценить будущие торговые издержки для различных рыночных условий, чтобы определить соответствующее содержание портфеля, которое удовлетворяет потребности инвесторов.

Здесь оцените изменения в торговых издержках за счет снижения среднесуточного объема на 50% и удвоения волатильности. В качестве примера в данных используется процент торговой стратегии по объему (POV).

Для доступа к коду примера введите edit KRGSensitivityAnalysisExample.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);

Загрузите примеры из файла KRGExampleData.mat, который входит в комплект поставки Datafeed Toolbox™.

load KRGExampleData.mat

Описание примерных данных см. в разделе Наборы данных исследовательской группы Kissell.

Оценка начальных торговых издержек

Оцените начальные торговые затраты с помощью примера данных TradeData. Торговые издержки:

  • Мгновенная торговая стоимость itc

  • Затраты, влияющие на рынок mi

  • Факторизация риска tr

  • Повышение цены pa

Сгруппируйте все четыре торговые затраты в числовую матрицу initTCA.

itc = iStar(k,TradeData);
mi = marketImpact(k,TradeData);
tr = timingRisk(k,TradeData);
pa = priceAppreciation(k,TradeData);
initTCA = [itc mi tr pa];

Создание сценария

Установите переменные, чтобы создать сценарий. Здесь сценарий уменьшает среднесуточный объем на 50% и удваивает волатильность. Цена акций, объем, оценка альфа и торговая стратегия остаются неизменными по сравнению с данными примера. Можно изменить значения этих переменных, чтобы создать различные сценарии. Поля:

  • Среднесуточный объем

  • Изменчивость

  • Цена акций

  • Объем

  • Альфа-оценка

  • Торговая стратегия POV

  • Торговая стратегия торгового времени

adjADV = 0.5;
adjVolatility = 2.0;
adjPrice = 1.0;
adjVolume = 1.0;
adjAlpha = 1.0;
adjPOV = 1.0;
adjTradeTime = 1.0;

Скорректируйте данные примера на основе переменных сценария.

TradeDataAdj = TradeData;
TradeDataAdj.Size = TradeData.Size .* (1./adjADV);
TradeDataAdj.ADV = TradeData.ADV .* adjADV;
TradeDataAdj.Volatility = TradeData.Volatility .* adjVolatility;
TradeDataAdj.Price = TradeData.Price .* adjPrice;
TradeDataAdj.Alpha_bp = TradeData.Alpha_bp .* adjAlpha;

TradeDataAdj содержит скорректированные данные. Размер удваивается, потому что среднесуточный объем уменьшается на 50%.

Преобразуйте торговую стратегию POV в торговую стратегию времени.

[~,povFlag,timeFlag] = krg.krgDataFlags(TradeData);
if povFlag
    TradeDataAdj.POV = TradeData.POV.*adjPOV;
    TradeDataAdj.TradeTime = TradeDataAdj.Size .* ...
        ((1-TradeDataAdj.POV) ./ TradeDataAdj.POV) .* (1./adjVolume);
elseif timeFlag
    TradeDataAdj.TradeTime = tradedata.TradeTime .* adjTradeTime;
    TradeDataAdj.POV = TradeDataAdj.Size ./ ...
        (TradeDataAdj.Size + TradeDataAdj.TradeTime .* adjVolume);
end

Оценка затрат на торговлю для сценария

Оцените торговые затраты на основе скорректированных данных. Числовая матрица newTCA содержит торговые затраты для сценария.

itc = iStar(k,TradeDataAdj);
mi = marketImpact(k,TradeDataAdj);
tr = timingRisk(k,TradeDataAdj);
pa = priceAppreciation(k,TradeDataAdj);
newTCA = [itc mi tr pa];

Вычесть торговые издержки из сценария из начальных торговых издержек.

rawWI = newTCA - initTCA;
wi = table(rawWI(:,1),rawWI(:,2),rawWI(:,3),rawWI(:,4), ...
    'VariableNames',{'ITC','MI','TR','PA'});

Таблица wi содержит полное влияние этого сценария на торговые издержки.

Отображение торговых затрат для первых трех строк в wi.

wi(1:3,:)
ans = 

     ITC        MI        TR       PA  
    ______    ______    ______    _____

     43.05      0.65    290.80    -9.49
    408.29    124.52    443.16     8.47
     80.92     13.79    114.97     0.93

Переменные в wi являются:

  • Мгновенная торговая стоимость

  • Затраты, влияющие на рынок

  • Риск синхронизации

  • Повышение цены

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

См. также

| | | |

Похожие темы

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