Strategi Scalping Momentum RSI

RSI VOLUME momentum TRAILING
Tanggal Pembuatan: 2025-09-29 18:07:14 Akhirnya memodifikasi: 2025-09-29 18:07:14
menyalin: 0 Jumlah klik: 527
2
fokus pada
319
Pengikut

Strategi Scalping Momentum RSI Strategi Scalping Momentum RSI

8 Siklus RSI + Momentum Threshold 14: Ini bukan strategi RSI tradisional

Tidak lagi menggunakan RSI 14 siklus. Strategi ini secara langsung memampatkan siklus RSI menjadi 8, dengan penurunan momentum 14 poin, khusus untuk menangkap ledakan garis pendek. Strategi RSI tradisional berulang kali berhadapan di pasar yang bergoyang, dan kombinasi ini lebih stabil dalam pergerakan frekuensi tinggi.

Logika intinya sangat sederhana: RSI menyalakan sinyal multihead saat perubahan momentum >14 dan menyalakan sinyal headless saat <-14. Pada saat yang sama, Anda harus memiliki rata-rata volume transaksi lebih dari 13 siklus untuk memastikan bahwa tidak ada false breakout. Desain ini dirancang 1-2 siklus lebih awal dari sinyal RSI overbought dan oversold, untuk menangkap momen emas saat tren dimulai.

4.15% Stop Loss vs 1.85% Stop Loss: Rasio Risiko Keuntungan Lebih dari 2:1

Stop loss 4.15%, stop loss 1.85%, dan RRR mencapai 2.24:1. Rasio ini dianggap radikal dalam strategi scalping, tetapi dengan stop loss bergerak 2.55%, kontrol risiko yang sebenarnya lebih ketat.

Kuncinya adalah desain stop loss yang bergerak: ketika harga bergerak ke arah yang menguntungkan, garis stop loss akan mengikuti penyesuaian dinamis titik tertinggi / terendah. Ini berarti bahwa sebagian besar keuntungan dapat dikunci bahkan jika tidak mencapai target stop loss 4.15%. Dalam pertempuran nyata, banyak perdagangan akan dibawa keluar oleh stop loss bergerak di posisi 2-3%, menghindari pembalikan keuntungan.

Filter kuantitas transaksi: 1 kali lipat tampaknya konservatif, tetapi sebenarnya akurat

Volume transaksi harus melebihi rata-rata 13 siklus untuk membuka posisi. Desain ini memfilter 90% dari sinyal palsu. Banyak strategi RSI membuka posisi secara berkala di lingkungan volume rendah, dan hasilnya berbalik.

Rata-rata volume transaksi 13 siklus lebih sensitif daripada 20 siklus yang umum, dan lebih cepat mengidentifikasi arus masuk uang. 1 kali lipat tampaknya tidak tinggi, tetapi dengan reaksi cepat dari RSI 8 siklus, sudah cukup untuk menyaring peluang terobosan nyata.

Triple Entry Condition: Tidak Semua RSI Signal Layak Dijual

Masuk ke dalam multihead membutuhkan salah satu dari tiga kondisi: RSI momentum > 14, RSI rebound dari zona oversold, dan RSI melewati garis oversold. Desain ini lebih fleksibel daripada kondisi tunggal dan dapat beradaptasi dengan kondisi pasar yang berbeda.

Over-sell line set di 10, over-buy line set di 90, lebih ekstrim dari 3070 tradisional. Keuntungan dari hal ini adalah mengurangi sinyal palsu, kerugian adalah kemungkinan kehilangan beberapa peluang.

Skenario yang Cocok: Surga Garis Pendek untuk Varietas Berfluktuasi Tinggi

Strategi ini paling cocok untuk varietas volatilitas tinggi seperti mata uang kripto, pasangan mata uang utama asing, dan saham populer.

Jendela waktu terbaik adalah periode tumpang tindih waktu perdagangan Eropa dan Amerika, di mana likuiditas terbaik dan filter volume transaksi paling efektif. Waktu Asia, kualitas sinyal menurun karena volume transaksi yang lebih rendah.

Peringatan Resiko: Kerugian Berlangsung Adalah Ancaman Terbesar

Data retrospektif menunjukkan bahwa strategi ini memiliki risiko kerugian berturut-turut, terutama di pasar yang bergoyang horizontal. RSI 8-siklus terlalu sensitif dan mudah dirusak berulang kali dalam goyang berjam-jam.

Disarankan untuk tidak mengambil risiko lebih dari 2% dari akun Anda dalam satu kali, dan berhenti berdagang setelah 3 stop loss berturut-turut. Rekapitulasi historis tidak mewakili keuntungan di masa depan, dan perdagangan langsung membutuhkan manajemen dana dan kontrol psikologis yang ketat.

