이 전략은 이중 단순 이동 평균 (SMA) 시스템, 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지수 (RSI), 저항 수준 분석을 포함한 여러 주요 기술 지표를 결합한 포괄적인 거래 시스템입니다. 핵심 개념은 포지션 관리 최적화를 위해 시장 정서 지표를 통합하면서 다차원 기술 지표를 통해 거래 신호를 확인하는 것입니다. 궁극적으로 승률과 위험 보상 비율을 개선하는 것을 목표로합니다.
이 전략은 단기 (10일) 및 장기 (30일) 간단한 이동 평균을 주요 신호 시스템으로 사용합니다. 단기 SMA가 장기 SMA를 넘어서면 구매 신호가 생성되며 MACD는 상승 동력을 보여줍니다. 판매 조건은 저항 수준 분석을 통합하여 가격이 지난 20 기간의 가장 높은 지점에 도달하고 MACD가 하향 신호를 표시 할 때 포지션 폐쇄를 유발합니다. 또한 RSI 지표는 포지션 관리를위한 감정 필터로 작용합니다. RSI가 70을 초과하면 손실에 대한 조기 출출, RSI가 30 미만일 때 포지션 수익을 보유합니다.
이 전략은 여러 가지 고전적인 기술 지표를 결합하여 완전한 거래 시스템을 구축합니다. 이 전략의 강점은 다중 신호 확인 메커니즘과 포괄적인 위험 통제 시스템, 시장 조건의 전략 성능에 미치는 영향을 모니터링해야 합니다. 제안된 최적화 방향을 통해 전략의 안정성과 적응력이 더욱 향상 될 수 있습니다. 라이브 거래에서 투자자는 시장 기본에주의를 기울이는 동안 위험 선호도 및 시장 환경에 따라 매개 변수를 조정하는 것이 좋습니다.
/*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.")