
Эта стратегия использует принцип перекупа и перепродажи показателя RSI, в сочетании с многоциклическим RSI для суждения и осуществления межциклических операций. Стратегия определяет сигнал перекупа и перепродажи в соответствии с циклической установкой RSI и использует движущееся среднее RSI для фильтрации, чтобы избежать ошибочного сигнала.
Эта стратегия создает торговый сигнал, основанный на оценке RSI как перекупленного и перепроданного. RSI представляет собой относительно сильный индекс, формулу его расчета: RSI = 100 - (100 / (1 + RS), где RS равен соотношению среднего задержки и среднего задержки за определенный период времени.
Эта стратегия устанавливает один высокий параметр суперкомпра и один низкий параметр супервента, который определяется как перекуп, когда RSI выше суперкомпра, и как перепродажа, когда RSI ниже супервенты. В стратегии по умолчанию суперкомпра составляет 70, а супервента - 30.
Для создания сигналов покупки и продажи, стратегия использует фильтрацию на движущихся средних показателей RSI. Когда RSI пересекает свою движущуюся среднюю, создается сигнал покупки Es_compra, а когда она пересекает свою движущуюся среднюю, создается сигнал продажи Es_venta.
После получения сигнала покупки и продажи, стратегия открывает позицию для многообещающей или пустой торговли. Кроме того, стратегия также устанавливает стоп-лосс и стоп-стрит, “%”, для предотвращения расширения убытков и блокирования прибыли.
Используйте RSI, чтобы оценить ситуацию сверхпокупа и перепродажи, и избегайте преследования.
Используйте скользящие средние RSI для фильтрации, чтобы избежать ложных сигналов.
В сочетании с многоциклической установкой RSI, более стабильный торговый сигнал.
Установка механизма сдерживания ущерба, эффективное управление рисками.
Логика стратегии проста и понятна, легко понять и изменить.
Настраиваемые параметры для различных сортов и периодов.
RSI задерживается и может упустить наиболее подходящий момент для обратного движения.
Движущаяся средняя задерживает торговые сигналы и не позволяет вовремя уловить обратный тренд.
Фиксированные параметры перекупа и перепродажи не достаточно гибки, и их необходимо корректировать в зависимости от цикла и разновидности.
Неправильно установленный стоп-стрит может привести к убыткам или упущенной прибыли.
Позиции с многочисленными свободными позициями имеют только один владелец и не позволяют использовать свои средства для дифференцированной торговли.
В сочетании с другими показателями, такими как MACD, KD и т. Д.
Применение адаптивных движущихся средних для отслеживания тенденций.
Настройка параметров динамического перекупа и перепродажи в зависимости от степени волатильности рынка.
Оптимизация алгоритмов остановки убытков, таких как отслеживание остановки убытков и т. Д.
Добавление механизма управления позициями, динамическая корректировка позиций в зависимости от размера капитала.
Добавление фильтров на тренды, чтобы избежать частых торгов на рынках, которые колеблются.
Оптимизирующие параметры для выбора оптимальной комбинации.
Эта стратегия основана на 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