この戦略は,相対強度指数 (RSI) の技術指標に基づい,資産の過剰購入および過剰販売状況を分析することによって取引決定を下す.RSIが過剰販売の
RSIベースのトレード戦略は,パーセントベースのテイク・プロフィートとストップ・ロスの利用により,過買い・過売りの市場状況を把握し,固定パーセントのテイク・プロフィートとストップ・ロスのメカニズムと組み合わせ,トレンドが逆転すると迅速にポジションを閉じて安定したリターンを達成する.戦略の原則は単純で理解しやすい.制御可能なリスクと強い適応性がある.しかし,パラメータ敏感性,振動する市場でパフォーマンスが悪い,トレンド調整リスクなどの問題にも直面している.パラメータを動的に調整し,トレンドフィルターを導入し,テイク・プロフィートとストップ・ロスのメカニズムを最適化し,ポジションサイジングを組み込み,他の指標と組み合わせることで,変化する市場環境により良く適応するために戦略の強度と収益性をさらに高めることができる.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy with Adjustable TP and SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=100000, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.1) // RSI settings rsiPeriod = input.int(14, title="RSI Period") rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50) // Fixed TP and SL settings takeProfitPct = input.float(20, title="Take Profit Percentage", step=0.1) / 100 stopLossPct = input.float(5, title="Stop Loss Percentage", step=0.1) / 100 // Calculate RSI rsiValue = ta.rsi(close, rsiPeriod) // Plot RSI hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(rsiValue, title="RSI", color=color.purple) // Entry conditions buyCondition = ta.crossunder(rsiValue, rsiOversold) sellCondition = ta.crossover(rsiValue, rsiOverbought) // Calculate stop loss and take profit prices var float entryPrice = na var float stopLossLevel = na var float takeProfitLevel = na if (buyCondition) entryPrice := close stopLossLevel := entryPrice * (1 - stopLossPct) takeProfitLevel := entryPrice * (1 + takeProfitPct) strategy.entry("Buy", strategy.long) // Close positions when TP or SL is hit if (strategy.position_size > 0) if (close <= stopLossLevel) strategy.close("Buy", comment="Stop Loss Hit") if (close >= takeProfitLevel) strategy.close("Buy", comment="Take Profit Hit") // Close positions when RSI crosses above overbought level if (sellCondition) strategy.close("Buy", comment="RSI Overbought") // Optional: Add alerts alertcondition(buyCondition, title="Buy Alert", message="RSI crossed below oversold level") alertcondition(sellCondition, title="Sell Alert", message="RSI crossed above overbought level")