Стратегия HYE Mean Reversion SMA представляет собой среднюю реверсионную торговую стратегию, использующую простые скользящие средние и индекс относительной силы (RSI). Она генерирует сигналы купли-продажи, когда цена отклоняется от скользящей средней на определенный процент, в сочетании с фильтрацией индикатора RSI.
Стратегия основывается главным образом на следующих правилах:
Когда 2-периодная простая скользящая средняя падает на 3% ниже 5-периодной простой скользящей средней, считается, что цена отклоняется от средней и генерируется сигнал покупки.
Когда 2-периодная SMA пересекает 5-периодную SMA, считается, что цена возвращается к средней и генерируется сигнал продажи.
В сочетании с экспоненциальной скользящей средней 5-периодного RSI, сигналы покупки генерируются только тогда, когда RSI ниже 30, и сигналы продажи, когда RSI выше 70, чтобы избежать ненужной торговли.
Основная идея заключается в том, чтобы поймать средние возможности реверсии с помощью краткосрочных колебаний цен. Купить, когда цена падает на определенный процент, продать, когда цена возвращается близко к скользящей средней, чтобы получить прибыль. Между тем, индикатор RSI может идентифицировать перекупленные и перепроданные условия, чтобы отфильтровать некоторые шумные торговые сигналы.
Стратегия имеет следующие преимущества:
Простая внедрение с низкими затратами на мониторинг.
Захватывает краткосрочные средние возможности реверсии с использованием отклонения цен от скользящих средних.
Индикатор RSI может эффективно отфильтровать шум торговли и избежать преследования вершин и убийства долины.
Гибкое регулирование параметров, адаптируемое к различным рыночным условиям.
Поддерживает только длинный, короткий или обоих направлений торговли в соответствии с различными предпочтениями.
Существуют также некоторые риски:
Среднее изменение зависит от того, что цена возвращается к скользящей средней.
Неправильное настройка параметров может привести к чрезмерной торговле или упущенным возможностям.
Показатели высоко коррелируют с рынком.
Контрмеры:
Установите правильную стоп-лосс, чтобы контролировать потерю на одной сделке.
Постепенно оптимизировать параметры и оценивать риск корректированной доходности.
В сочетании с фондовым индексом для повышения адаптивности.
Стратегия может быть оптимизирована в следующих аспектах:
Испытайте различные комбинации скользящих средних для поиска оптимальных параметров.
Попробуйте включить другие показатели, чтобы определить тенденции и улучшить процент побед.
Добавьте механизмы остановки потери, чтобы уменьшить максимальное использование.
Оптимизировать правила входа и выхода для улучшения показателей прибыли.
Принять методы машинного обучения для создания адаптивных параметров.
Стратегия HYE Mean Reversion SMA - это простая и практичная краткосрочная стратегия реверсии среднего значения. Она использует отклонение цены от скользящих средних для генерации торговых сигналов, фильтруя шум с помощью индикатора RSI. Она продемонстрировала хорошие результаты бэкстеста. Стратегия легко реализуется с регулируемыми параметрами, адаптирующимися к различным рыночным условиям.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 strategy("HYE Mean Reversion SMA [Strategy]", overlay = true ) //Strategy inputs source = input(title = "Source", defval = close) tradeDirection = input(title="Trade Direction", type=input.string, options=["Long Only", "Short Only", "Both"], defval="Long Only") smallMAPeriod = input(title = "Small Moving Average", defval = 2) bigMAPeriod = input(title = "Big Moving Average", defval = 5) percentBelowToBuy = input(title = "Percent below to buy %", defval = 3) percentAboveToSell = input(title = "Percent above to sell %", defval = 3) rsiPeriod = input(title = "Rsi Period", defval = 2) rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30) rsiLevelforSell = input(title = "Minimum Rsi Level for Sell", defval = 70) longOK = (tradeDirection == "Long Only") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short Only") or (tradeDirection == "Both") // Make input options that configure backtest date range startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100) endDate = input(title="End Date", type=input.integer, defval=31, minval=1, maxval=31) endMonth = input(title="End Month", type=input.integer, defval=12, minval=1, maxval=12) endYear = input(title="End Year", type=input.integer, defval=2021, minval=1800, maxval=2100) inDateRange = true //Strategy calculation rsiValue = rsi(source, rsiPeriod) rsiEMA = ema(rsiValue, 5) smallMA = sma(source, smallMAPeriod) bigMA = sma(source, bigMAPeriod) buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0] sellMA = ((100 + percentAboveToSell) / 100) * sma(source, bigMAPeriod)[0] if(crossunder(smallMA, buyMA) and rsiEMA < rsiLevelforBuy and inDateRange and longOK) strategy.entry("BUY", strategy.long) if(crossover(smallMA, bigMA) or not inDateRange) strategy.close("BUY") if(crossover(smallMA, sellMA) and rsiEMA > rsiLevelforSell and inDateRange and shortOK) strategy.entry("SELL", strategy.short) if(crossunder(smallMA, bigMA) or not inDateRange) strategy.close("SELL")