Проведите обратный тест на портфолио

В этом примере показано, как провести регрессионный тест на наборе запасов с помощью анализа транзакционных издержек исследовательской группы Kissell.

  • Анализ реализации инвестиционной стратегии в определенный день или область значений дат.

  • Оценить исторические затраты на влияние рынка и соответствующие долларовые значения для заданных исторических дат.

  • Анализируйте торговые издержки различных порядков в различные даты.

Для доступа к коду примера введите edit KRGBackTestingExample.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,datetime('today'),1,250);

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

load KRGExampleData TradeDataBackTest

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

Подготовка данных для обратной проверки

Определите количество запасов numRecords в портфолио.

numRecords = length(TradeDataBackTest.Symbol);

Предварительно выделите таблицу выходных данных o.

o = table(TradeDataBackTest.Symbol,TradeDataBackTest.Side, ...
    TradeDataBackTest.Date,NaN(numRecords,1),NaN(numRecords,1), ...
    'VariableNames',{'Symbol','Side','Date','MI','MIDollar'});

Убедитесь, что количество акций является положительным значением, используя abs функция.

TradeDataBackTest.Shares = abs(TradeDataBackTest.Shares);

Преобразование торговой стратегии в процентах от стратегии объемной торговли.

TradeDataBackTest.TradeTime = TradeDataBackTest.TradeTime ...
    .* TradeDataBackTest.ADV;
TradeDataBackTest.POV = krg.tradetime2pov(TradeDataBackTest.TradeTime, ...
    TradeDataBackTest.Shares);

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

Оцените исторические рыночные затраты для каждого запаса в портфеле в различные даты с помощью marketImpact. Преобразуйте стоимость влияния на рынок из десятичных чисел в местные доллары. Получите получившиеся данные в таблице выходных данных o.

for ii = 1:numRecords
    
    k.MiDate = TradeDataBackTest.Date(ii);
    k.MiCode = TradeDataBackTest.MICode(ii);

    o.MI(ii) = marketImpact(k,TradeDataBackTest(ii,:));
    MIDollars = (TradeDataBackTest.Shares(ii) * TradeDataBackTest.Price(ii)) ...
        * o.MI(ii)/10000 * TradeDataBackTest.FXRate(ii);

    o.MIDollar(ii) = MIDollars;
    
end

Отображение первых трех строк выхода данных.

o(1:3,:)
ans = 

    Symbol    Side       Date        MI     MIDollar
    ______    ____    __________    ____    ________

    'A'       1.00    '5/1/2015'    1.04     103.91 
    'B'       1.00    '5/1/2015'    3.09    3864.44 
    'C'       1.00    '5/1/2015'    8.54    5335.03 

Данные выходы содержат следующие переменные:

  • Символ штока

  • Сторона

  • Историческая торговая дата

  • Историческое влияние рынка на стоимость в базисных точках

  • Историческое влияние рынка на значение в местных долларах

Ссылки

[1] Кисселл, Роберт. Создание динамических моделей Pre-Trade: Beyond the Black Box (неопр.) (недоступная ссылка). Торговый журнал. Том 6, № 4, осень 2011, стр. 8-15.

[2] Кисселл, Роберт. «TCA в инвестиционном процессе: обзор». Журнал Индекса инвестиций. Том 2, № 1, лето 2011, с. 60-64.

[3] Кисселл, Роберт. Наука об алгоритмической торговле и управлении портфелем. Cambridge, MA: Elsevier/Academic Press, 2013.

[4] Чунг, Грейс и Роберт Кисселл. «Применение транзакционных издержек в процессе оптимизации портфеля». Торговый журнал. Том 11, номер 2, весна 2016, стр. 11-20.

См. также

|

Похожие темы