Блог им. AleksandrBaryshnikov

Адаптивные алгоритмы торговли

Постановка:

Ключевая проблематика наиболее распространённого подхода торговли по свечам, без использования стаканов и объёмов — алгоритмы теряют эффективность.

У каждого алгоритма существует жизненный цикл, когда его эффективность растёт, выходит на плато и затем снижается в ноль или в убыток. При этом, через какое-то время этот цикл может повториться.

Пути решения:

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, а только несколько или вообще один.

★8
25 комментариев
сложно...

там просто вкрай

сы слишком увлечен техническими деталями… представь что бот у тебя уже есть… даже несколько ботов… и как ими торговать вообще?
avatar
ves2010, во-первых, мне нравится процесс :)
во-вторых, хороша та система, в которой не нужно смотреть, как, когда и какие сделки совершались. Я уже давно не анализирую посделочно. Смотрю эквити, устраивает — оставляю, не устраивает — отключаю.
avatar
ves2010, мани менеджмент?
Сергей Сергаев, я не дон кихот, я с ветряными мельницами бороться смысла не вижу, на рынке всегда куча возможностей, которые сами дают деньги. Хотя это то же, что и написали. Я не хочу бороться, вот в чём смысл. Я вижу возможность и использую её, но это не совсем так. Мои алгоритмы видят возможность — и используют её, просто я свои алгоритмы считаю продолжением себя, поэтому «я».
avatar

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

В общем здесь рыбы нет, надо копать в другую сторону или смотреть под другим углом, кому как удобнее.

Лучший ученик В..., а подробнее?
avatar
Лучший ученик В..., Имею аналогичный опыт. Удивился такой ситуации. Пробовал с разных сторон подойди к динамически-адаптивным системам. 
avatar
Лучший ученик В..., адаптивный синоним подогнанный. Иногда это работает, но в большинстве случаев выносит мозг.
avatar
Звучит неплохо. Есть ли какие либо исследования или результаты по применению этого метода? В какую сторону они отличаются от системы с фиксированными параметрами?
avatar
T-800, у меня нет бенчмарка, кто сколько зарабатывает. Изучать такой подход я только собираюсь, пока ещё не проводил исследований. По моим фиксикам для меня норматив доходности в 10% от максимально возможной. Это означает, что если на инструменте/таймфрейме на заданном периоде можно было бы заработать, скажем, 500%, то алгоритм должен быть близким к 50%, с учётом комиссий. Но мои фиксики не совсем фиксики, т.к. алгоритмы тасуются по ходу торговли. А оптимизировать торговую стратегию на периодах в несколько лет контрпродуктивно и даже минимальной доходности не гарантирует, как и защиты от убытков, а зачем тогда этим заниматься?
Поэтому будем посмотреть, какая доходность по адаптивным получится, если вообще получится, и сравнивать её тоже с максимально возможной по инструменту.
avatar
 В данном случае я так понимаю идет привязка к тому что для каждого периода МА свой размер АТР при котором данные периоды МА лучше работают? т.е. простым языком — для каждого периода МА своя вола
avatar
Friend, именно так, и на графике выглядит логично, но нужно провести статистическое исследование
avatar
Когда вола взрывается, с определенным лагом, пока приходит понимание удается взять больше обычного, т.е. получается адаптироваться. Но когда вола резко падает, или еще хуже когда плавно снижается, не добираю совсем, адаптируюсь с запозданием…
Мозг торгует по вчерашней воле.
avatar
Некоторые не торгуют вообще низкую волу. Фильтруют.
avatar
22022022, и хорошо делают, иначе много холостых сделок.
avatar
Гипотеза о том, что какой-то исторический ATR коррелирует с перформансом в будущем стратегии ПересекуДвеМашки(tm) требует какого-нибудь обоснования.
Кирилл Гудков, почему в будущем? В настоящем. Пересечение двух МА и значение АТР на одной и той же свече находятся
avatar

bascomo, судя по п.3, вы собрались открывать сделку на том же баре, на котором получили ATR. Это типовая ошибка, заглядывание на 1 бар, на проде у вас это сделать не получится, ну а многие бэктестеры позволяют.


Для иллюстрации результат стратегии, которая подглядывает знак приращения всего лишь на 1мин вперед (Si по номиналу, 10M депо, без реинвеста, 2519% годовых, шарп 82, maxDD 2%):


Код грааля (Ami): Trend = Sign(Next(Close) — Close);

Кирилл Гудков, нет, конечно. На следующем. 
avatar
bascomo, в таком случае возвращаемся к исходной проблеме: есть ли корреляция между ATR на текущем баре с доходностью ДвухМашек на следующем?
Кирилл Гудков, неправильная постановка вопроса. Когда мы входим, мы ничего про доходность не знаем. Мы не знаем, когда закроется сделка. Всё, что мы можем, это понять, что мы вошли оптимально относительно текущей ситуации и защититься стопом. Поэтому если и искать корреляции, то между свечами таких входов — по машкам и атр, и свечами, размеченными как лучшие для входов. Как протестирую — расскажу. Наверное. 
avatar
Билл В. тоже любит торговать выше или ниже аллигаторов. Это сделки с опозданием(типа брать только (3ю в 3й волне) и с меньшей прибылью, чем по волнам Эла.Более верно входть в начале 3й.
Важно поставить формулу расчета периода вместо подстроек оного.Период изменяется соответственно силе тренда  от 3(супер тренд) до 34(боковик). Фактором расчета периода я считаю перекрытие, те параметры последнего фрактала.Самое простое это -зигзаг.Другим индикатором может быть  скорость перемен за цикл. А размер участия в сделке зависит от тайма и объема.Хотя эти параметры и связаны, но внутри фрактала объем ведет себя особенно по фазам времени, коих 8.
avatar
ezomm, ну то есть, концептуально это работает. 
avatar
bascomo, свеча = фрактал.Для лучшего входа — свеча приседающий.Таже формация из любого количества свечей.Тут стоп лосс лучший… за край свечи. Участие для фрактала из 5 свечей (идеал ) в тайме день 25% от счета.В тайме неделя 50% .1час = 6% .15мин =3% и тд.Это правило я вывел из закона рисования графика .4 фрактала собираются в 1 больший в 2 раза по амплитуде… те амплитуда волн цены удваивается за 4 тайма (свечи).
avatar

теги блога bascomo

....все тэги



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