Медленно, Но Верно: Выбираем Оптимальную Стратегию Для Торгового Робота



Медленно, но верно: выбираем оптимальную стратегию для торгового робота

Большинство торговых систем созданы по типу «быстро заработать деньги».

Они пользуются временной неэффективностью рынка для достижения годовой доходности в районе 100%.

Такие системы требуют постоянного контроля.

Их необходимо адаптировать к рыночным условиям.

Но продолжительность их жизни остается относительно короткой.

И когда это время наступает, смерть системы обычно связана с большими финансовыми потерями.

А что, если вы останетесь в выигрыше, но сделаете работу с торговой системой более комфортной и безопасной? Предлагаем вам адаптированный перевод статьи в «Финансовом хакере», в котором автор реабилитирует идею Марковица и его подход к оптимизации среднего отклонения.

«Старый добрый» подход к инвестированию гласит: покупайте активы с низким уровнем риска и ждите.

Каждый инвестиционный портфель имеет определенный средний гарантированный доход и определенный уровень колебаний цен.

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

Оптимальное распределение капитала – это именно то, что призвано решить эту проблему.

Он подразумевает неравномерное распределение инвестированных средств по количеству N активов.

Самый простой способ решения проблемы повышения средней рентабельности при минимизации рисков был предложен 60 лет назад. Гарри Марковиц .

Это решение принесло ему Нобелевскую премию.



Устаревший Марковиц

К сожалению, Марковиц был полностью забыт. Хотя проблема остается: в любой торговой системе приходится рассчитывать оптимальное распределение задним числом.

В реальной торговле оптимизированный таким образом портфель загадочным образом терпит неудачу.

Считается, что обычный доход на практике составляет менее 1/N капитальных вложений.

Недавно появился статья , автор которого решил оспорить это утверждение.

Вот что говорится в первом абзаце этого исследования:

«Оптимизация средней дисперсии (MVO), предложенная Марковицем в 1952 году, сегодня рассматривается как красивая теория, но бесполезная на практике.

Это назвали нестабильной и ошибочной процедурой.

Говорят, что поскольку она основана на расчете средних значений, волатильности и корреляции доходности активов, то малейшая ошибка на входе делает применение этой оптимизации бессмысленным».

На самом деле, поставить правильные данные на входе в систему – не такая уж большая проблема.

Да и самих параметров расчета немного.

Но по какой-то причине такое оптимизированное портфолио для критиков Марковица действительно не работает. Вероятно, они делают что-то не так.

Например, использование слишком длительных периодов возврата к выборочному среднему.

Или они неправильно применяют алгоритм MVO, смешивая короткие и длинные портфели.

При правильном использовании периодов импульса и исключительно длинных инвестиционных портфелей MVO дает результаты, выходящие за пределы выборки, значительно превышающие 1/N. Не верите мне? См.

пример тестирования этого алгоритма на R в блоге.

Илья Киприс .

Реализация на R — редкая практика в реальной торговле.

Вам следует попробовать MVO на другой платформе.

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



Реализация МВО

Для реализации на Зорро автор берет макет Марковица из публикации 1959 года.

В главе 8 он максимально понятно и доступно описывает алгоритм MVO. Для менее продвинутых программистов есть даже введение в линейную алгебру.

Автор добавил в исходный алгоритм лишь ограничение по весу, как и предлагают сделать авторы упомянутой выше статьи.

В конце концов, это оказалась отличная идея.

Это условие помогло стабилизировать алгоритм и улучшить его производительность вне выборки.

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

Вот как выглядит чек:

   

function main() {

Теги: #финансы #торговые роботы #разработка #программирование #Анализ и проектирование систем
Вместе с данным постом часто просматривают: