
Strategi ini adalah sistem perdagangan yang menggabungkan isyarat overbought dan oversold RSI dengan sempadan Bollinger Bands untuk menguruskan risiko perdagangan dengan menetapkan kedudukan stop loss yang dinamik dan kedudukan stop loss yang berasaskan risiko dan ganjaran. Inti strategi ini adalah untuk menghasilkan isyarat perdagangan apabila terdapat persimpangan antara isyarat RSI dan tahap overbought dan oversold, dan untuk meningkatkan ketepatan perdagangan dengan menggabungkan kedudukan harga di dalam Bollinger Bands.
Strategi ini berdasarkan kepada beberapa prinsip utama:
Strategi ini membina satu sistem perdagangan yang lengkap dengan menggabungkan isyarat RSI overbought dan oversold dan kedudukan sempadan Brin. Kelebihan utama strategi ini adalah pengurusan risiko yang dinamik dan penyetempatan ganjaran risiko yang jelas, tetapi masih perlu berhati-hati terhadap risiko yang dibawa oleh perobosan palsu dan perubahan keadaan pasaran.
/*backtest
start: 2024-11-23 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © humblehustle
//@version=5
strategy("RSI Oversold Crossover Strategy", overlay=true)
// === INPUT PARAMETERS ===
rsi_length = input(14, title="RSI Length")
rsi_overbought = input(70, title="RSI Overbought Level")
rsi_oversold = input(30, title="RSI Oversold Level")
// === RSI CALCULATION ===
rsi = ta.rsi(close, rsi_length)
// === ENTRY CONDITIONS ===
long_condition = ta.crossover(rsi, rsi_oversold) // RSI crosses above 30
short_condition = ta.crossunder(rsi, rsi_overbought) // RSI crosses below 70
// === STOP LOSS & TARGET CALCULATION ===
longStop = ta.lowest(low, 10) // Recent swing low for longs
shortStop = ta.highest(high, 10) // Recent swing high for shorts
longTarget = close + (close - longStop) * 2 // 2:1 Risk-Reward
shortTarget = close - (shortStop - close) * 2 // 2:1 Risk-Reward
// === EXECUTE TRADES ===
if long_condition
strategy.entry("Long", strategy.long)
strategy.exit("ExitLong", from_entry="Long", stop=longStop, limit=longTarget)
if short_condition
strategy.entry("Short", strategy.short)
strategy.exit("ExitShort", from_entry="Short", stop=shortStop, limit=shortTarget)
// === ALERTS ===
alertcondition(long_condition, title="Long Signal", message="BUY: RSI Crossed Above 30 (Oversold)")
alertcondition(short_condition, title="Short Signal", message="SELL: RSI Crossed Below 70 (Overbought)")
// === PLOTTING INDICATORS & SIGNALS ===
hline(rsi_overbought, "RSI Overbought", color=color.red)
hline(rsi_oversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.blue, linewidth=2)
plotshape(series=long_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY Signal", size=size.large)
plotshape(series=short_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL Signal", size=size.large)