Эта стратегия основана на индексе относительной силы (RSI) и стандартном отклонении (DEV) волатильности цен. Она определяет точки входа, сравнивая цену с верхними и нижними полосами, используя RSI в качестве вспомогательного индикатора фильтрации. Она генерирует длинные сигналы входа, когда цена превышает нижнюю полосу, и RSI ниже порога перепродажи, и короткие сигналы входа, когда цена превышает верхнюю полосу, и RSI выше порога перекупки. Стратегия закрывает длинные позиции, когда цена превышает нижнюю полосу выхода или RSI превышает порог перепродажи, и закрывает короткие позиции, когда цена превышает верхнюю полосу выхода или RSI падает ниже порога перепродажи. Эта стратегия может динамически регулироваться в соответствии с условиями волатильности рынка, держать позиции во время высокой волатильности и количественных потерь во время низкой волатильности.
Эта стратегия сочетает волатильность каналов и индекс относительной силы для принятия решений о входе и выходе на основе колебаний цен при ссылке на индикатор 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")