Стратегия SMA для отмены среднего показателя HYE

Автор:Чао Чжан, Дата: 2023-12-15 16:51:23
Тэги:

img

Обзор

Стратегия HYE Mean Reversion SMA представляет собой среднюю реверсионную торговую стратегию, использующую простые скользящие средние и индекс относительной силы (RSI). Она генерирует сигналы купли-продажи, когда цена отклоняется от скользящей средней на определенный процент, в сочетании с фильтрацией индикатора RSI.

Логика стратегии

Стратегия основывается главным образом на следующих правилах:

  1. Когда 2-периодная простая скользящая средняя падает на 3% ниже 5-периодной простой скользящей средней, считается, что цена отклоняется от средней и генерируется сигнал покупки.

  2. Когда 2-периодная SMA пересекает 5-периодную SMA, считается, что цена возвращается к средней и генерируется сигнал продажи.

  3. В сочетании с экспоненциальной скользящей средней 5-периодного RSI, сигналы покупки генерируются только тогда, когда RSI ниже 30, и сигналы продажи, когда RSI выше 70, чтобы избежать ненужной торговли.

Основная идея заключается в том, чтобы поймать средние возможности реверсии с помощью краткосрочных колебаний цен. Купить, когда цена падает на определенный процент, продать, когда цена возвращается близко к скользящей средней, чтобы получить прибыль. Между тем, индикатор RSI может идентифицировать перекупленные и перепроданные условия, чтобы отфильтровать некоторые шумные торговые сигналы.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Простая внедрение с низкими затратами на мониторинг.

  2. Захватывает краткосрочные средние возможности реверсии с использованием отклонения цен от скользящих средних.

  3. Индикатор RSI может эффективно отфильтровать шум торговли и избежать преследования вершин и убийства долины.

  4. Гибкое регулирование параметров, адаптируемое к различным рыночным условиям.

  5. Поддерживает только длинный, короткий или обоих направлений торговли в соответствии с различными предпочтениями.

Анализ рисков

Существуют также некоторые риски:

  1. Среднее изменение зависит от того, что цена возвращается к скользящей средней.

  2. Неправильное настройка параметров может привести к чрезмерной торговле или упущенным возможностям.

  3. Показатели высоко коррелируют с рынком.

Контрмеры:

  1. Установите правильную стоп-лосс, чтобы контролировать потерю на одной сделке.

  2. Постепенно оптимизировать параметры и оценивать риск корректированной доходности.

  3. В сочетании с фондовым индексом для повышения адаптивности.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Испытайте различные комбинации скользящих средних для поиска оптимальных параметров.

  2. Попробуйте включить другие показатели, чтобы определить тенденции и улучшить процент побед.

  3. Добавьте механизмы остановки потери, чтобы уменьшить максимальное использование.

  4. Оптимизировать правила входа и выхода для улучшения показателей прибыли.

  5. Принять методы машинного обучения для создания адаптивных параметров.

Заключение

Стратегия 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")



Больше