이 전략은 다른 시장 체제 (승향 또는 하락) 를 식별하기 위해 선형 회귀의 기울기를 사용합니다. 정해진 기간 동안 폐쇄 가격의 선형 회귀 기울기를 계산함으로써 시장 트렌드의 방향과 강도를 측정합니다. 기울기가 특정 임계 이상일 때 시장은 상승으로 간주되며 전략은 긴 위치로 진입합니다. 기울기가 부정적인 임계 이하일 때 시장은 하락으로 간주되며 전략은 짧은 위치로 진입합니다. 가격은 단순 이동 평균 (SMA) 을 넘어서면 전략은 포지션을 닫고 잠재적인 역전 또는 트렌드 변화를 신호합니다.
이 전략의 핵심 원칙은 시장 체제를 식별하기 위해 선형 회귀의 기울기를 사용하는 것입니다. 특정 기간 동안 폐쇄 가격에 선형 회귀를 수행함으로써 가장 적합한 라인을 얻습니다. 이 라인의 기울기는 그 기간 동안 전체 트렌드 방향과 가격의 힘을 반영합니다. 긍정적 인 기울기는 상승 추세를 나타냅니다. 더 큰 기울기는 더 강한 상승 추세를 나타냅니다. 부정적인 기울기는 하락 추세를 나타냅니다. 더 작은 기울기는 더 강한 하락 추세를 나타냅니다. 기울기 문턱을 설정함으로써 전략은 시장이 상승 또는 하락 여부를 결정하고 그에 따른 거래 결정을 내립니다.
선형 회귀 기울기 기반의 동적 시장 체제 식별 전략은 가격의 선형 회귀 기울기를 계산하여 시장 체제를 결정하고 그에 따른 거래 결정을 내립니다. 전략은 명확한 논리, 간단한 계산을 가지고 있으며 주요 시장 추세를 효과적으로 파악 할 수 있습니다. 그러나 불안정한 시장에서 빈번한 거래를 생성 할 수 있으며 매개 변수 선택에 민감합니다. 매개 변수 최적화, 트렌드 필터링, 스톱 로스 및 수익 취득 및 멀티 타임프레임 분석을 통해 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h 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("Minha estratégia", overlay=true, margin_long=100, margin_short=100) // Função para calcular o slope (inclinação) com base na média móvel simples (SMA) slope_length = input(20, title="Slope Length") sma_length = input(50, title="SMA Length") slope_threshold = input.float(0.1, title="Slope Threshold") sma = ta.sma(close, sma_length) // Calculando o slope (inclinação) var float slope = na if (not na(close[slope_length - 1])) slope := (close - close[slope_length]) / slope_length // Identificação dos regimes de mercado com base no slope bullish_market = slope > slope_threshold bearish_market = slope < -slope_threshold // Condições de entrada e saída para mercados bullish e bearish if (bullish_market) strategy.entry("Long", strategy.long) if (bearish_market) strategy.entry("Short", strategy.short) // Saída das posições exit_condition = ta.crossover(close, sma) or ta.crossunder(close, sma) if (exit_condition) strategy.close("Long") strategy.close("Short") // Exibir a inclinação em uma janela separada slope_plot = plot(slope, title="Slope", color=color.blue) hline(0, "Zero Line", color=color.gray)