
Strategi ini didasarkan pada identifikasi candlestick berskala besar dan indikator divergensi RSI sebagai sinyal utama, dipadukan dengan stop loss tetap awal dan trailing stop loss dinamis untuk membentuk sistem perdagangan pelacakan tren yang lengkap. Strategi ini mengidentifikasi kondisi pasar berskala besar dengan membandingkan ukuran badan candlestick saat ini dengan lima candlestick sebelumnya, dan menggunakan divergensi antara RSI cepat dan lambat untuk mengonfirmasi perubahan momentum. Terakhir, mekanisme stop-loss ganda digunakan untuk mengelola risiko dan mengunci keuntungan.
Strategi ini terdiri dari empat komponen inti: 1) Identifikasi candlestick besar - Tentukan momentum harga yang signifikan dengan membandingkan 5 ukuran body candlestick saat ini dan sebelumnya; 2) Analisis divergensi RSI - Gunakan RSI cepat 5 periode dan RSI lambat 14 periode 3) Analisis awal stop loss - tetapkan stop loss tetap sebesar 200 poin pada saat masuk untuk mengendalikan risiko awal; 4) Trailing stop loss - diaktifkan setelah keuntungan mencapai 200 poin, pertahankan 150 poin dengan harga Jarak titik yang dinamis. Strategi ini juga menggunakan EMA periode 21 sebagai filter tren untuk membantu menentukan arah pasar secara keseluruhan.
Strategi ini membangun sistem mengikuti tren secara lengkap dengan mengombinasikan sejumlah besar candlestick dan divergensi RSI, serta mencapai manajemen risiko komprehensif melalui mekanisme stop-loss ganda. Strategi ini cocok untuk beroperasi di lingkungan pasar dengan tren yang jelas dan volatilitas tinggi, tetapi pedagang perlu menyesuaikan pengaturan parameter menurut karakteristik pasar tertentu. Melalui arah pengoptimalan yang direkomendasikan, stabilitas dan profitabilitas strategi diharapkan dapat lebih ditingkatkan.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=6
strategy('[F][IND] - Big Candle Identifier with RSI Divergence and Advanced Stops', shorttitle = '[F][IND] Big Candle RSI Trail', overlay = true)
// Inputs for the trailing stop and stop loss
trail_start_ticks = input.int(200, "Trailing Start Ticks", tooltip="The number of ticks the price must move in the profitable direction before the trailing stop starts.")
trail_distance_ticks = input.int(150, "Trailing Distance Ticks", tooltip="The distance in ticks between the trailing stop and the price once the trailing stop starts.")
initial_stop_loss_points = input.int(200, "Initial Stop Loss Points", tooltip="The fixed stop loss applied immediately after entering a trade.")
// Tick size based on instrument
tick_size = syminfo.mintick
// Calculate trailing start and distance in price
trail_start_price = trail_start_ticks * tick_size
trail_distance_price = trail_distance_ticks * tick_size
initial_stop_loss_price = initial_stop_loss_points * tick_size
// Identify big candles
body0 = math.abs(close[0] - open[0])
body1 = math.abs(close[1] - open[1])
body2 = math.abs(close[2] - open[2])
body3 = math.abs(close[3] - open[3])
body4 = math.abs(close[4] - open[4])
body5 = math.abs(close[5] - open[5])
bullishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open < close
bearishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open > close
// RSI Divergence
rsi_fast = ta.rsi(close, 5)
rsi_slow = ta.rsi(close, 14)
divergence = rsi_fast - rsi_slow
// Trade Entry Logic
if bullishBigCandle
strategy.entry('Long', strategy.long, stop=low - initial_stop_loss_price)
if bearishBigCandle
strategy.entry('Short', strategy.short, stop=high + initial_stop_loss_price)
// Trailing Stop Logic
var float trail_stop = na
if strategy.position_size > 0 // Long Position
entry_price = strategy.position_avg_price
current_profit = close - entry_price
if current_profit >= trail_start_price
trail_stop := math.max(trail_stop, close - trail_distance_price)
strategy.exit("Trailing Stop Long", "Long", stop=trail_stop)
if strategy.position_size < 0 // Short Position
entry_price = strategy.position_avg_price
current_profit = entry_price - close
if current_profit >= trail_start_price
trail_stop := math.min(trail_stop, close + trail_distance_price)
strategy.exit("Trailing Stop Short", "Short", stop=trail_stop)
// Plotting Trailing Stop
plot(strategy.position_size > 0 ? trail_stop : na, color=color.green, title="Trailing Stop (Long)")
plot(strategy.position_size < 0 ? trail_stop : na, color=color.red, title="Trailing Stop (Short)")
// Plotting RSI Divergence
plot(divergence, color=divergence > 0 ? color.lime : color.red, linewidth=2, title="RSI Divergence")
hline(0)
// Plotting EMA
ema21 = ta.ema(close, 21)
plot(ema21, color=color.blue, title="21 EMA")