Избранное трейдера yuryss
Решил тоже поддержать интерес к тестированию алгоритмических торговых систем.
Есть такое мнение, что даже при соотношении прибыльных и убыточных сделок в 50/50 можно зарабатывать, если прибыли брать в 3 раза больше чем убытка. То есть, можно даже просто на подбрасывании монетки зарабатывать.
По-моему, даже кто-то известный из гур говорил про этот грааль...
Ну что ж, давайте проверим эту теорию. Сильно глубоко исследовать не будем, думаю, будет достаточно поверхностных тестов для общего представления.
Для тестов взял нефть и период тестирования 04.01.2019 – 25.04.2019, 1 минутный ТФ. Система входит случайным образом в лонг или шорт 1 контрактом и открыта может быть только 1 позиция. Выход по стопу в минус 5 тиков или по тейку в 15 тиков. 3 к 1 как положено. Комиссия и проскальзывание не учитываются – повысим вероятность заработка.
Сделал 6 проходов и вот что получилось (зеленым — % годовых, красным – макс. просадка):
От более стратегического видения рынка, который я описывал, например, в статьях:
https://smart-lab.ru/blog/534372.php
https://smart-lab.ru/blog/535384.php
https://smart-lab.ru/blog/536789.php
предлагаю перейти к тактическому и задумаемся, как оценить качество того или иного алгоритма входа в позицию по некоторому инструменту.
Одним из таких подходов является MFE/MAE анализ. Что это такое? Рассмотрим рисунок ниже.
Часть 2.
В прошлой части мы подбирали такую комбинацию статистических оценок динамики акций, которая давала нам возможность стабильно выбирать портфель акций лучше среднерыночного, с показателем Шарпа на 26% выше индексного.
Мы также пробовали составлять портфель из портфелей и портфель на основе портфеля оценок, но в силу высокой линейной зависимости оценок и полученных на них портфелей друг от друга Bagging ожидаемо не дал никакого результата.
Тем не менее, этот важный этап подготовительных работ – построение портфеля (или композиции портфелей) на простых, статистических оценках дал нам некоторую отправную точку, относительно которой мы будем рассматривать эффективность всех наших последующих нововведений.
Рис. 6. Иллюстрация динамики волатильности акций США, входящих в состав индекса S&P 500.
Основную проблему стандартных методов мы видим в том, что они разработаны для стационарных стохастических процессов, в то время как любые финансовые (а зачастую природные, биологические и др.), временные ряды имеют нестационарную природу. Так, например, широко известно, что логарифмическое изменение стоимости акций является нестационарным процессом со склонностью к консолидации (кластеризации) волатильности.
Процент растущих дней: 50.01%.
Средний возврат дня: 0.023%
Процент растущих дней, если предыдущий 1 день падал: 40.71%
Процент растущих дней, если предыдущий 1 день рос: 59.72%
Как оценивать систему? То есть предположим, что уже есть система, на тестере. Есть важные показатели стратегии, есть не очень. Прибыльность, максимальный дродаун, максимальный период просадки – это всем понятно. Менее очевидно, но важны: средняя прибыль на сделку и профит-фактор. Если тестер показал меньше определенных значений, торговая система не работает. И неважно, какая там прибыль. Вообще неважно, хоть 500% годовых.
Средняя прибыль на сделку важна, потому что это показатель хрупкости системы.
Если у вас на стадии теста средняя прибыль вышла 0.02% на сделку, это, весьма вероятно, приговор. В конкретных цифрах это, например, средняя прибыль в 10 единиц с контракта ценой 50000 единиц. Такая прибыль висит на соплях. Если чуть подует ветерок – повысятся комиссии, спреды, чуть изменится рынок – она опрокинется. При этом тестер может нарисовать вам любую прибыль, но вы должны быть умнее его. Начиная от 0.1% уже терпимо для гиперликвидов (на Московской бирже последние десять лет это были фьючерсные контракты на доллар и индекс РТС, сейчас еще брент). Проверял – терпимо, работает. На менее ликвидных инструментах показатель должен быть сильно больше.
Последние что мы сделаем с нашими ценами. Зададим лимиты по волатильности. Я постараюсь сделать график РИ, дневной, с настоящими характеристиками. После чего мы сможем проверить на нем различные стратегии.
Мы используем хорошо забытую методику имени Орнштейна-Уленбека. В общем, это основа, из которой все понемногу брали и почетные имена забыли. Качаем файл и смотрим формулу:
https://cloud.mail.ru/public/2TTp/33yg8KSna
Это дифур и его решение. Где х(t) это наша искомая волатильность на следующий день. При этом мы получаем три члена. Альфа «а», которая отвечает за среднее значение и уровень притяжения. Битта «б», отвечает за скорость этого «притяжения» и сигма за границы «коридор». Если вы, когда ни будь, слышали такое название «компрессор лимитер», то это оттуда. На листе «ОУ» видны свойства этой формулы. У нас есть некий ряд со средним 5,6. Мы можем задать альфу 5,6 и битту 0,5. Мы получим ряд со средним 5,6, но более «сплоченную» вокруг среднего значения. Чем больше у нас битта, тем ближе мы к среднему значению. Можете поменять цифры в зеленой зоне и посмотреть, кто за что отвечает.
Описание и тестирование в программе Wealth-Lab первых двух роботов я уже приводил. Вот соответствующие ссылки:
Тестирование рабочей свечной модели на исторических данных
Тестирование модели CandleMax в программе Wealth-Lab
Индикатор PVV (price/volume/volatility)
Тестирование робота PVVI в программе Wealth-Lab
Сейчас настало время дать краткое описание и привести тестирование в программе Wealth-Lab третьей торговой системы, которая у меня сейчас в работе.
Торговая система AVP (average volume/price) не является свечной моделью, как CandleMax, и не основана на красивой математической формуле, как система PVVI. Из трех моих спекулятивных роботов, робот AVP выдает сигналы реже всех. Тем не менее, результативность этого робота практически совпадает с результативностью робота PVVI, лишь совсем немного ей уступая.