MRS
MRS - Mean Reversion Strategy. Это контртрендовая стратегия, которая работает на основе предположения, что цена будет возвращаться к своему среднему значению после отклонения от него. Открывающий ордер выставляется на отступ от средней цены. Закрывающий ордер ставится по средней цене без отступа. При резком отклонении цены открывается позиция и закрывается при возврате цены к среднему значению.
Сделки по стратегии генерируются в моменты когда цена отходит от средней на определенный процент. ⚠️ Но если цена продолжит двигаться в том же направлении без отката, то позиция будет убыточной. Цена падает - стратегия покупает (Идет против тренда). Цена растет - продает (Тоже против тренда). Но закрытие в любом случае рано или поздно произойдет по средней цене.
Как правило по этой стратегии удержание позиции не долгое. И на спокойном рынке долго можно сидеть без позиции.
Рабочий тип ордера: Лимитный. Выставляется заранее и перемещается по мере изменения средней цены.
В самом простом исполнении на графике есть три линии МА (скользящие средние).
● Базовая MA цвета Фуксия показывает цену закрывающего лимитного ордера. Без смещения
● Лонг MA Зелёная - цена открывающего LONG позицию лимитного BUY ордера. Это базовая МА просто смещенная на % вниз.
● Шорт MA Красная - цена открывающего SHORT позицию лимитного SELL ордера. Это базовая МА просто смещенная на % вверх.
Алгоритм работы: Если вкл лонг и шорт, то выставляется 2 ордера. Если вкл только лонг или шорт, то 1 ордер. В ожидании позиции ордера перемещаются по своим линиям каждую новую свечу. Когда цена достигает цены нашего открывающего ордера - открывается позиция и выставляется закрывающий ордер по базовой МА. Закрывающий ордер также перемещается по своей МА до тех пор пока не будет исполнен. После цикл повторяется.
Настройка линий MA (открывающие и закрывающие ордера)
Открывающих линий может быть несколько для каждой стороны (ma_long, ma_short) - так получается сетка ордеров с докупками (MultiMA).
Закрывающая линия одна для каждой стороны (ma_close_long, ma_close_short) - позиция закрывается целиком одним ордером.
- id - порядковый номер линии, без повторов
- type - тип скользящей средней
SMA, EMA, GMA, HARMONIC, TEMA, DEMA, ZLEMA, WMA, VWMA, RMA, EHMA, THMA, HMA, DMA, ATR, H, L - source - источник цены
open, high, low, close, hl2, hlc3, ohlc4, hlcc4, oc2 - len - длина MA
- multiplier - смещение. 1 это нет смещения, 0.99 это -1%, 1.01 это +1%
- lot_x - множитель лота: размер ордера = базовый лот * lot_x. Для закрывающего ордера не используется
- order_type -
limitилиmarket. Рыночный ордер отправляется, когда цена дошла до линии - post_only - лимитный ордер только как мейкер
- hidden - скрытый лимитный ордер (только BitMEX)
Настройка лота. В базовых настройках установите balance_percentage = 100 и risk = 1. Тогда lot_x = 1 - ордер на 100% баланса, 0.5 - на 50%, 1.5 - на 150%.
Параметры стратегии
entry_on_close- для рыночных открывающих ордеров: проверять условие входа по цене закрытия последней свечи, а не по текущей ценеtrade_offset- для рыночных открывающих ордеров: брать значение MA на N свечей назадreverse_mode- для рыночных открывающих ордеров: входить не когда цена пересекла линию, а когда цена находится над линией (для покупки) или под ней (для продажи), не дальше 1% от нееrecalculate- пересчитывать размер ордеров при каждом обновлении, даже если позиция уже открытаclose_on_signal- начиная со второй свечи после входа, закрыть позицию рыночным ордером, как только цена коснулась закрывающей линииclose_on_wrong_side- если цена ушла дальше закрывающей линии больше чем на 0.5%, а лимитный ордер не исполнился - закрыть позицию рыночным ордеромemergency_stop- аварийная остановка: если открывающая линия оказалась по другую сторону от закрывающей (линии пересеклись), бот снимает все ордера и закрывает позициюnotification_trade_report- отчет в Telegram по каждой закрытой сделке: средняя цена входа, цена выхода и результат в %position_priority- приоритет позиции для ограничителя позиций (см. ниже)
Ограничитель позиций
Ограничитель задается для API ключа параметром "open_positions_limiter": 64 в файле ключа в папке settings_account. По умолчанию 0 - выключен.
В ограничителе участвуют только боты MRS, у которых position_priority не равен 0.
position_priorityот 1 до 5. 5 - наименьший приоритет, такая позиция закроется первой- Если открытых позиций столько, сколько задано в ограничителе, на парах без позиции снимаются открывающие ордера - новые позиции не открываются
- Если позиций открылось больше лимита (например одновременно), лишние закрываются: сначала с приоритетом 5, потом 4, 3, 2, 1. При равном приоритете - случайная
- Позиции с приоритетом 0 не учитываются и не закрываются ограничителем
В интерфейсе работа ограничителя отображается так: [100 | (4/64)] - 100 ботов на этом API, открыто 4 позиции, лимит 64.
Тот же параметр open_positions_limiter ограничивает и стратегии HiDeep, RedFlag, SmartProfit и ShadowOverlap: когда открытых позиций по ним столько, сколько задано в лимите, боты без позиции не открывают новые сделки. Приоритеты для них не используются.
ColorBox - закрытие по N-ой свече
Закрывающая опция, которая превращает MRS в ColorBox: позиция закрывается по закрытию N-ой свечи после входа. Можно добавить условие на цвет свечи, например закрывать после 2-й зеленой свечи. Настраивается отдельно для long и short. Подробно - в разделе «Закрытие позиции и общие опции».
Бэктест
Протестировать во встроенном бэктестере
Скрипт (PineScript) для тестирования стратегии на исторических данных в тестере стратегий TradingView. Стратегия популярная и вы можете найти множество вариаций с разными названиями.
-
Ссылки:
- Простая версия стратегии с минимальным количеством настроек. Рекомендую начать свое знакомство со стратегией с этого скрипта.
- Скрипт с большим набором параметров которые можно повторить в торговом боте.
- Скрипт с возможностью выставить множество открывающих ордеров (увеличивающих позицию | докупки).
Рекомендации:
(не строгие и их можно нарушать в исследовательских целях)
● Лимитный ордер ограничивает емкость стратегии. На низколиквидных инструментах результат в тестере будет завышен.
● На споте тестируйте только long. Одновременно long и short - для опытных пользователей.
● На фьючерсах у контртрендовой стратегии есть риск ликвидации.
● Типичный таймфрейм - 1ч. Пары альткоин/биткоин или альткоин/альткоин.
Стратегию можно проверить на исторических данных в тестере и запустить в hamster-bot.