この戦略は,二重のシンプル・ムービング・アベア (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.")