리소스 로딩... 로딩...

시장 감정 및 저항 레벨 최적화 시스템과 결합된 모멘텀 SMA 크로스오버 전략

저자:차오장, 날짜: 2024-11-12 15:10:12
태그:SMAMACDRSI

img

전반적인 설명

이 전략은 이중 단순 이동 평균 (SMA) 시스템, 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지수 (RSI), 저항 수준 분석을 포함한 여러 주요 기술 지표를 결합한 포괄적인 거래 시스템입니다. 핵심 개념은 포지션 관리 최적화를 위해 시장 정서 지표를 통합하면서 다차원 기술 지표를 통해 거래 신호를 확인하는 것입니다. 궁극적으로 승률과 위험 보상 비율을 개선하는 것을 목표로합니다.

전략 원칙

이 전략은 단기 (10일) 및 장기 (30일) 간단한 이동 평균을 주요 신호 시스템으로 사용합니다. 단기 SMA가 장기 SMA를 넘어서면 구매 신호가 생성되며 MACD는 상승 동력을 보여줍니다. 판매 조건은 저항 수준 분석을 통합하여 가격이 지난 20 기간의 가장 높은 지점에 도달하고 MACD가 하향 신호를 표시 할 때 포지션 폐쇄를 유발합니다. 또한 RSI 지표는 포지션 관리를위한 감정 필터로 작용합니다. RSI가 70을 초과하면 손실에 대한 조기 출출, RSI가 30 미만일 때 포지션 수익을 보유합니다.

전략적 장점

  1. 다중 확인 메커니즘: SMA 크로스오버, MACD 트렌드 및 저항 레벨 검증을 통해 신호 신뢰성을 향상시킵니다.
  2. 지능형 포지션 관리: 감정 모니터링과 더 나은 위험 관리를 위해 RSI를 포함합니다.
  3. 강력한 적응력: 전략 매개 변수를 다른 시장 조건에 맞게 조정할 수 있습니다.
  4. 종합적인 위험 관리: 기술 및 감정 기반의 중단을 포함한 여러 가지 중지 손실 메커니즘
  5. 높은 체계화: 주관적 간섭을 줄이는 완전히 체계적인 거래 결정

전략 위험

  1. SMA 시스템은 범위 시장에서 잘못된 신호를 생성 할 수 있습니다.
  2. 기술 지표 에 지나치게 의존 하는 것 은 근본적 인 요인 들 을 무시 할 수 있다
  3. 매개 변수 최적화는 과도한 부착으로 이어질 수 있습니다.
  4. 저항 수준 식별은 빠르게 움직이는 시장에서 늦어질 수 있습니다.
  5. 특정 시장 조건에서 RSI 지표가 효과적이지 않을 수 있습니다.

전략 최적화 방향

  1. 부피 지표를 포함: 트렌드 강도 평가 강화
  2. 동적 매개 변수 조정: 시장 변동성에 따라 SMA 기간과 RSI 임계치를 자동으로 조정합니다.
  3. 트렌드 필터 추가: 트렌드 필터링을 위해 장기 이동 평균을 도입
  4. 저항 레벨 계산을 최적화: 동적 저항 식별 알고리즘을 고려하십시오.
  5. 변동성 지표 포함: 포지션 크기와 스톱 로스 포지션

요약

이 전략은 여러 가지 고전적인 기술 지표를 결합하여 완전한 거래 시스템을 구축합니다. 이 전략의 강점은 다중 신호 확인 메커니즘과 포괄적인 위험 통제 시스템, 시장 조건의 전략 성능에 미치는 영향을 모니터링해야 합니다. 제안된 최적화 방향을 통해 전략의 안정성과 적응력이 더욱 향상 될 수 있습니다. 라이브 거래에서 투자자는 시장 기본에주의를 기울이는 동안 위험 선호도 및 시장 환경에 따라 매개 변수를 조정하는 것이 좋습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAUUSD SMA with MACD & Market Sentiment (Enhanced RR)", overlay=true)

// Input parameters for moving averages
shortSMA_length = input.int(10, title="Short SMA Length", minval=1)
longSMA_length = input.int(30, title="Long SMA Length", minval=1)

// MACD settings
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Lookback period for identifying major resistance (swing highs)
resistance_lookback = input.int(20, title="Resistance Lookback Period", tooltip="Lookback period for identifying major resistance")

// Calculate significant resistance (local swing highs over the lookback period)
major_resistance = ta.highest(close, resistance_lookback)

// Calculate SMAs
shortSMA = ta.sma(close, shortSMA_length)
longSMA = ta.sma(close, longSMA_length)

// RSI for market sentiment
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)
rsi = ta.rsi(close, rsiLength)

// Define buy condition based on SMA and MACD
buyCondition = ta.crossover(shortSMA, longSMA) and macdLine > signalLine

// Define sell condition: only sell if price is at or above the identified major resistance
sellCondition = close >= major_resistance and macdLine < signalLine

// Define sentiment-based exit conditions
closeEarlyCondition = strategy.position_size < 0 and rsi > rsiOverbought  // Close losing trade early if RSI is overbought
holdWinningCondition = strategy.position_size > 0 and rsi < rsiOversold   // Hold winning trade if RSI is oversold

// Execute strategy: Enter long position when buy conditions are met
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Close the position when the sell condition is met (price at resistance)
if (sellCondition and not holdWinningCondition)
    strategy.close("Buy")

// Close losing trades early if sentiment is against us
if (closeEarlyCondition)
    strategy.close("Buy")

// Visual cues for buy and sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Add alert for buy condition
alertcondition(buyCondition, title="Buy Signal Activated", message="Buy signal activated: Short SMA has crossed above Long SMA and MACD is bullish.")

// Add alert for sell condition to notify when price hits major resistance
alertcondition(sellCondition, title="Sell at Major Resistance", message="Sell triggered at major resistance level.")

// Add alert for early close condition (for losing trades)
alertcondition(closeEarlyCondition, title="Close Losing Trade Early", message="Sentiment is against your position, close trade.")

// Add alert for holding winning condition (optional)
alertcondition(holdWinningCondition, title="Hold Winning Trade", message="RSI indicates oversold conditions, holding winning trade.")


관련

더 많은