
Strategi ini adalah strategi posisi rendah dinamis berdasarkan indeks relatif kuat (RSI) untuk menangkap tren pasar dengan mengatur kondisi posisi terbuka dan posisi rendah yang dinamis. Strategi ini menghasilkan sinyal perdagangan ketika indikator RSI menembus level overbought dan oversold, dan juga memperkenalkan mekanisme posisi rendah dinamis yang unik untuk mengoptimalkan kinerja perdagangan dengan menetapkan kondisi posisi rendah pada tingkat RSI yang berbeda.
Logika inti dari strategi ini mencakup komponen-komponen kunci berikut:
Ini adalah strategi perdagangan dinamis yang dirancang dengan baik untuk menangkap peluang pasar melalui indikator RSI dan mekanisme posisi terdepan yang dinamis. Strategi ini terutama ditandai dengan tingkat sistematisasi yang tinggi, kontrol risiko yang baik, dan kemampuan beradaptasi yang kuat. Meskipun ada beberapa risiko yang melekat, strategi ini memiliki ruang untuk perbaikan yang lebih besar melalui pengoptimalan parameter dan perluasan fungsi.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Close Levels", shorttitle="RSI Strat", overlay=true)
// RSI Input settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiCloseLongLevel = input.int(60, title="RSI Level to Close Long Position")
rsiCloseShortLevel = input.int(40, title="RSI Level to Close Short Position")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Generate buy and sell signals based on RSI levels
buySignal = ta.crossover(rsi, rsiOversold)
sellSignal = ta.crossunder(rsi, rsiOverbought)
// Check if there are open positions
var bool inPosition = na
if (strategy.opentrades > 0)
inPosition := true
else
inPosition := false
// Open long position on buy signal if not already in a position
if (buySignal and not inPosition)
strategy.entry("Buy", strategy.long)
inPosition := true
// Close long position on sell signal or when RSI reaches the close long level
if (inPosition and strategy.position_size > 0 and (sellSignal or rsi >= rsiCloseLongLevel))
strategy.close("Buy")
inPosition := false
// Open short position on sell signal if not already in a position
if (sellSignal and not inPosition)
strategy.entry("Sell", strategy.short)
inPosition := true
// Close short position on buy signal or when RSI reaches the close short level
if (inPosition and strategy.position_size < 0 and (buySignal or rsi <= rsiCloseShortLevel))
strategy.close("Sell")
inPosition := false
// Plot buy and sell signals
//plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
//plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot RSI for visualization
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
hline(rsiCloseLongLevel, "RSI Close Long Level", color=color.blue)
hline(rsiCloseShortLevel, "RSI Close Short Level", color=color.purple)
plot(rsi, title="RSI", color=color.orange)