Стратегия показателя относительного объема

Автор:Чао Чжан, Дата: 2023-12-20 15:12:56
Тэги:

img

Обзор стратегии

Это количественная стратегия торговли, основанная на индексе относительной силы (RSI) и индикаторе относительного объема.

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

Стратегия включает в себя два показателя: индекс относительной силы (RSI) и относительный объем (RVOL). RSI оценивает уровни перекупленности / перепродажи. RSI ниже 30 предполагает перепродажу и RSI выше 70 предполагает перекуп. RVOL фиксирует всплески объема по сравнению с недавним средним. Когда RVOL превышает порог, это указывает на сильное давление на покупку / продажу.

Логика стратегии заключается в следующем: идти длинным, когда RSI показывает перекупленность (выше порога) И RVOL стреляет вверх; идти коротким, когда RSI показывает перепроданность (ниже порога) И RVOL стреляет вверх. Выходные сигналы происходят, когда RSI возвращается к нормальному уровню (длинный выход: RSI ниже 69; короткий выход: RSI выше 31).

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

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

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

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

Наибольший риск этой стратегии заключается в возможности дачи RSI ложных сигналов. Когда рынок колеблется, RSI может часто пересекать в / из зон OB / OS и генерировать ложные сигналы. Кроме того, эта стратегия чувствительна к изменениям объема. Инструменты с низкой ликвидностью могут дисконтировать прибыльность.

Для смягчения рисков, параметры RSI могут быть скорректированы, например, увеличение среднего периода или повышение порога для RVOL.

Руководство по оптимизации

Потенциальные оптимизации включают:

  1. Добавление показателей ликвидности для избежания неликвидных инструментов;

  2. Добавление показателей волатильности к торговле только при увеличении волатильности;

  3. Создать механизмы для предотвращения ложных прорывов, например, объем мониторинга;

  4. Сделать стоп-лосс более строгим, чтобы ограничить вывод;

  5. Настройка параметров на основе обратных тестов для поиска оптимальных настроек.

Заключение

Стратегия относительного объема позволяет найти точки резкого роста объема в зонах OB / OS, включив RSI и относительный объем, что делает ее эффективной стратегией улавливания трендов.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
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/
// © gary_trades
//This script is a basic concept to catch breakout moves utilising a spike in relative volume when the RSI is high (for longs) or when the RSI is low (for shorts).
//Drawdown is typically low as it exits out of the trade once the RSI returns back to "normal levels".

//@version=4
strategy(title="Relative Volume & RSI Pop", shorttitle="VOL & RSI Pop", overlay=false, precision=2, margin_long=100, margin_short=100)

//RSI
RSIlength = input(14, title="RSI Period")
RSItop = input(70, title="RSI buy", minval= 69, maxval=100)
RSIbottom = input(35, title="RSI short", minval= 0, maxval=35)
price = close
vrsi = rsi(price, RSIlength)
RSIco = crossover(vrsi, RSItop)
RSIcu = crossunder(vrsi, RSIbottom)
plot(vrsi, "RSI", color=color.purple)
band1 = hline(70, "Upper Band", color=#C0C0C0)
bandm = hline(50, "Middle Band", color=color.new(#C0C0C0, 50))
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=color.purple, transp=90, title="Background")

//RELATIVE VOLUME
RVOLlen = input(14, minval=1, title="RV Period")
av = sma(volume, RVOLlen)
RVOL = volume / av
RVOLthreshold = input(1.5,title="RV Threshold", minval=0.5, maxval=10)

//TRADE TRIGGERS
LongCondition = RSIco and RVOL > RVOLthreshold
CloseLong = vrsi < 69

ShortCondition = RSIcu and RVOL > RVOLthreshold
CloseShort = vrsi > 35

if (LongCondition)
    strategy.entry("Long", strategy.long)
    
strategy.close("Long", when = CloseLong)    

if (ShortCondition)
    strategy.entry("Short", strategy.short)
    
strategy.close("Short", when = CloseShort)   


Больше