이 전략은 다양한 시장 상태를 식별하기 위해 선형 회귀 및 변동성 지표를 사용합니다. 구매 또는 판매 조건이 충족되면 전략은 대응하는 긴 또는 짧은 포지션을 설정합니다. 또한 전략은 다양한 시장 환경에 적응하기 위해 시장 조건에 따라 매개 변수 최적화 및 조정을 허용합니다. 전략은 또한 지수 이동 평균 (EMA) 을 추가 지표로 사용하여 거래 신호를 확인합니다.
이 전략은 EMA를 확인 지표로 사용하여 선형 회귀 및 변동성 지표를 사용하여 시장 상태를 식별하여 적응적이고 논리적으로 명확한 거래 전략을 구축합니다. 전략의 장점은 트렌드와 변동성을 결합하면서 매개 변수 최적화를 허용하여 다양한 시장 환경에 적합합니다. 그러나 전략은 매개 변수 선택, 불투명한 시장 및 블랙 스완 이벤트와 같은 위험에 직면하며 실질적인 응용 분야에서 지속적인 최적화 및 개선이 필요합니다. 미래의 개선은 신호 소스를 풍부하게하고 매개 변수 선택을 최적화하고 전략의 안정성과 수익성을 향상시키기 위해 위험 관리 조치를 정비하는 데 초점을 맞출 수 있습니다.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_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("Regime de Mercado com Regressão e Volatilidade Otimizado", overlay=true) // Parâmetros para otimização upperThreshold = input.float(1.0, title="Upper Threshold") lowerThreshold = input.float(-1.0, title="Lower Threshold") length = input.int(50, title="Length", minval=1) // Indicadores de volatilidade atrLength = input.int(14, title="ATR Length") atrMult = input.float(2.0, title="ATR Multiplier") atr = ta.atr(atrLength) volatility = atr * atrMult // Calculando a regressão linear usando função incorporada intercept = ta.linreg(close, length, 0) slope = ta.linreg(close, length, 1) - ta.linreg(close, length, 0) // Sinal de compra e venda buySignal = slope > upperThreshold and close > intercept + volatility sellSignal = slope < lowerThreshold and close < intercept - volatility // Entrando e saindo das posições if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Indicadores adicionais para confirmação emaFastLength = input.int(10, title="EMA Fast Length") emaSlowLength = input.int(50, title="EMA Slow Length") emaFast = ta.ema(close, emaFastLength) emaSlow = ta.ema(close, emaSlowLength) // Confirmando sinais com EMAs if (buySignal and emaFast > emaSlow) strategy.entry("Buy Confirmed", strategy.long) if (sellSignal and emaFast < emaSlow) strategy.entry("Sell Confirmed", strategy.short) // Exibindo informações no gráfico plot(slope, title="Slope", color=color.blue) plot(intercept, title="Intercept", color=color.red) plot(volatility, title="Volatility", color=color.green) hline(upperThreshold, "Upper Threshold", color=color.green, linestyle=hline.style_dotted) hline(lowerThreshold, "Lower Threshold", color=color.red, linestyle=hline.style_dotted)