Оптимизируйте длинный портфель

В этом примере показано, как определить веса оптимального портфеля для заданной долларовой стоимости с помощью анализа операционных издержек от Kissell Research Group. Демонстрационный портфель содержит только длинные доли запаса. Можно включить риск, возвратиться, и стоимость влияния на рынок во время реализации инвестиционного решения.

Этот пример требует лицензии Optimization Toolbox™. Для справочной информации см. Обзор Теории Оптимизации (Optimization Toolbox).

KRGPortfolioOptimizationExample функция, к которой можно получить доступ путем ввода edit KRGPortfolioOptimizationExample.m, адреса три различных сценария оптимизации:

  1. Максимизируйте компромисс между сетевым портфелем, возвращаются и портфельный риск. Максимизация компромисса описывается как

    argmaxx[R'xMI'|x|λx'Cx],

    где:

    • R является предполагаемым возвратом для каждого запаса в портфеле.

    • x обозначает веса для каждого запаса в портфеле.

    • MI является влиянием на рынок, стоившим за заданные количества долларовой стоимости и доли.

    • λ заданный параметр нерасположенности к риску.

    • C является ковариационной матрицей данных о запасе.

  2. Минимизируйте портфельный риск, удовлетворяющий минимальному целевому использованию возврата

    argminx[x'Cx].

  3. Максимизируйте сетевой портфель, возвращаются удовлетворяющий максимальному целевому использованию рискозависимости

    argmaxx[R'xMI'|x|].

Нижние и верхние границы ограничивают x в каждом сценарии. Каждая оптимизация находит локальный оптимум. Для способов искать глобальный оптимум, смотрите Локальный по сравнению с Глобальными оптимумами (Optimization Toolbox).

Получите параметры влияния на рынок и загрузите данные

Получите данные влияния на рынок от 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);

Создайте аналитический объект k операционных издержек Kissell Research Group. Задайте начальные установки для даты, кода влияния на рынок и номера торговых дней.

k = krg(miData,datetime('today'),1,250);

Загрузите данные в качестве примера TradeDataPortOpt и данные о ковариации CovarianceData из файла KRGExampleData.mat, который включен с Datafeed Toolbox™. Ограничьте набор данных первыми 50 строками.

load KRGExampleData TradeDataPortOpt CovarianceData

n = 50;
TradeDataPortOpt = TradeDataPortOpt(1:n,:);
CovarianceData = CovarianceData(1:n,1:n);

Для описания данных в качестве примера смотрите Наборы данных Kissell Research Group.

Максимизируйте сетевой портфель, возвращаются

Запустите сценарий оптимизации с помощью данных о ковариации и примера. Чтобы запустить первую оптимизацию, задайте 1 в последнем входном параметре.

[Weight,Shares,Value,MI] = KRGPortfolioOptimizationExample(TradeDataPortOpt, ...
    CovarianceData,1);

KRGPortfolioOptimizationExample возвращает оптимизированные значения для каждого запаса в портфеле:

  • Вес портфеля

  • Количество долей

  • Долларовая стоимость портфеля

  • Влияние на рынок стоится

Чтобы запустить другие два сценария, задайте 2 или 3 в последнем входном параметре KRGPortfolioOptimizationExample.

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

format

Weight(1:3)
ans =

    0.0100
    0.3198
    0.1610

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

format bank

Shares(1:3)
ans =

      24420.02
    3249893.71
     402364.47

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

Value(1:3)
ans =

    1000000.00
   31977654.17
   16097274.50

Отобразите влияние на рынок, стоившее за первые три запаса в портфеле в десятичном формате.

format

MI(1:3)
ans =

   1.0e-03 *

    0.1250
    0.7879
    0.3729

Ссылки

[1] Kissell, Роберт. “Создавая Динамические Предторговые Модели: Вне Черного квадрата”. Журнал Торговли. Издание 6, Номер 4, Осень 2011 года, стр 8–15.

[2] Kissell, Роберт. “TCA в Инвестиционном Процессе: Обзор”. Журнал Инвестирования индекса. Издание 2, Номер 1, Лето 2011 года, стр 60–64.

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

[4] Чанг, Грэйс и Роберт Кисселл. “Приложение Операционных издержек в Процессе Оптимизации Портфеля”. Журнал Торговли. Издание 11, Номер 2, Spring 2016, стр 11–20.

Смотрите также

| | (Optimization Toolbox) | (Optimization Toolbox)

Похожие темы