Эта стратегия называется криптовалютная 15-минутная стратегия отслеживания тренда, основанная на индикаторе RSI и индикаторе ZigZag. Эта стратегия предназначена для криптовалютных рынков (например, ETHUSD/T, BTCUSD/T и т. д.) на 15-минутных циклах. Стратегия определяет направление тренда путем сочетания индикатора RSI с индикатором ZigZag для определения ценового скачка.
Что касается RSI, то мы устанавливаем линию покупки на 75 и линию продажи на 25; когда линия RSI переходит от 25 вниз вверх, считается, что рынок переходит от продажи к продаже, когда линия RSI переходит от 75 вверх вниз, считается, что рынок переходит от продажи к продаже.
В случае с индикатором ЗигЗага мы устанавливаем порог длины скачка цены на 1%. Когда цена сильно скачивается более чем на 1%, индикатор ЗигЗага сигнализирует. В сочетании с определением тренда мы можем увидеть поворотный момент в ценовом тренде.
В момент сигнализации обоих индикаторов, если предыдущая тенденция была положительной, а сейчас RSI перекупает, а ZigZag показывает прорыв, то мы можем определить, что рынок достиг максимума, и тогда мы можем рассмотреть возможность обрыва; наоборот, если предыдущая тенденция была нисходящей, а теперь RSI перепродает, и ZigZag показывает прорыв, то мы можем определить, что рынок достиг максимума, и тогда мы можем рассмотреть возможность обрыва. С помощью такой логики мы можем провести операции по отслеживанию тренда.
Наибольшее преимущество этой стратегии заключается в том, что в сочетании с двумя показателями суждения можно эффективно фильтровать ложные сигналы, повышая качество сигнала.
Еще одним преимуществом является гибкость настройки параметров. Параметры RSI и ZigZag в этой стратегии являются индивидуальными, и мы можем корректировать параметры в соответствии с особенностями разных рынков для достижения оптимального эффекта. Это дает стратегию большую гибкость.
Чтобы снизить риск, мы можем должным образом сократить время хранения позиций, своевременно остановить убытки. В то же время, оптимизация параметровых настроек очень важна и требует полного учета рыночных особенностей.
Эта стратегия может быть оптимизирована в следующих аспектах:
Внедрение алгоритмов машинного обучения, которые автоматически оптимизируют параметры с помощью технологий искусственного интеллекта, чтобы адаптироваться к изменениям на рынке.
Добавлен адаптивный механизм остановки, позволяющий динамически регулировать расстояние остановки в зависимости от величины колебаний рынка.
Оптимизировать управление позициями, например, путем распределения капитала в зависимости от тренда.
Установка резервной политики и автоматическое переключение на необычные рынки.
В целом эта стратегия является типичной стратегией отслеживания трендов, основной идеей которой является сочетание индикаторов 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)