Kode Sumber Strategi
/*backtest
start: 2024-09-29 00:00:00
end: 2025-09-26 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Bybit","currency":"ETH_USDT","balance":500000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MonkeyPhone

//@version=5
strategy("RSI Momentum Scalper", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills=true)

// Trading Mode Selection
tradeMode = input.string("Both", title="Trade Mode", options=["Both", "Long Only", "Short Only"])

// RSI Settings
rsiLength = input.int(8, title="RSI Length", minval=2, maxval=30)
rsiOverbought = input.int(90, title="RSI Overbought", minval=60, maxval=99)
rsiOversold = input.int(10, title="RSI Oversold", minval=1, maxval=40)
rsiMomentumThreshold = input.float(14, title="RSI Momentum Threshold", minval=1, maxval=15, step=0.5)

// Volume Settings
volMultiplier = input.float(1, title="Volume Multiplier", minval=1.0, maxval=3.0, step=0.1)
volLookback = input.int(13, title="Volume MA Length", minval=5, maxval=50)

// Exit Settings
takeProfitPercent = input.float(4.15, title="Take Profit %", minval=0.1, maxval=10.0, step=0.1)
stopLossPercent = input.float(1.85, title="Stop Loss %", minval=0.1, maxval=6.0, step=0.1)
trailingStopPercent = input.float(2.55, title="Trailing Stop %", minval=0.1, maxval=4.0, step=0.05)

// Calculate RSI
rsi = ta.rsi(close, rsiLength)
rsiMA = ta.sma(rsi, 3)

// Calculate RSI Momentum
rsiMomentum = rsi - rsi[1]

// Volume Analysis
volMA = ta.sma(volume, volLookback)
highVolume = volume > volMA * volMultiplier

// Entry Conditions - Long
bullishMomentum = rsiMomentum > rsiMomentumThreshold
oversoldBounce = rsi < rsiOversold and rsi > rsi[1]
bullishCross = ta.crossover(rsi, rsiOversold)
longCondition = (bullishMomentum or oversoldBounce or bullishCross) and highVolume and close > close[1]

// Entry Conditions - Short
bearishMomentum = rsiMomentum < -rsiMomentumThreshold
overboughtReversal = rsi > rsiOverbought and rsi < rsi[1]
bearishCross = ta.crossunder(rsi, rsiOverbought)
shortCondition = (bearishMomentum or overboughtReversal or bearishCross) and highVolume and close < close[1]

// Apply trade mode filter
longEntry = longCondition and (tradeMode == "Both" or tradeMode == "Long Only")
shortEntry = shortCondition and (tradeMode == "Both" or tradeMode == "Short Only")

// Entry Logic
strategy.entry("Long", strategy.long, when=longEntry and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when=shortEntry and strategy.position_size == 0)

// Declare and initialize trailing variables
var float highest_since_long = na
var float lowest_since_short = na
var float long_trailing_level = na
var float short_trailing_level = na
var float long_fixed_sl = na
var float long_tp = na
var float short_fixed_sl = na
var float short_tp = na

// Update trailing levels using ternary operators with math.max/min
highest_since_long := strategy.position_size > 0 ? math.max(na(highest_since_long[1]) ? math.max(high, strategy.position_avg_price) : highest_since_long[1], high) : na
lowest_since_short := strategy.position_size < 0 ? math.min(na(lowest_since_short[1]) ? math.min(low, strategy.position_avg_price) : lowest_since_short[1], low) : na

// Calculate exit levels
long_fixed_sl := strategy.position_size > 0 ? strategy.position_avg_price * (1 - stopLossPercent / 100) : na
long_tp := strategy.position_size > 0 ? strategy.position_avg_price * (1 + takeProfitPercent / 100) : na
long_trailing_level := strategy.position_size > 0 ? highest_since_long * (1 - trailingStopPercent / 100) : na
short_fixed_sl := strategy.position_size < 0 ? strategy.position_avg_price * (1 + stopLossPercent / 100) : na
short_tp := strategy.position_size < 0 ? strategy.position_avg_price * (1 - takeProfitPercent / 100) : na
short_trailing_level := strategy.position_size < 0 ? lowest_since_short * (1 + trailingStopPercent / 100) : na

// Effective stop loss levels
effective_long_sl = strategy.position_size > 0 ? math.max(long_fixed_sl, long_trailing_level) : na
effective_short_sl = strategy.position_size < 0 ? math.min(short_fixed_sl, short_trailing_level) : na

// Exit Logic
strategy.exit("Long Exit", "Long", limit=long_tp, stop=effective_long_sl, when=strategy.position_size > 0)
strategy.exit("Short Exit", "Short", limit=short_tp, stop=effective_short_sl, when=strategy.position_size < 0)

// Plot TP, fixed SL, and trailing SL levels on chart when in position
plot(strategy.position_size > 0 ? long_tp : na, title="Long TP", color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0 ? long_fixed_sl : na, title="Long Fixed SL", color=color.red, style=plot.style_linebr)
plot(strategy.position_size > 0 ? long_trailing_level : na, title="Long Trailing SL", color=color.orange, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_tp : na, title="Short TP", color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_fixed_sl : na, title="Short Fixed SL", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_trailing_level : na, title="Short Trailing SL", color=color.orange, style=plot.style_linebr)

// Alerts
alertcondition(longEntry, title="Long Entry Alert", message="RSI Momentum Long Signal")
alertcondition(shortEntry, title="Short Entry Alert", message="RSI Momentum Short Signal")