exponenta event banner

Анализ результатов выполнения торгов

В этом примере показано, как проводить послеторговый анализ с использованием анализа операционных затрат Исследовательской группы Kissell. Постторговый анализ включает дефицит внедрения, альфа-захват, эталонные затраты, добавленную стоимость брокера и Z-Score. Дополнительные сведения об этих метриках см. в разделе Определения метрик послеторгового анализа. Постторговый анализ можно использовать для оценки доходности портфеля и прибыли. Можно измерить производительность брокеров и алгоритмов.

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

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

load KRGExampleData.mat PostTradeData

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

Определение затрат на внедрение

Определите компоненты затрат на дефицит внедрения в базисных точках. Компоненты:

  • Фиксированная стоимость ISFixed

  • Стоимость задержки ISDelayCost

  • Стоимость исполнения ISExecutionCost

  • Возможная стоимость ISOpportunityCost

Дополнительные сведения о компонентах затрат см. в разделе Определения метрик послеторгового анализа.

PostTradeData.ISDollars = ...
    PostTradeData.OrderShares .* PostTradeData.ISDecisionPrice;
PostTradeData.ISFixed = ...
    PostTradeData.ISFixedDollars ./ PostTradeData.ISDollars*10000;
PostTradeData.ISDelayCost = ...
    PostTradeData.OrderShares .* ...
    (PostTradeData.ISArrivalPrice-PostTradeData.ISDecisionPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;
PostTradeData.ISExecutionCost = ...
    PostTradeData.TradedShares .* ...
    (PostTradeData.AvgExecPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;
PostTradeData.ISOpportunityCost = ...
    (PostTradeData.OrderShares-PostTradeData.TradedShares).* ...
    (PostTradeData.ISEndPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ISDollars*1000;

Определение общих затрат на внедрение ISCost.

PostTradeData.ISCost = PostTradeData.ISFixed + ...
    PostTradeData.ISDelayCost + PostTradeData.ISExecutionCost + ...
    PostTradeData.ISOpportunityCost;

Определение прибыли

Определение альфа-захвата Alpha_CapturePct. Разделить реализованную прибыль Alpha_Realized по потенциальной прибыли Alpha_TotalPeriod.

PostTradeData.Alpha_Realized = ...
    (PostTradeData.ISEndPrice-PostTradeData.AvgExecPrice).* ...
    PostTradeData.TradedShares .* PostTradeData.SideIndicator ./ ...
    (PostTradeData.TradedShares .* PostTradeData.ISArrivalPrice)*10000;
PostTradeData.Alpha_TotalPeriod = ...
    (PostTradeData.ISEndPrice-PostTradeData.ISArrivalPrice).* ...
    PostTradeData.TradedShares .* PostTradeData.SideIndicator ./ ...
    (PostTradeData.TradedShares .* PostTradeData.ISArrivalPrice)*10000;
lenAlpha_Realized = length(PostTradeData.Alpha_Realized);
PostTradeData.Alpha_CapturePct = zeros(lenAlpha_Realized,1);
for ii = 1:lenAlpha_Realized
    if PostTradeData.Alpha_TotalPeriod(ii) > 0
        PostTradeData.Alpha_CapturePct(ii) = ...
        PostTradeData.Alpha_Realized(ii) ./ ...
        PostTradeData.Alpha_TotalPeriod(ii);
    else
        PostTradeData.Alpha_CapturePct(ii) = ...
        -(PostTradeData.Alpha_Realized(ii) - ...
        PostTradeData.Alpha_TotalPeriod(ii)) ./ ...
        PostTradeData.Alpha_TotalPeriod(ii);
    end
end

Определение эталонных и торговых затрат

Определение эталонных затрат в базисных пунктах. Здесь эталонные цены:

  • Цена закрытия предыдущего дня PrevClose_Cost

  • Открытая цена Open_Cost

  • Цена закрытия Close_Cost

  • Стоимость прибытия Arrival_Cost

  • Период VWAP PeriodVWAP_Cost

PostTradeData.PrevClose_Cost = ...
    (PostTradeData.AvgExecPrice-PostTradeData.PrevClose).* ...
    PostTradeData.SideIndicator ./ PostTradeData.PrevClose*10000;
PostTradeData.Open_Cost = ...
    (PostTradeData.AvgExecPrice-PostTradeData.Open).* ...
    PostTradeData.SideIndicator ./ PostTradeData.Open*10000;
PostTradeData.Close_Cost = (PostTradeData.AvgExecPrice-PostTradeData.Close).* ...
    PostTradeData.SideIndicator ./ PostTradeData.Close*10000;
PostTradeData.Arrival_Cost = (PostTradeData.AvgExecPrice- ...
    PostTradeData.ArrivalPrice).* ...
    PostTradeData.SideIndicator ./ PostTradeData.ArrivalPrice*10000;
PostTradeData.PeriodVWAP_Cost = (PostTradeData.AvgExecPrice- ...
    PostTradeData.PeriodVWAP).* ...
    PostTradeData.SideIndicator ./ PostTradeData.PeriodVWAP*10000;

Оценка влияния на рынок miCost и риск, связанный со сроками tr затраты.

PostTradeData.Size = PostTradeData.TradedShares ./ PostTradeData.ADV;
PostTradeData.Price = PostTradeData.ArrivalPrice;
PostTradeData.miCost = marketImpact(k,PostTradeData);
PostTradeData.tr = timingRisk(k,PostTradeData);

Определение добавленной стоимости брокера и Z-балла

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

PostTradeData.ValueAdd = (PostTradeData.Arrival_Cost-PostTradeData.miCost) * -1;

Определите Z-Score, используя риск добавления стоимости и синхронизации брокера.

PostTradeData.zScore = PostTradeData.ValueAdd./PostTradeData.tr;

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

См. также

| |

Связанные темы