
Strategi ini adalah satu sistem pengesanan trend berdasarkan analisis teknikal, menggabungkan sistem garis rata, penunjuk pergerakan RSI dan penunjuk kadar turun naik ATR, untuk mengesahkan peluang perdagangan melalui pengesahan pelbagai isyarat. Strategi ini menggunakan garis rata berkala untuk menilai tren pasaran, dan menggabungkan kekuatan harga dengan penunjuk pergerakan RSI, dan akhirnya menggunakan kedudukan berhenti dan keuntungan ATR yang dinamik, membentuk satu sistem perdagangan yang lengkap.
Strategi ini mempunyai tiga bahagian utama:
Strategi ini membina sistem pengesanan trend yang logik dengan mengintegrasikan beberapa petunjuk teknikal. Keunggulan strategi ini terletak pada pengesahan pelbagai isyarat dan pengurusan risiko dinamik, tetapi juga perlu berhati-hati dalam menangani risiko seperti penundaan trend dan perobosan palsu. Strategi ini masih banyak diperbaiki dengan menambah pengesahan lalu lintas, pengoptimuman parameter, dan sebagainya. Secara keseluruhan, strategi ini sesuai untuk beroperasi di pasaran yang jelas trend, dan mempunyai nilai aplikasi yang baik untuk mengesan trend jangka panjang.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bullish Engulfing with EMA Crossover and ATR-Based SL/TP with RSI Filter", overlay=true)
// Inputs for moving averages
short_ema_length = input.int(100, title="Short EMA Length")
long_ema_length = input.int(200, title="Long EMA Length")
// RSI Input
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.float(50, title="RSI Threshold")
// Calculate the Exponential Moving Averages (EMAs)
short_ema = ta.ema(close, short_ema_length)
long_ema = ta.ema(close, long_ema_length)
// Plot EMAs on the chart
plot(short_ema, color=color.blue, title="100 EMA")
plot(long_ema, color=color.red, title="200 EMA")
// Calculate RSI
rsi_value = ta.rsi(close, rsi_length)
// Plot RSI on a separate panel
hline(rsi_threshold, "RSI Threshold", color=color.gray)
plot(rsi_value, color=color.purple, title="RSI")
// Bullish Engulfing Pattern
bullish_engulfing = close > open[1] and open < close[1] and close > open
// Define strategy entry condition with RSI filter
long_condition = bullish_engulfing and short_ema > long_ema and rsi_value > rsi_threshold
// Plot a buy signal when conditions are met
plotshape(long_condition, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", text="BUY")
// ATR Calculation
atr_length = input.int(14, title="ATR Length")
atr_value = ta.atr(atr_length)
// Define Stop Loss and Take Profit as levels
stop_loss_level = 1.1 * atr_value
take_profit_level = 2.0 * atr_value
// Execute Strategy Entry
if (long_condition)
strategy.entry("Buy", strategy.long)
// Adjust SL and TP levels using the entry price
if (strategy.position_size > 0)
// Calculate SL and TP relative to the entry price
stop_price = strategy.position_avg_price - stop_loss_level
limit_price = strategy.position_avg_price + take_profit_level
// Exit strategy with SL and TP
strategy.exit("Exit", from_entry="Buy", stop=stop_price, limit=limit_price)