이 전략은 이중 이동 평균에 기반한 지능적인 트렌드 추적 시스템으로, 기울기 지표와 함께 최고와 최하위의 이동 평균을 계산하여 시장 트렌드를 식별하며, 위험 관리를 위한 동적인 수익 취득 및 스톱-러스 메커니즘과 결합합니다. 전략의 핵심은 슬림 임계로 잘못된 신호를 필터링하는 데 있으며, 수익을 잠금하기 위해 트레일링 스톱을 사용하여 트렌드 추적 및 위험 통제의 유기적인 조합을 달성합니다.
이 전략은 두 개의 이동 평균 시스템을 핵심 거래 논리로 사용하며, 높은 가격과 낮은 가격 시리즈 모두에서 이동 평균을 계산합니다. 가격이 상당히 긍정적 인 기울기와 함께 상위 평균보다 높을 때 긴 신호가 생성되며, 가격이 상당히 부정적인 기울기와 함께 하위 평균보다 낮을 때 짧은 신호가 발생합니다. 오스실레이션 시장에서 빈번한 거래를 피하기 위해 전략에는 기울기 임계 메커니즘이 포함되어 있으며, 이동 평균 기울기 변화가 설정된 임계값을 초과 할 때만 트렌드 유효성을 확인합니다. 리스크 관리를 위해 전략은 초기 공격적인 수익 목표를 사용하여 역동적인 수익 취득 및 손실 중지 메커니즘을 구현하며 획득 된 이익을 보호하기 위해 후속 스톱을 설정합니다.
이 전략은 트렌드 추종과 리스크 관리를 유기적으로 결합한 양적 거래 전략이다. 이중 이동 평균 시스템과 기울기 임계의 협력을 통해 전략은 시장 추세를 정확하게 파악할 수 있으며, 동적인 수익 취득 및 스톱 로스 메커니즘은 포괄적인 리스크 통제를 제공합니다. 매개 변수 선택과 시장 적응력 개선의 여지가 있지만 명확한 논리적 틀과 유연한 매개 변수 시스템은 후속 최적화에 좋은 기반을 제공합니다. 라이브 트레이딩에서 전략을 적용 할 때 거래자가 특정 시장 특성과 자신의 위험 선호도에 따라 다양한 매개 변수를 철저히 백테스트하고 최적화하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Buy/Sell Strategy with Significant Slope", overlay=true) // Parametri configurabili smaPeriod = input.int(20, title="SMA Period", minval=1) initialTPPercent = input.float(5.0, title="Initial Take Profit (%)", minval=0.1) // Take Profit iniziale (ambizioso) trailingSLPercent = input.float(1.0, title="Trailing Stop Loss (%)", minval=0.1) // Percentuale di trailing SL slopeThreshold = input.float(0.05, title="Slope Threshold (%)", minval=0.01) // Soglia minima di pendenza significativa // SMA calcolate su HIGH e LOW smaHigh = ta.sma(high, smaPeriod) smaLow = ta.sma(low, smaPeriod) // Funzioni per pendenza significativa isSignificantSlope(sma, threshold) => math.abs(sma - sma[5]) / sma[5] > threshold / 100 slopePositive(sma) => sma > sma[1] and isSignificantSlope(sma, slopeThreshold) slopeNegative(sma) => sma < sma[1] and isSignificantSlope(sma, slopeThreshold) // Condizioni di BUY e SELL buyCondition = close > smaHigh and low < smaHigh and close[1] < smaHigh and slopePositive(smaHigh) sellCondition = close < smaLow and high > smaLow and close[1] > smaLow and slopeNegative(smaLow) // Plot delle SMA plot(smaHigh, color=color.green, linewidth=2, title="SMA 20 High") plot(smaLow, color=color.red, linewidth=2, title="SMA 20 Low") // Gestione TP/SL dinamici longInitialTP = strategy.position_avg_price * (1 + initialTPPercent / 100) shortInitialTP = strategy.position_avg_price * (1 - initialTPPercent / 100) // Trailing SL dinamico longTrailingSL = close * (1 - trailingSLPercent / 100) shortTrailingSL = close * (1 + trailingSLPercent / 100) // Chiusura di posizioni attive su segnali opposti if strategy.position_size > 0 and sellCondition strategy.close("Buy", comment="Close Long on Sell Signal") if strategy.position_size < 0 and buyCondition strategy.close("Sell", comment="Close Short on Buy Signal") // Apertura di nuove posizioni con TP iniziale e Trailing SL if buyCondition strategy.entry("Buy", strategy.long, comment="Open Long") strategy.exit("Long TP/Trailing SL", from_entry="Buy", limit=longInitialTP, stop=longTrailingSL) if sellCondition strategy.entry("Sell", strategy.short, comment="Open Short") strategy.exit("Short TP/Trailing SL", from_entry="Sell", limit=shortInitialTP, stop=shortTrailingSL)