Решил тоже поддержать интерес к тестированию алгоритмических торговых систем.
Есть такое мнение, что даже при соотношении прибыльных и убыточных сделок в 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 анализ. Что это такое? Рассмотрим рисунок ниже.
Начнем с традиционной таблицы
Май для меня начался плохо. До 13 мая из 7 торговых дней я только один закончил в плюс и 13 мая обновил годовой максимум просадки. Все изменилось 14 мая. Причем о росте Газпрома я узнал случайно. Позиция у меня накануне вечером была небольшая и ничто не предвещало сильных изменений счета. С утра так и было: счет колебался в пределах плюс-минус 0,15%. Каково же было мое удивление, когда по обыкновению заглянув в квик примерно раз в час, я увидел +2,9%. Я даже подумал, что это сбой расчетов в квике, стал разбираться и увидел Газпром по 172 и полностью набранную позу «лонг с плечом» в Газпроме по 163,7-165,5. Газпром, кстати, был единственным из моих инструментов, где «фильтр плечей» находился в состоянии «лонг с плечом», в остальных лонг+шорт, кроме Сбера, в котором тогда вообще включился «фильтр пилы».
В итоге за день получилось +8,65%. Таких процентов за день в плюс я уже не помнил с 2009-го (-10,3% 3 марта 2014-го я не забуду никогда). Но мой внимательный знакомый указал мне на 17 ноября 2015, когда было +7,13%. А так как в то время мои объемы по отношению к счету были примерно в 5/3 раза меньше (о причинах, по которым с 12 июля 2012 по 8 ноября 2017 торговал с предельной просадкой 15%, а не 25%, как в остальное время с 2008-го, я тут уже писал), то 17 ноября в сравнении было бы даже больше: ≈+11,88%. Но перерасчет всех подневных доходностей показал, что 14 мая – это был второй день по доходности с момента перестроения торговли 12.07.2012, третье место у 22.01.2016 с ≈+7,21%.
Обычно человек ходит по колее, но иногда система сбоит и случаются «эмм, а чё я раньше не задумывался, что можно…» и «хм, а ведь можно попробовать сделать…». В такие моменты можно выскакивать за пределы колеи и переходить в новую более интересную, выходить из зоны болотного комфорта в зону воодушевляющего дискомфорта.
Всегда ходил по колее (вернее, замкнутому циклу): математика не моё, у меня много своих преимуществ, математик не в их числе, не всем дано. И к нему прицеплялось: машинное обучение, нейронные сети, статистика и тер.вер. требуют математики – ну, значит, тоже не мое, ну значит без этого. А тут че-то осенило: а какого хрена!? Кстати, тот случай когда реклама сподвигла (назойливая реклама курсов обучения по Data Science). Сначала отмахивался, а в какой-то момент подумал: а почему бы и нет? – Да, страшно, да лень, да не уверен, что получится, да долго, да нет уверенности, что поможет и т.д. Хорошо подумал, уверенным движением руки смахнул все эти иррациональные возражения и страхи со стола и записался на курс.
Так что скоро, надеюсь, например, не буду просто пролистывать посты уважаемого А.Г., а, возможно, буду извлекать смысл.
Кстати, уже только при прочтении программы курса словил пару инсайтов применительно к фин. рынкам.
Глаза загорелись. Будет интересно.
Нашёл одну российскую компанию, которая занимается алгоритмическим ДУ. У неё на сайте указано, что деньгами управляют 5 000 роботов с 5 000 независимых алгоритмов.
Компания преподносит это как свою сильную сторону.
Но возникают вопросы:
1. Все алгоритмы равны по прибыльности?
2. Они не смогли выбрать из них некоторое количество лучших?
3. Могут быть 5 000 действительно хороших алгоритмов?
Сложилось мнение, что они просто напридумывали 5 000 алгоритмов, каждый из которых работает 50:50. И торгуют просто по принципу «Авось большинство что-нибудь заработает или хотя бы не потеряет». Похоже на ковровые бомбардировки за невозможностью сработать высокоточно.
Что думаете о таком подходе? Рабочий ли он?
Немного порассуждаю про уровень абстракции в стратегиях и про ООП как инструмент для этого.
Да, чтобы войти на пересечении скользящих и выйти по трейлингу на основе параболика ООП нафиг не нужен. Но я мыслю более реальными, «физическими» категориям. В смысле более живыми. Импульс, консолидация, да тот же тренд. Да, теоретически я могу использовать стандартные индикаторы, но у меня всегда индикатор – всего лишь отражение какого-то физического процесса. Но об этом я частенько упоминал, сейчас не совсем об этом.
Когда ты дата-майнишь, рисечишь идеи для стратегий тебе позарез нужно конкурентное преимущество. Перебирать и комбинировать сигналы разных индикаторов – это давно не работает. Конкурентные преимущества бывают разные: преимущества могут быть у бога математики или физики, у бога статистики и аналогичных наук, преимущества могут быть у лютых технарей, которые могут покорить космические скорости вычислений и исполнения.
Сейчас попробую выделить ещё один вид преимущества, ну или вернее ниша, в которой, как мне кажется, пасется не так много народу. Я говорю про нишу высокоуровневых абстракций.
Что я имею в виду, зачем это надо, при чем здесь ООП.
Всем привет. С вами рубрика «Данные говорят». Да, это первый выпуск в этой рубрике). В этой рубрике мы будем разговаривать с данными. Нет, я не сошел с ума. Данные будут говорить, а я только слушать. А с вами данные тоже разговаривают?
Погнали. Под данными в данном случае имею в виду числа, графики числовых рядов, таблички и аналогичное. В данном конкретном случае речь про числа, графики, таблички по итогам бэктестов стратегии (её болванки, или другими словами корневой идеи).
Если уметь слушать данные, то можно многое услышать – например, например, можно находить баги в коде стратегии, интересные идеи, резервы и т.д. Затягиваешь параметром диапазон значений, а число трейдов растёт? – Ну значит где-то баг. Если вслушиваться в данные – иногда можно идентифицировать не только факт наличие бага, но и его локализацию и характер.
Теперь конкретней про «корреляция графиков зависимости лонга и шорта от значения параметра». Наверно, по формулировке не очень понятно, о чем речь. Тем более, предположу, что так глубоко и в эту сторону копают не только лишь все. Поэтому поясню: допустим, я хочу понять роль параметра А в стратегии, самый простой вариант – не шевеля параметры Б, В, Г и Д, перебирать А с некоторым шагом. Вот мы пошевелили А, не шевеля Б, В, Г, Д. А теперь для каждого прогона посчитали, допустим Profit Factor (возьмем его условно за некий показатель, характеризующий качество стратегии) отдельно для лонговых позиций и отдельно для шортовых. Ну и построили два графика – значение PF в зависимости от А для лонга и значение PF в зависимости от А для шорта. Так вот, иногда/часто эти графики будут прилично коррелировать.