Торговая стратегия VSTOP и RSI

Автор:Чао Чжан, Дата: 2023-10-09 15:48:46
Тэги:

Обзор

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

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

  1. Вычислите значение индикатора RSI и установите линию перекупленности и перепродажи.

  2. Вычислить VSTOP, который представляет собой линию стоп-лосса, основанную на диапазоне колебаний цен.

    • Вычислить индикатор ATR и установить множитель ATR

    • Запишите максимальную и минимальную цену

    • Согласно состоянию восходящего тренда is_uptrend, вычислите текущую линию стоп-лосса: stop = is_uptrend? max - mult * ATR : min + mult * ATR

    • Обновление линии остановки потери: vstop1 = is_uptrend? max(vstop_prev, stop) : min(vstop_prev, stop)

    • Когда произойдет обратный тренд, сбросить линию остановки потери вступить

  3. Когда RSI перепродан, если цена превышает VSTOP, перейдите на короткий; когда RSI перекуплен, перейдите на длинный.

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

  • Объединение индикатора тенденции и индикатора перекупленности/перепроданности помогает уловить возможности для изменения тенденции на развивающихся рынках.

  • Использование VSTOP для установки стоп-лосса эффективно контролирует риски.

  • Гибкие параметры RSI могут быть оптимизированы для различных продуктов.

  • VSTOP систематически отслеживает остановку без ручного вмешательства.

Риски и решения

  • Если параметр ATR установлен слишком большим или слишком маленьким, линия остановки потерь будет бессмысленной.

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

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

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

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

  • Оптимизировать параметры на основе результатов обратных испытаний для поиска оптимальной комбинации параметров.

  • Исследование способов динамической корректировки коэффициента ATR для адаптации к различным рыночным условиям.

  • Изучите возможность отключения стратегии в периоды высокого риска.

Заключение

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


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Vstop and RSI", overlay=true)

//RSI Section
length = input(2, "RSI Period") 
overSold = input(30, "Oversold Level") 
overBought = input(70, "Overbought Level") 
price = close 
vrsi = rsi (price, length) 

//VSTOP Section
vlength = input(2, "Vstop Length") 
mult = input(2, "Vstop Mult") 
atr_ = atr(vlength) 

max1=0.0 
min1=0.0 
is_uptrend_prev = false 
stop=0.0 
vstop_prev=0.0 
vstop1=0.0 
is_uptrend=false 
is_trend_changed=false 
max_ = 0.0 
min_ = 0.0 
vstop=0.0 

max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)


is_uptrend_prev := nz(is_uptrend[1], true)

stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2)

if vrsi > overBought
    strategy.entry("Buy", strategy.long, comment="Buy")
     
if vrsi < overSold and vstop > price
    strategy.entry("Sell", strategy.short, comment="Sell")

Больше