Strategi ini berdasarkan pengenalpastian candlestick berskala besar dan penunjuk perbezaan RSI sebagai isyarat utama, digabungkan dengan stop loss awal tetap dan trailing stop loss dinamik untuk membentuk sistem perdagangan penjejakan arah aliran yang lengkap. Strategi ini mengenal pasti keadaan pasaran berskala besar dengan membandingkan saiz badan batang lilin semasa dengan lima batang lilin sebelumnya, dan menggunakan perbezaan antara RSI cepat dan perlahan untuk mengesahkan perubahan momentum Akhirnya, mekanisme henti rugi berganda digunakan untuk mengurus risiko dan mengunci keuntungan.
Strategi ini terdiri daripada empat komponen teras: 1) Pengenalpastian candlestick yang besar - Tentukan momentum harga yang ketara dengan membandingkan saiz badan 5 candlestick semasa dan sebelumnya 2) Analisis divergence RSI - Gunakan RSI cepat 5-tempoh dan RSI perlahan 14-tempoh 3) Permulaan; stop loss - tetapkan stop loss tetap sebanyak 200 mata pada masa kemasukan untuk mengawal risiko awal 4) Trailing stop loss - diaktifkan selepas keuntungan mencapai 200 mata, kekalkan 150 mata dengan harga Jarak berikut yang dinamik. Strategi ini juga menggunakan EMA 21 tempoh sebagai penapis arah aliran untuk membantu menentukan arah pasaran keseluruhan.
Strategi ini membina sistem mengikut arah aliran yang lengkap dengan menggabungkan sejumlah besar batang lilin dan perbezaan RSI, dan mencapai pengurusan risiko yang komprehensif melalui mekanisme henti rugi berganda. Strategi ini sesuai untuk beroperasi dalam persekitaran pasaran dengan arah aliran yang jelas dan turun naik yang tinggi, tetapi pedagang perlu melaraskan tetapan parameter mengikut ciri pasaran tertentu. Melalui arahan pengoptimuman yang disyorkan, kestabilan dan keuntungan strategi dijangka akan dipertingkatkan lagi.
/*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")