Стратегия торговли с отклонением от RSI

Автор:Чао Чжан, Дата: 2023-11-14 16:49:02
Тэги:

img

Обзор

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

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

Стратегия основана на следующей логике:

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

  2. Когда RSI входит в зону перекупленности (обычно рассматривается как RSI выше 70), это указывает на сильный подъемный импульс. Будет больше трейдеров, долгое время удерживающих бычьи позиции, и пространство для продолжения восхода ограничено. Цена может перейти вниз, чтобы исправить состояние перекупленности.

  3. Когда RSI входит в зону перепроданности (обычно ниже 30), это указывает на сильный импульс к снижению. Будет больше трейдеров, держащих медвежие позиции, и пространство для продолжения снижения ограничено. Цена может перевернуться вверх, чтобы исправить состояние перепроданности.

  4. Таким образом, мы можем установить порог перекупления RSI на 90 и порог перепродажи на 10.

В частности, логика стратегии заключается:

  1. При расчете значения индикатора RSI, используя ценовую базу RSI в качестве источника, длительность которого составляет 2 периода.

  2. Когда RSI переходит выше 90, это означает, что вы входите в зону перекупленности, идите коротко.

  3. Установите стоп-лосс для каждой сделки, длинный стоп при самой низкой цене, короткий стоп при самой высокой цене.

  4. Если RSI продолжается в более экстремальных уровнях перекупленности / перепроданности, скорректируйте последующую остановку, чтобы дать больше места.

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

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

Преимущества

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

  1. Использование RSI для выявления условий перекупа / перепродажи может эффективно улавливать точки переворота на рынке.

  2. Стратегии реверсии имеют систематическое преимущество в том, что они продолжают следовать тенденциям.

  3. Механизм стоп-лосса эффективно контролирует убытки на отдельных сделках.

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

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

  6. Настраиваемые параметры RSI могут адаптировать стратегию к различным рынкам.

Риски

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

  1. Как стратегия технического индикатора, эффективность реверсии RSI может иметь предвзятое соответствие кривой. Реальный уровень успешности реверсии торговли может быть ниже результатов обратного теста.

  2. Хотя RSI может идентифицировать условия перекупленности/перепроданности, он не может предсказать точное время переворота.

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

  4. Вероятность того, что цена совершит очередное изменение, прежде чем достигнет прибыли.

  5. Дистанция остановки потери, установленная необоснованно плотно или слишком свободно, может сделать остановки неэффективными.

  6. Торговые комиссии также могут повлиять на прибыльность стратегии.

Усовершенствования

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

  1. Проверьте различные параметры RSI, чтобы найти оптимальные комбинации, такие как длина RSI, пороговые уровни перекупа/перепродажи.

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

  3. Оптимизировать стратегию остановки потерь, например, остановки на основе ATR, расстояния, скорректированные на волатильность.

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

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

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

  7. В сочетании с объемом торговли, рассматривайте сигналы об обратном движении только при увеличении объема.

Заключение

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


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)

//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission  value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size



strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red


plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)


// long = rsi <= 10 
// var float longsl = 0
// var int long_ts_points = 0

// if long
//     longsl:= low
//     long_ts_points := 200
    
// if rsi >= 70
//     long_ts_points := 100
// else if rsi >= 80
//     long_ts_points := 80


// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
//     strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3  and not long)


short = rsi >= 90 
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0

if short
    shortsl:= high
    short_ts_points := 200
    
if rsi <= 30
    short_ts_points := 100
    //stClose :=1
else if rsi <= 20
    short_ts_points := 80 
//else
    //stClose := 0

plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
    strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)


//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3  and not short)










Больше