
Ini ialah strategi mengikut arah aliran berdasarkan persilangan purata bergerak eksponen (EMA) dan pengesahan indeks kekuatan relatif (RSI). Strategi ini menggabungkan isyarat silang bagi EMA jangka pendek dan jangka panjang dengan pengesahan momentum RSI, sambil menyepadukan mekanisme henti rugi peratusan, bertujuan untuk menangkap titik perubahan penting dalam aliran pasaran dan mengawal risiko. Teras strategi adalah untuk meningkatkan ketepatan dan kebolehpercayaan transaksi sambil memastikan keselamatan transaksi melalui sinergi petunjuk teknikal.
Strategi ini menggunakan mekanisme penapisan penunjuk teknikal dwi: pertama, potensi titik perubahan arah aliran dikenal pasti melalui persilangan EMA jangka pendek (9 tempoh) dan EMA jangka panjang (21 tempoh). Apabila EMA jangka pendek melintasi EMA jangka panjang ke atas dan nilai RSI lebih tinggi daripada tahap yang ditetapkan, sistem menjana isyarat panjang apabila EMA jangka pendek melintasi EMA jangka panjang ke bawah dan nilai RSI lebih rendah; daripada tahap yang ditetapkan, sistem menjana isyarat pendek. Pada masa yang sama, strategi ini memperkenalkan mekanisme henti rugi berasaskan peratusan, menetapkan harga henti rugi dinamik untuk setiap urus niaga untuk mengawal risiko penurunan dengan berkesan.
Strategi ini membina sistem perdagangan penjejakan arah aliran yang lengkap dengan menggabungkan sistem purata bergerak dan penunjuk momentum. Kelebihan utama strategi ini terletak pada mekanisme pengesahan isyarat yang boleh dipercayai dan sistem kawalan risiko yang sempurna. Walaupun terdapat beberapa batasan yang wujud, prestasi keseluruhan strategi dijangka akan dipertingkatkan lagi melalui arah pengoptimuman yang dicadangkan. Ini ialah rangka kerja strategi yang teguh sesuai untuk peniaga trend jangka sederhana hingga panjang.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Trend Following Strategy", overlay=true)
// Inputs
shortEMA = input.int(9, title="Short EMA Length", minval=1)
longEMA = input.int(21, title="Long EMA Length", minval=1)
confirmationRSI = input.int(50, title="RSI Confirmation Level", minval=1, maxval=100)
stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0.1) // Stop Loss percentage
// Calculations
emaShort = ta.ema(close, shortEMA)
emaLong = ta.ema(close, longEMA)
rsiValue = ta.rsi(close, 14)
// Buy and Sell Conditions
buySignal = ta.crossover(emaShort, emaLong) and rsiValue > confirmationRSI
sellSignal = ta.crossunder(emaShort, emaLong) and rsiValue < confirmationRSI
// Plotting Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plotting EMAs
plot(emaShort, title="Short EMA", color=color.yellow)
plot(emaLong, title="Long EMA", color=color.purple)
// Strategy logic
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Calculate stop loss price based on stopLossPercent
longStopLossPrice = strategy.position_avg_price * (1 - stopLossPercent / 100)
shortStopLossPrice = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Draw stop loss line for long positions
if (strategy.position_size > 0) // For long positions
line.new(x1=bar_index, y1=longStopLossPrice, x2=bar_index + 1, y2=longStopLossPrice, color=color.red, width=2, style=line.style_dashed)
// Draw stop loss line for short positions
if (strategy.position_size < 0) // For short positions
line.new(x1=bar_index, y1=shortStopLossPrice, x2=bar_index + 1, y2=shortStopLossPrice, color=color.green, width=2, style=line.style_dashed)