В процессе загрузки ресурсов... загрузка...

Стратегия торговли DEV со стандартным отклонением на основе индекса относительной силы RSI и простой скользящей средней SMA

Автор:Чао Чжан, Дата: 2024-05-28 10:57:06
Тэги:РСИSMADEV

img

Обзор

Эта стратегия основана на индексе относительной силы (RSI) и стандартном отклонении (DEV) волатильности цен. Она определяет точки входа, сравнивая цену с верхними и нижними полосами, используя RSI в качестве вспомогательного индикатора фильтрации. Она генерирует длинные сигналы входа, когда цена превышает нижнюю полосу, и RSI ниже порога перепродажи, и короткие сигналы входа, когда цена превышает верхнюю полосу, и RSI выше порога перекупки. Стратегия закрывает длинные позиции, когда цена превышает нижнюю полосу выхода или RSI превышает порог перепродажи, и закрывает короткие позиции, когда цена превышает верхнюю полосу выхода или RSI падает ниже порога перепродажи. Эта стратегия может динамически регулироваться в соответствии с условиями волатильности рынка, держать позиции во время высокой волатильности и количественных потерь во время низкой волатильности.

Принцип стратегии

  1. Вычислить простую скользящую среднюю величину (SMA) и стандартное отклонение (DEV) цены за последние периоды должины.
  2. Построение канала волатильности со средней линией SMA, SMA+порогEntryDEV как верхний диапазон и SMA-порогDEV в качестве нижней полосы.
  3. Одновременно вычисляется показатель RSI цены закрытия за последние периоды rsiLength.
  4. Когда цена превышает нижний диапазон, а RSI находится ниже порога перепродажи rsiOversold, генерируется длинный входный сигнал.
  5. Когда цена опускается ниже верхней полосы и RSI превышает порог перекупленности, генерируют короткий сигнал входа.
  6. Построить другой узкий выходный канал с SMA как центральной линией, SMA + порогExitDEV как верхняя полоса и SMA-порогExitDEV в качестве нижней полосы.
  7. При удержании длинной позиции, если цена проходит ниже нижней полосы выхода или RSI превышает порог перекупленности, закрыть длинную позицию.
  8. При проведении короткой позиции, если цена превышает верхнюю полосу выхода или RSI падает ниже порога перепроданности, закрыть короткую позицию.

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

  1. Используя показатели поведения цен и импульса для вспомогательного суждения, он может эффективно отфильтровать ложные сигналы.
  2. Благодаря динамической корректировке ширины канала на основе волатильности стратегия может адаптироваться к различным состояниям рынка.
  3. Устанавливая два набора каналов, он может сократить убытки на ранней стадии изменения цен и контролировать снижение цен, при этом по-прежнему может держать позиции с целью получения прибыли после формирования тенденции.
  4. Логика кода и параметры настройки ясны и легко понять и оптимизировать.

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

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

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

  1. Попробуйте ввести индикаторы оценки тренда, такие как длинносрочные краткосрочные скользящие средние кроссоверы, ADX и т. д., чтобы различать трендовые и колеблющиеся рынки и использовать различные параметры.
  2. Для динамической корректировки ширины канала волатильности следует рассмотреть возможность использования более адаптивных показателей волатильности, таких как ATR.
  3. Прежде чем открыть позицию, выполнить суждение о тренде на движение цены, чтобы определить, находится ли он в явном тренде, чтобы избежать торговли с противоположным трендом.
  4. Используйте генетические алгоритмы, поиск по сетке и другие методы для оптимизации различных комбинаций параметров и поиска лучших параметров.
  5. Подумайте о том, чтобы использовать различные параметры для длинных и коротких позиций для контроля риска.

Резюме

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


/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao

//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)

// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")

// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)

// Média Móvel Simples
sma = ta.sma(price, length)

// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev

// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)

// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought

// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold

// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)

// Estratégia de Trade
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (exitLongCondition)
    strategy.close("Long")

if (exitShortCondition)
    strategy.close("Short")




Связанные

Больше