
Strategi ini adalah strategi momentum berdasarkan indeks yang agak kuat ((RSI), yang digabungkan dengan fungsi untuk menetapkan berhenti (TP) dan berhenti (SL) secara manual. Idea utama strategi ini adalah untuk menangkap keadaan pasaran yang terlalu banyak dan terlalu banyak dijual melalui indikator RSI, sambil mempertimbangkan kedudukan harga penutupan garisan hari berbanding dengan harga tertinggi dan terendah baru-baru ini, untuk menentukan masa masuk.
Strategi ini menyediakan kerangka perdagangan berdasarkan RSI dan memperkenalkan fungsi stop loss manual yang membolehkan peniaga menguruskan kedudukan berdasarkan pilihan risiko dan pandangan pasaran mereka sendiri. Walau bagaimanapun, prestasi strategi ini sangat bergantung kepada pilihan parameter dan keadaan pasaran. Oleh itu, peniaga harus berhati-hati menggunakan strategi ini, melakukan pengesanan dan pengoptimuman yang mencukupi, dan menggabungkannya dengan bentuk analisis dan teknik pengurusan risiko lain untuk mendapatkan prestasi perdagangan yang lebih stabil.
//@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)