
Strategi ini adalah sistem perdagangan jangka pendek berdasarkan gabungan antara crossover dua rata-rata dan indikator RSI. Strategi ini menggunakan purata bergerak indeks 9 dan 21 kitaran ((EMA) sebagai asas penilaian trend, sambil menggabungkan indikator yang agak kuat ((RSI) sebagai alat pengesahan momentum, untuk mencapai pengurusan risiko dengan menetapkan hentian dan berhenti yang tetap.
Logik teras strategi ini adalah berdasarkan pada sinergi dua petunjuk teknikal. Pertama, arah trend pasaran ditentukan melalui persilangan EMA 9 kitaran dan EMA 21 kitaran, yang dianggap sebagai tren naik apabila EMA jangka pendek naik melintasi EMA jangka panjang, dan tren turun apabila EMA jangka pendek turun melintasi EMA jangka panjang. Kedua, penggunaan indikator RSI untuk pengesahan momentum, untuk membetulkan isyarat perdagangan yang terganggu dengan menilai sama ada RSI berada di kawasan overbought atau oversold.
Strategi ini membina sistem perdagangan garis pendek yang agak lengkap dengan menggabungkan crossover rata-rata dan RSI. Kelebihan strategi ini adalah bahawa isyarat jelas, risiko dapat dikawal, tetapi ada ruang untuk pengoptimuman. Dengan menambah mekanisme seperti stop loss dinamik, penapisan masa, dan sebagainya, anda dapat meningkatkan kestabilan dan keuntungan strategi.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("abo 3llash - EMA + RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Parameters
emaShortLength = input.int(9, title="Short EMA Length")
emaLongLength = input.int(21, title="Long EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
stopLossPercent = input.float(1, title="Stop Loss Percentage") / 100
takeProfitPercent = input.float(2, title="Take Profit Percentage") / 100
// Calculating EMAs and RSI
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// Buy and Sell Conditions
buyCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought
sellCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold
// Plotting the EMAs
plot(emaShort, title="Short EMA", color=color.blue)
plot(emaLong, title="Long EMA", color=color.red)
// Generating buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy Execution
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Set Stop Loss and Take Profit for Buy
stopLossLevel = close * (1 - stopLossPercent)
takeProfitLevel = close * (1 + takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Set Stop Loss and Take Profit for Sell
stopLossLevel = close * (1 + stopLossPercent)
takeProfitLevel = close * (1 - takeProfitPercent)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevel, limit=takeProfitLevel)