この戦略は,移動平均クロスオーバーと相対強度指数 (RSI) を組み合わせるトレンドフォロー戦略である.この戦略は,短期および長期移動平均クロスオーバーを通じて市場のトレンド方向を決定し,RSIをモメントフィルターとして使ってトレンド強さを確認し,それによって取引シグナルの信頼性を向上させる.この戦略にはリスク管理のための百分比ベースのストップ・ロストとテイク・プロフィートも含まれている.
この戦略は,主要トレンド指標として9期および21期シンプル・ムービング・平均値 (SMA) を採用している.短期MAが長期MAを超越し,RSIが50を超えるとロング・シグナルが生成され,短期MAが長期MAを超越し,RSIが50を下回るとショートシグナルが発生する.このデザインは,取引方向が市場トレンドとモメンタムの両方に準拠することを保証する.システムは1%ストップ・ロストと2%テイク・プロフィートレベルを通じてリスク・リターン比率を制御する.
この戦略は,明確な論理を備えた,よく構造化されたトレンドフォロー戦略である.これは,MAクロスオーバー,RSIによるモメント確認を通じて基本的なトレンド方向性を提供し,完全な取引システムを形成するためにリスク管理メカニズムと組み合わせられる.継続的な最適化と調整を通じて,戦略にはいくつかの固有の限界があるが,さまざまな市場環境で安定したパフォーマンスを維持する可能性がある.成功の鍵はパラメータ最適化とリスク管理の実行にあります.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover + RSI Strategy", overlay=true, shorttitle="MA RSI Strategy") // --- Input Parameters --- shortMA = input.int(9, title="Short MA Period", minval=1) longMA = input.int(21, title="Long MA Period", minval=1) 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) stopLossPercent = input.float(1, title="Stop Loss Percentage", minval=0.1, maxval=10.0) / 100 takeProfitPercent = input.float(2, title="Take Profit Percentage", minval=0.1, maxval=10.0) / 100 // --- Calculate Moving Averages --- shortMA_value = ta.sma(close, shortMA) longMA_value = ta.sma(close, longMA) // --- Calculate RSI --- rsi_value = ta.rsi(close, rsiLength) // --- Buy and Sell Conditions --- longCondition = ta.crossover(shortMA_value, longMA_value) and rsi_value > 50 shortCondition = ta.crossunder(shortMA_value, longMA_value) and rsi_value < 50 // --- Plot Moving Averages --- plot(shortMA_value, color=color.blue, linewidth=2, title="Short MA") plot(longMA_value, color=color.red, linewidth=2, title="Long MA") // --- Plot RSI (Optional) --- hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi_value, color=color.purple, title="RSI") // --- Strategy Execution --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Risk Management (Stop Loss and Take Profit) --- longStopLoss = close * (1 - stopLossPercent) longTakeProfit = close * (1 + takeProfitPercent) shortStopLoss = close * (1 + stopLossPercent) shortTakeProfit = close * (1 - takeProfitPercent) // Set the stop loss and take profit for long and short positions strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit) strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)