Постановка:
Ключевая проблематика наиболее распространённого подхода торговли по свечам, без использования стаканов и объёмов — алгоритмы теряют эффективность.
У каждого алгоритма существует жизненный цикл, когда его эффективность растёт, выходит на плато и затем снижается в ноль или в убыток. При этом, через какое-то время этот цикл может повториться.
Пути решения:
1. Подстройка параметров единичного алгоритма (неэффективно, уходит много времени и ресурсов на это, в т.ч. ручной работы, нужно останавливать торговлю и после подстройки запускать заново)
2. Торговля пакетом алгоритмов без подстройки (снижается потенциальная прибыль, нет гарантии, что весь пакет не уйдёт в минус)
3. Торговля подстраиваемым пакетом автоматически созданных алгоритмов (отличные результаты, но требуются большие вычислительные ресурсы для регулярного расчёта/пересчёта алгоритмов и их подстройки, сильно возрастают требования к надёжности — качеству работы торгового хоста и канала связи, интерфейсу связи с брокером, + высокая сложность системы)
В поисках других подходов пришла в голову идея об
адаптивных алгоритмах. Это такие алгоритмы, которые подстраиваются в ходе торговли под рынок, при этом суть алгоритма по сигналам не меняется (эта техника у меня сейчас находится в процессе исследования).
Как это выглядит? Рассмотрим на примере скользящих с разными периодами.
Шаг 1.
Построим на свечном графике 10-15 скользящих с периодами усреднения от 3 с шагом 2 до 32.
Каждое пересечение любых двух скользящих есть сигнал. Кодируем эти сигналы, чтобы однозначно понимать, какая пересекла какую и в каком направлении. Каждое пересечение вверх или вниз даёт уникальный сигнал.
Итого для каждой из 15 скользящих имеем 14 сигналов Buy и 14 Sell (14+14) * 15 = 420 сигналов.
Шаг 2.
Далее используем любой индикатор, который описывает скорость динамики изменения цен, например, ATR.
ATR — не очень удачен, потому что использует абсолютные значения, лучше брать индикаторы с относительными, но для примера сойдёт.
Нам нужно для каждого сигнала, определённого на Шаге 1, найти такие интервалы, когда он работает наилучшим образом.
В результате получаем матрицу такого вида
MA n | MA m | код сигнала (n_m) | лучший интервал ATR для сигнала (min — max)
Шаг 3.
Далее в торговле при поступлении сигнала Buy или Sell при пересечении любых двух скользящих соответственно вверх или вниз смотрим, какое сейчас значение ATR. Если оно соответствует лучшему интервалу для этого сигнала, которое нашли на предыдущем шаге, открываем сделку, иначе игнорируем.
Дополнительно:
1. Можно открывать дополнительные позиции в ту же сторону, если уже открыта существующая или игнорировать сигналы, пока есть открытая позиция.
2. Можно открывать позиции и в обратную сторону (например, открывать шорт при открытом лонге), не забывая закрывать открытые до этого, когда по ним придёт сигнал на закрытие. Это уже множественная торговля на одном инструменте, что хорошо сказывается на гладкости эквити, но за это платим доходностью.
3. Можно использовать скользящие стопы по индикатору PSAR или не использовать.
4. Можно использовать не все рассчитанные диапазоны ATR, а только несколько или вообще один.
там просто вкрай
сы слишком увлечен техническими деталями… представь что бот у тебя уже есть… даже несколько ботов… и как ими торговать вообще?
во-вторых, хороша та система, в которой не нужно смотреть, как, когда и какие сделки совершались. Я уже давно не анализирую посделочно. Смотрю эквити, устраивает — оставляю, не устраивает — отключаю.
Копал когда-то в этом направлении несколько раз, ибо теоретически кажется, что мысль здравая, но на практике, чаще тупые системы с фиксированными, дубовыми параметрами обходят «умные» динамически-адаптивные системы.
В общем здесь рыбы нет, надо копать в другую сторону или смотреть под другим углом, кому как удобнее.
Поэтому будем посмотреть, какая доходность по адаптивным получится, если вообще получится, и сравнивать её тоже с максимально возможной по инструменту.
Мозг торгует по вчерашней воле.
bascomo, судя по п.3, вы собрались открывать сделку на том же баре, на котором получили ATR. Это типовая ошибка, заглядывание на 1 бар, на проде у вас это сделать не получится, ну а многие бэктестеры позволяют.
Для иллюстрации результат стратегии, которая подглядывает знак приращения всего лишь на 1мин вперед (Si по номиналу, 10M депо, без реинвеста, 2519% годовых, шарп 82, maxDD 2%):
Код грааля (Ami): Trend = Sign(Next(Close) — Close);
Важно поставить формулу расчета периода вместо подстроек оного.Период изменяется соответственно силе тренда от 3(супер тренд) до 34(боковик). Фактором расчета периода я считаю перекрытие, те параметры последнего фрактала.Самое простое это -зигзаг.Другим индикатором может быть скорость перемен за цикл. А размер участия в сделке зависит от тайма и объема.Хотя эти параметры и связаны, но внутри фрактала объем ведет себя особенно по фазам времени, коих 8.