Блог им. Eugene777

Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров

Сегодня хочу поделиться некоторыми мыслями относительно фильтра торговых сигналов в разрезе состояния рынка. Для этого я ввел такие показатели, как среднее изменение с момента открытия рынка для совокупности торгуемых инструментов, текущее отклонение изменения выбранного инструмента от среднего и индекс изменения цены инструмента в индексе. 

Посмотрим, как ложатся результаты пробойной системы по тикеру VTR на эти индикаторы. 

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

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

Второй график показывает значения сделок в зависимости от того, на сколько изменения по тикеру VTR отличаются от изменения совокупного индекса.


Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров

Примерно та же ситуация. Открываемся в лонг, если VTR переигрывает индекс, и открываемся в шорт если выглядит слабее. Стоит заметить, что есть крайние значения в шорте, которые не подтверждают это правило, однако, надо понимать, что это совсем не значит, что такие ситуации повторятся.

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

Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров 

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

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


UPD: По совету Александра Горчакова сделал пару графиков остаточной эквити в позиции в зависимости от отклонения от индекса. Честно говоря, мой мозг пока это не перварил, но, мне кажется, тут надо выбирать немного другие параметры, такие как отклонение от хая дня или что-то в этом духе! Но идея хороша, спасибо!


Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров

Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров

Анализ результатов торговой стратегии в зависимости от состояния торгуемых тикеров
★4
22 комментария
А не проще было просто добавить дополнительное условие в логику ТС, прогнать оптимизацию по этому параметру и посмотреть результаты?
avatar
Ну прежде чем добавить логику в систему, надо было добавить функционал расчета всего этого дела, желательно прооптимизировав по скорости, ну а наглядность добавить — дело недолгое. Да, потом в систему, конечно.
avatar
Eugene777, ты на своем софте тестишь?
avatar
Alex Hurko, и да и нет. В основном в Wealth-Labе. Потом уже в свой софт. Там тоже можно тестить. Торгую из своего софта, соответственно, он должен уметь все считать.
avatar
Хороший факторный анализ. Только я бы смотрел не результаты сделок, а доходность эквити (отдельно лонга и отдельно шорта) за период.
avatar
А. Г., Александр, когда этот фильтр станет частью системы, можно будет смотреть эквити как портфеля, так и отдельных систем. Примерно как я описывал на видео здесь: smart-lab.ru/blog/190718.php
avatar
Eugene777,

Это можно сделать и для имеющихся систем — их эквити то есть.
avatar
А. Г., Александр, я не совсем понимаю, что Вы имеете ввиду. Если мы говорим о том, что есть система, которая подает сигналы в лонг и шорт и есть некий временной ряд, значения которого являются дополнительным фильтром для наших сигналов, все что мы можем, это фильтровать их по опеределенным парвилам, а потом получать новую эквити. Правила мы можем добавить путем включения фильтра в систему, либо отфильтровав значения по некому правилу, которое так же должны задать. Здесь я смотрю на результаты и определяю правила, не более того, потом я могу это правило включить в систему и посмотреть что получилось с эквити, могу задать парметры этому правилу и прооптимизировать их, и тоже посмотреть, что получилось. Вроде так.
avatar
Eugene777,

У любой системы, кроме сигналов на смену позиции (вход-выход) есть и сигналы на сохранение позиции. Оценить эффективность последних по статистике сделок невозможно — только по эквити системы. Поэтому и фильтр надо строить на все три типа сигналов. Т. е. смотреть влияние текущего значения фильтра на будущую доходность системы за период.
avatar
А. Г., я Вас понял и абсолютно согласен. Но тогда, наверное, самый простой вариант — это задавать правила и загонять в оптимизатор и смотреть эквити. Просто не совсем представляю, что строить в формате, как это сделано у меня. Или я что-то недопонимаю?
avatar
Eugene777,

Да методика как Ваша, только вместо результатов сделок, брать доходность системы (отдельно лонг, отдельно шорт) за некоторый период в будущем. И составлять такие же картинки.
avatar
А. Г., интересно! Попробую сейчас!
avatar
А. Г., что-то получилось, но не могу пока понять, что =)
avatar
Eugene777,

Судя по картинкам фильтр рабочий, надо думать над правилами его применения.
avatar
А. Г., мне стало интересно, этот фильтр стоит обсчитывать автоматически для каждого тикера и работать с пространством точек, или визуально определеять параметры и просто задавать?
avatar
Eugene777,

Ну на этот вопрос у меня только один ответ: эксперимент покажет. А эксперимент можете провести только Вы.
avatar
А. Г., я как раз хотел спросить, как это делают профессионалы!
avatar
Eugene777,

Каждая система (правила входа, выхода, сохранения позиции) индивидуальна. Это подходы к тестированию общие.
avatar
Роман Некрасов, различные тесты временных рядов, реализую чуть позже. Я и так летом из офиса не вылезаю, что меня немного печалит. =) В данном конкретном случае все немного проще: у нас есть общее состояние рынка и сигнал стратегии. В рамках этого вопроса, честно говоря, мне больше ничего не надо. А так я потихоньку начинаю перетаскивать наработки из R в C#. Ну и потом собираюсь увязать еще их для того, чтобы было полное взаимодействие.
avatar
Eugene777, я как раз сейчас занимаюсь изучением R — приятно впечатлен его функционалом и относительной простотой.

Но меня сразу стал интересовать вопрос будущего переноса статистических моделей в с#. Одно дело когда у тебя есть грубо говоря ключевые слова и можно творить со статистикой все что захочешь, а вот что делать с с#?

поделитесь опытом/впечатлениями переноса на с#…
avatar
kreativ_25, ну какие-то простые вещи просто переписывается, а вообще, есть библиотека R.Net, если не ошибаюсь, она достаточно простая.
avatar
Eugene777, вот за это большое спасибо!
Буду использовать!
avatar

теги блога Eugene777

....все тэги



UPDONW
Новый дизайн