Стратегия кросс-циклической торговли RSI


Дата создания: 2023-10-25 11:20:59 Последнее изменение: 2023-10-25 11:20:59
Копировать: 0 Количество просмотров: 758
1
Подписаться
1617
Подписчики

Стратегия кросс-циклической торговли RSI

Обзор

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

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

Эта стратегия создает торговый сигнал, основанный на оценке RSI как перекупленного и перепроданного. RSI представляет собой относительно сильный индекс, формулу его расчета: RSI = 100 - (100 / (1 + RS), где RS равен соотношению среднего задержки и среднего задержки за определенный период времени.

Эта стратегия устанавливает один высокий параметр суперкомпра и один низкий параметр супервента, который определяется как перекуп, когда RSI выше суперкомпра, и как перепродажа, когда RSI ниже супервенты. В стратегии по умолчанию суперкомпра составляет 70, а супервента - 30.

Для создания сигналов покупки и продажи, стратегия использует фильтрацию на движущихся средних показателей RSI. Когда RSI пересекает свою движущуюся среднюю, создается сигнал покупки Es_compra, а когда она пересекает свою движущуюся среднюю, создается сигнал продажи Es_venta.

После получения сигнала покупки и продажи, стратегия открывает позицию для многообещающей или пустой торговли. Кроме того, стратегия также устанавливает стоп-лосс и стоп-стрит, “%”, для предотвращения расширения убытков и блокирования прибыли.

Стратегические преимущества

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

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

  3. В сочетании с многоциклической установкой RSI, более стабильный торговый сигнал.

  4. Установка механизма сдерживания ущерба, эффективное управление рисками.

  5. Логика стратегии проста и понятна, легко понять и изменить.

  6. Настраиваемые параметры для различных сортов и периодов.

Стратегический риск

  1. RSI задерживается и может упустить наиболее подходящий момент для обратного движения.

  2. Движущаяся средняя задерживает торговые сигналы и не позволяет вовремя уловить обратный тренд.

  3. Фиксированные параметры перекупа и перепродажи не достаточно гибки, и их необходимо корректировать в зависимости от цикла и разновидности.

  4. Неправильно установленный стоп-стрит может привести к убыткам или упущенной прибыли.

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

Оптимизация стратегии

  1. В сочетании с другими показателями, такими как MACD, KD и т. Д.

  2. Применение адаптивных движущихся средних для отслеживания тенденций.

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

  4. Оптимизация алгоритмов остановки убытков, таких как отслеживание остановки убытков и т. Д.

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

  6. Добавление фильтров на тренды, чтобы избежать частых торгов на рынках, которые колеблются.

  7. Оптимизирующие параметры для выбора оптимальной комбинации.

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

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

Исходный код стратегии
/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-30 23:59:59
period: 3m
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/
// © samuelkanneman

//@version=4
strategy("RSI KANNEMAN")
//////Entrada///////
i_startTime         = input(title="Start Date Filter", defval=timestamp("01 Nov 2020 13:30 +0000"), type=input.time, tooltip="Date & time to begin trading from")
i_endTime           = input(title="End Date Filter", defval=timestamp("1 Nov 2022 19:30 +0000"), type=input.time, tooltip="Date & time to stop trading")
sobrecompra= input(70, title="Sobre Compra", type=input.integer ,minval=50, maxval=100 )
sobreventa= input(30, title="Sobre Venta", type=input.integer ,minval=0, maxval=50 )
l1=hline(sobrecompra)
l2=hline(sobreventa, color=color.purple)
periodos= input(14, title="Periodos", type=input.integer ,minval=1, maxval=50 )
periodos_media= input(14, title="Logintud media movil", type=input.integer ,minval=1, maxval=200 )
var SL =0.0
var TP=0.0
StopLoss = input(2.0, title="SL %", step=0.2)
TakeProfit = input(5.0, title="TP %", step=0.2)

//////Proceso///////

mi_rsi=rsi(close,periodos)
mm_rsi=sma(mi_rsi,periodos_media)

Es_compra= crossover(mm_rsi,sobreventa)
Es_venta= crossunder(mm_rsi,sobrecompra)

comprado= strategy.position_size > 0
vendido = strategy.position_size < 0

//time to test 
dateFilter = true
//timePeriod = time >= timestamp(syminfo.timezone, 2020, 11, 1, 0, 0)


// long

if (not comprado and Es_compra and dateFilter  )
    // realizar long
    cantidad = strategy.equity/hlc3
    strategy.entry ("compra", strategy.long , cantidad)
    SL := close*(1-(StopLoss/100))
    TP := close*(1+(TakeProfit/100))
    
if close >= TP
    strategy.close ("compra" , comment="Salto TP")  

if (comprado and Es_venta  )
    strategy.close ("compra" , comment="Sobre Venta")

if close <= SL
    strategy.close ("compra" , comment="Salto SL")
    
// short

if (not vendido and Es_venta and dateFilter  )
    // realizar short
    cantidad = strategy.equity/hlc3
    strategy.entry ("venta", strategy.short , cantidad)
    SL := close*(1+(StopLoss/100))
    TP := close*(1-(TakeProfit/100))
    
if close <= TP
    strategy.close ("venta" , comment="Salto TP")  

if (vendido and Es_compra  )
    strategy.close ("venta" , comment="Sobre Compra")

if close >= SL
    strategy.close ("venta" , comment="Salto SL")

    

    
    
   ///////Salida//////
fill(l1,l2)
plot(mi_rsi)
plot(mm_rsi, color=color.yellow)

bgcolor(Es_compra ? color.blue : na , transp=0)
bgcolor(Es_venta ? color.red : na , transp=0)


// 1d 70 22 5 4 3 15    6 meses
//1h 70 20 6 4 5 7      1 mese
//15m 70 20 5 4 4 7      1 semana