Краткосрочная стратегия разворотной торговли на основе индикатора RSI


Дата создания: 2023-11-01 16:15:30 Последнее изменение: 2023-11-01 16:15:30
Копировать: 0 Количество просмотров: 745
1
Подписаться
1617
Подписчики

Краткосрочная стратегия разворотной торговли на основе индикатора RSI

Обзор

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

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

  1. Используйте показатель EMA для определения направления текущей тенденции. Когда цена выше средней линии EMA, она определяется как тенденция к росту; когда цена ниже средней линии EMA, она определяется как тенденция к снижению.

  2. RSI используется для определения перекупа и перепродажи. RSI выше 60 - это зона перекупа, а ниже 40 - зона перепродажи.

  3. Сигналы “покупаю” и “продаю” появляются, когда RSI ниже 40 и RSI выше 60.

  4. При выпуске сигнала покупки и продажи, устанавливаются стоп-стоп и стоп-лосс. Стоп-стоп рассчитывается в соответствии с определенной пропорцией к цене открытия позиции; стоп-лосс рассчитывается в соответствии с определенной пропорцией к цене открытия позиции.

  5. При позиции больше 0, устанавливается стоп-ордер; при позиции меньше 0, устанавливается стоп-ордер.

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

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

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

  3. Стратегия установления стоп-стоп-лосс помогает блокировать прибыль и контролировать риски.

  4. Стратегическая торговля логика четкая, понятная, легко понятная и подходит для начинающих.

  5. Стратегия может быть оптимизирована с помощью корректировки циклов EMA, параметров RSI и т. Д., Чтобы адаптироваться к различным видам и торговым условиям.

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

  1. Риск неудачи поворота. Неудача поворота на короткой линии может привести к убыткам.

  2. Неочевидный тренд риска. В условиях колебаний EMA трудно определить четкое направление тренда, что может привести к ошибочному сигналу.

  3. Риск, что сбой будет вызван. Если сбой будет установлен слишком близко, он может быть случайно вызван.

  4. Риск переоптимизации. Переоптимизация для исторических данных может быть неприемлема для реального диска.

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

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

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

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

  3. Оптимизируйте Stop Loss Ratio, найдите оптимальный коэффициент для блокировки прибыли. Stop Loss Ratio не должен быть слишком большим, его можно снять.

  4. Добавление стратегий управления позициями, таких как фиксированные позиции, Мартингель и т.д., для контроля одиночных убытков.

  5. В сочетании с другими показателями, такими как MACD, KD и т. д., повышается точность сигнала │ или оптимизируется для многофакторной модели │

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

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Sarahann999
//@version=5
strategy("RSI Strategy", shorttitle="RSI", overlay= false)

//Inputs
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')
emaSettings = input(100, 'EMA Length')
ema = ta.ema(close,emaSettings)
rsi = ta.rsi(close,14)

//Conditions
uptrend = close > ema
downtrend = close < ema
OB = rsi > 60
OS = rsi < 40
buySignal = uptrend and OS and strategy.position_size == 0
sellSignal = downtrend and OB and strategy.position_size == 0

//Calculate Take Profit Percentage
longProfitPerc = input.float(title="Long Take Profit", group='Take Profit Percentage',
     minval=0.0, step=0.1, defval=1) / 100
shortProfitPerc = input.float(title="Short Take Profit",
     minval=0.0, step=0.1, defval=1) / 100

// Figure out take profit price 1
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Make inputs that set the stop %  1
longStopPerc = input.float(title="Long Stop Loss", group='Stop Percentage',
     minval=0.0, step=0.1, defval=1.5) / 100
shortStopPerc = input.float(title="Short Stop Loss",
     minval=0.0, step=0.1, defval=1.5) / 100

// Figure Out Stop Price
longStopPrice  = strategy.position_avg_price * (1 - longStopPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortStopPerc)

// Submit entry orders
if buySignal and long_entry
    strategy.entry(id="Long", direction=strategy.long, alert_message="Enter Long")
    
if sellSignal and short_entry
    strategy.entry(id="Short", direction=strategy.short, alert_message="Enter Short")
    
//Submit exit orders based on take profit price
if (strategy.position_size > 0)
    strategy.exit(id="Long TP/SL", limit=longExitPrice, stop=longStopPrice, alert_message="Long Exit 1 at {{close}}")
if (strategy.position_size < 0)
    strategy.exit(id="Short TP/SL", limit=shortExitPrice, stop=shortStopPrice, alert_message="Short Exit 1 at {{close}}")
    
//note: for custom alert messages to read, "{{strategy.order.alert_message}}" must be placed into the alert dialogue box when the alert is set.

plot(rsi, color= color.gray)
hline(40, "RSI Lower Band")
hline(60, "RSI Upper Band")