この戦略は,マニュアル・テイク・プロフィート (TP) とストップ・ロスト (SL) レベルを組み合わせて相対強度指数 (RSI) を利用するモメンタムベースのアプローチである.この戦略の背後にある主なアイデアは,RSI インディケーターを使用して過剰購入および過剰売却の市場状況を把握することであり,また,最近の最高値と最低値との関係で日々の閉値価格の位置を考慮することである.事前に定義されたTPまたはSLレベルに達すると,戦略は自動的にポジションを閉じる.
この戦略は,RSIモメントインジケーターに基づいた取引フレームワークを提供し,マニュアルで利益とストップロスの機能を組み込み,トレーダーはリスクの好みと市場見通しに応じてポジションを管理することができます.しかし,この戦略のパフォーマンスは,パラメータ選択と市場状況に大きく依存します.したがって,トレーダーはこの戦略を使用する際に注意を払い,徹底的なバックテストと最適化を行い,より堅牢な取引結果を達成するために他の形態の分析とリスク管理技術と組み合わせなければなりません.
//@version=5 strategy("RSI Strategy with Manual TP and SL", overlay=true) // Strategy Parameters length = input(14, title="RSI Length") overSold = input(30, title="Oversold Level") overBought = input(70, title="Overbought Level") trail_profit_pct = input.float(20, title="Trailing Profit (%)") // RSI Calculation vrsi = ta.rsi(close, length) // Entry Conditions for Long Position rsi_crossed_below_30 = vrsi > overSold and ta.sma(vrsi, 2) <= overSold // RSI crossed above 30 daily_close_above_threshold = close > (ta.highest(close, 50) * 0.7) // Daily close above 70% of the highest close in the last 50 bars // Entry Conditions for Short Position rsi_crossed_above_70 = vrsi < overBought and ta.sma(vrsi, 2) >= overBought // RSI crossed below 70 daily_close_below_threshold = close < (ta.lowest(close, 50) * 1.3) // Daily close below 130% of the lowest close in the last 50 bars // Entry Signals if (rsi_crossed_below_30 and daily_close_above_threshold) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (rsi_crossed_above_70 and daily_close_below_threshold) strategy.entry("RsiSE", strategy.short, comment="RsiSE") // Manual Take Profit and Stop Loss tp_percentage = input.float(1, title="Take Profit (%)") sl_percentage = input.float(1, title="Stop Loss (%)") long_tp = strategy.position_avg_price * (1 + tp_percentage / 100) long_sl = strategy.position_avg_price * (1 - sl_percentage / 100) short_tp = strategy.position_avg_price * (1 - tp_percentage / 100) short_sl = strategy.position_avg_price * (1 + sl_percentage / 100) strategy.exit("TP/SL Long", "RsiLE", limit=long_tp, stop=long_sl) strategy.exit("TP/SL Short", "RsiSE", limit=short_tp, stop=short_sl)