Стратегия отслеживания тренда на основе индикатора RSI и индикатора ZigZag


Дата создания: 2024-02-22 16:15:18 Последнее изменение: 2024-02-22 16:15:18
Копировать: 0 Количество просмотров: 944
1
Подписаться
1617
Подписчики

Стратегия отслеживания тренда на основе индикатора RSI и индикатора ZigZag

Обзор

Эта стратегия называется 15-минутная стратегия отслеживания тенденций криптовалют на основе показателей RSI и ZigZag. Эта стратегия разработана специально для криптовалютных рынков (например, ETHUSD/T, BTCUSD/T и т. Д.) с 15-минутным периодом времени.

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

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

Что касается RSI, то мы установили линию сверхпокупа на 75, линию сверхпродажи на 25. Когда линия RSI пересекает 25 снизу вверх, считается, что курс переходит от перепродажи к позиции, а когда линия RSI пересекает 75 снизу вверх, считается, что курс переходит от позиции к позиции.

Что касается индикатора ZigZag, то мы установили пороговую величину колебания цены на уровне 1%. Когда наблюдается существенное колебание цены более чем на 1%, индикатор ZigZag подает сигнал. В сочетании с оценкой тренда мы можем увидеть точку перехода в ценовой тенденции.

Когда двойной индикатор посылает сигнал, если ранее направление тренда было положительным, а теперь RSI перекупает и ZigZag показывает пробег, то мы можем определить, что это пик, и тогда мы можем рассмотреть пробег; наоборот, если ранее направление тренда было понижательным, а теперь RSI перепродает и ZigZag показывает пробег, то мы можем определить, что это дно, и тогда мы можем рассмотреть больше. С помощью такой логики мы можем провести операцию по отслеживанию тренда.

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

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

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

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

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

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

Направление оптимизации стратегии

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Добавление портфеля индикаторов, введение большего количества индикаторов для комплексного суждения, таких как KDJ, MACD и т. д., может дополнительно фильтровать сигнал.

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

  3. Добавление адаптивного механизма стоп-ложа, позволяющего динамически корректировать стоп-дистанцию в зависимости от колебаний рынка.

  4. Оптимизация управления позициями, например, распределение средств в зависимости от тенденций.

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
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/
// © SoftKill21
//@version=4
strategy("Crypto ZigZag RSI strategy 15min",overlay=true)
length =input(5, title="RSI Length")
overSold = input(25)
overBought= input(75)

p =close

vrsi = rsi(p, length)
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

//
ZZPercent = input(1, title="Minimum % Change", type=input.float)
r1Level=entry_value
s1Level=entry_value1
trend = 0
trend := na(trend[1]) ? 1 : trend[1]
LL = 0.0
LL := na(LL[1]) ? s1Level : LL[1]
HH = 0.0
HH := na(HH[1]) ?r1Level : HH[1]

Pi = ZZPercent * 0.01
zigzag = float(na)

if trend > 0  
    if r1Level >= HH  
        HH := r1Level
        HH
    else
        if s1Level < HH * (1 - Pi)
            zigzag :=r1Level[1]
            trend := -1
            LL := s1Level
            LL
else
   
    if s1Level <= LL 
        LL := s1Level
        LL
    else
        if r1Level > LL * (1 + Pi)
            zigzag := s1Level[1]
            trend := 1
            HH := s1Level
            HH


shortc=crossunder(trend,0)
longc=crossover(trend,0)


longa =input(true)
shorta=input(false)

if(longa)
    strategy.entry("long",1,when=longc)
    strategy.close("long",when=shortc)
if(shorta)
    strategy.entry("short",0,when=shortc)
    strategy.close("long",when=longc)