
Triple EMA crossover adalah strategi untuk berdagang berdasarkan isyarat crossover EMA dalam tiga kitaran yang berbeza. Strategi ini menggunakan EMA cepat (10 kitaran), EMA sederhana (25 kitaran), dan EMA perlahan (50 kitaran) untuk menangkap trend pasaran, sambil menggunakan purata gelombang sebenar (ATR) untuk menetapkan tahap hentian dan berhenti untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Apabila EMA cepat melintasi EMA perlahan, dan EMA sederhana juga melintasi EMA perlahan, ia menghasilkan isyarat kenaikan; sebaliknya, apabila EMA cepat melintasi EMA perlahan, dan EMA sederhana juga melintasi EMA perlahan, ia menghasilkan isyarat penurunan.
Strategi silang tiga EMA memberikan pedagang cara yang berkesan untuk mengesan trend dan menguruskan risiko dengan menggunakan isyarat silang purata bergerak indeks dalam kitaran yang berbeza, digabungkan dengan seting berhenti dan berhenti ATR. Walaupun strategi ini berfungsi dengan baik di pasaran yang sedang tren, ia mungkin menghadapi cabaran di pasaran yang bergolak. Oleh itu, pedagang harus mempertimbangkan untuk menggabungkannya dengan alat analisis teknikal lain dan mengoptimumkan parameter mengikut keadaan pasaran dan kelas aset yang berbeza untuk meningkatkan kebolehpercayaan strategi dan potensi keuntungan.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Triple EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Input for EMA periods
fastLength = input(10, title="Fast EMA Length")
mediumLength = input(25, title="Medium EMA Length")
slowLength = input(50, title="Slow EMA Length")
riskMultiplier = input(3.0, title="Risk Multiplier for Stop Loss and Take Profit")
// Calculating EMAs
fastEMA = ta.ema(close, fastLength)
mediumEMA = ta.ema(close, mediumLength)
slowEMA = ta.ema(close, slowLength)
// Plot EMAs
plot(fastEMA, color=color.red, title="Fast EMA")
plot(mediumEMA, color=color.orange, title="Medium EMA")
plot(slowEMA, color=color.yellow, title="Slow EMA")
// Define the crossover conditions for a bullish and bearish signal
bullishCrossover = ta.crossover(fastEMA, slowEMA) and mediumEMA > slowEMA
bearishCrossover = ta.crossunder(fastEMA, slowEMA) and mediumEMA < slowEMA
// ATR for stop and limit calculations
atr = ta.atr(14)
longStopLoss = close - atr * riskMultiplier
shortStopLoss = close + atr * riskMultiplier
longTakeProfit = close + atr * riskMultiplier * 2
shortTakeProfit = close - atr * riskMultiplier * 2
// Entry signals with visual shapes
plotshape(series=bullishCrossover, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal", text="BUY")
plotshape(series=bearishCrossover, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal", text="SELL")
// Strategy execution
if (bullishCrossover)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)
if (bearishCrossover)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)
// Color bars based on EMA positions
barcolor(fastEMA > slowEMA ? color.green : slowEMA > fastEMA ? color.red : na, title="Bar Color")