Стратегия тренда RSI Аллигатор


Дата создания: 2024-01-29 14:40:07 Последнее изменение: 2024-01-29 14:40:07
Копировать: 0 Количество просмотров: 770
1
Подписаться
1617
Подписчики

Стратегия тренда RSI Аллигатор

Обзор

Стратегия рыбалки RSI - это комбинация рыбацких индикаторов, основанных на RSI, используемых для определения входа и выхода из тренда. Она использует три средних значения - верхний конус рыбки, зубной и губной линии, и строится на RSI с различными периодами.

Стратегический принцип

RSI использует индикатор RSI для построения трёх скользящих средних для индикатора RSI. Конкретные параметры следующие:

  • Верхняя линия: линия RSI с 5 циклами
  • Зубная линия: линия RSI с 13 циклами
  • Липовая линия: линия RSI 34 циклов

Входящий сигнал имеет следующую логику:

Многоголовый сигнал: делать больше, когда губная линия проходит через зубную линию, а верхняя нить выше зубной линии.

Пустой сигнал: пустота, когда губная линия проходит под зубной линией, а верхняя линия находится ниже зубной линии.

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

  • Стоп-лосс установлен на 10% от цены входа
  • Стойка установлена на 90% от цены входа

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

RSI имеет следующие преимущества:

  1. Использование индикатора рыбалки для определения тенденций позволяет эффективно отфильтровывать рыночный шум и блокировать основные тенденции.
  2. В сочетании с многоциклическим RSI, предотвращение ложных прорывов, повышение надежности сигнала
  3. Установление разумных условий стоп-стоп для стабильной работы стратегии
  4. Ясная и понятная стратегия, простая настройка параметров, простая работа на дискете
  5. Возможность одновременного выполнения множественного дисконтирования с учетом тенденций в обоих направлениях, гибкость

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

Также есть риск, что RSI будет ловить тренды:

  1. На перекрестке зубной линии и губной линии может возникнуть ложный прорыв, что приводит к ненужным потерям. Можно соответствующим образом изменить параметры цикла, чтобы снизить вероятность ложного прорыва.

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

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

  4. При частом переключении в многопространственном режиме повышается давление на транзакционные расходы. Условия доступа могут быть соответствующим образом ослаблены, чтобы уменьшить ненужные повторения.

Направление оптимизации

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

  1. Оптимизировать параметры настройки, адаптировать параметры циклов, найти оптимальную комбинацию параметров

  2. Оптимизация входящих условных логик, таких как фильтрационные сигналы, такие как показатели объема новых сделок

  3. Оптимизация стратегии стоп-стоп, чтобы она была более адаптирована к ситуации и уровню гарантий

  4. Повышение механизмов реагирования на внезапные инциденты и предотвращение разоблачения аномальных явлений

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=3
// RSI Alligator
// Forked from Author: Reza Akhavan
// Updated by Khalid Salomão

strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3)

// === TA LOGIC ===
overBought = input(70, minval=0, maxval=100, title="Over bought")
overSold = input(30, minval=0, maxval=100, title="Over sold")
jawPeriods = input(5, minval=1, title="Jaw Periods")
jawOffset = input(0, minval=0, title="Jaw Offset")
teethPeriods = input(13, minval=1, title="Teeth Periods")
teethOffset = input(0, minval=0, title="Teeth Offset")
lipsPeriods = input(34, minval=1, title="Lips Periods")
lipsOffset = input(0, minval=0, title="Lips Offset")

jaws = rsi(close, jawPeriods)
teeth = rsi(close, teethPeriods)
lips = rsi(close, lipsPeriods)
plot(jaws, color=green, offset=jawOffset, title="Jaw")
plot(teeth, color=red, offset=teethOffset, title="Teeth")
plot(lips, color=blue, offset=lipsOffset, title="Lips")

//
// === Signal logic ===
// 
LONG_SIGNAL_BOOLEAN  = crossover(teeth, lips) and jaws > teeth
SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth

// === INPUT BACKTEST DATE RANGE ===
strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"])

FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => true

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy()  => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    if (strategyType == "Short Only")
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (strategyType == "Long Only")
        strategy.close("Long")
    else
        strategy.entry("Short", strategy.short, comment="Short")
        

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(90, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)