
Strategi ini ialah sistem perdagangan mengikut arah aliran berdasarkan berbilang persilangan purata bergerak dan penunjuk RSI. Strategi ini menggabungkan tiga purata bergerak EMA20, EMA50 dan SMA200, menilai arah aliran pasaran dengan hubungan kedudukan purata bergerak, dan menggunakan penunjuk RSI untuk menapis isyarat dagangan, dan berdagang apabila harga menembusi paras tertinggi sebelumnya. Strategi ini menetapkan keadaan ambil untung dan henti rugi dan sesuai untuk berjalan pada tahap 1 jam dan harian.
Logik teras strategi adalah berdasarkan syarat utama berikut:
Strategi ini ialah sistem penjejakan arah aliran dengan struktur lengkap dan logik yang jelas. Melalui penggunaan berbilang penunjuk teknikal yang diselaraskan, adalah mungkin untuk menangkap arah aliran pasaran dengan berkesan sambil juga mempunyai mekanisme pengurusan risiko yang lengkap. Terdapat ruang besar untuk pengoptimuman strategi, dan penambahbaikan berterusan boleh meningkatkan lagi kestabilan dan keuntungan strategi. Untuk pedagang jangka sederhana dan panjang, ini adalah rangka kerja strategi yang patut dicuba.
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA/SMA Strategy", overlay=false)
// Input parameters
ema20Length = input(20, title="20 EMA Length")
ema50Length = input(50, title="50 EMA Length")
sma200Length = input(200, title="200 SMA Length")
rsiLength = input(14, title="RSI Length")
rsiThreshold = input(40, title="RSI Threshold")
// Calculate indicators
ema20 = ta.ema(close, ema20Length)
ema50 = ta.ema(close, ema50Length)
sma200 = ta.sma(close, sma200Length)
rsiValue = ta.rsi(close, rsiLength)
// Conditions
emaCondition = ema20 > ema50 and sma200 < ema20 and sma200 < ema50
priceNearEMA = (close <= ema20 * 1.01 and close >= ema20 * 0.99) or (close <= ema50 * 1.01 and close >= ema50 * 0.99)
rsiCondition = rsiValue > rsiThreshold
// Entry condition: Price crosses previous candle high
entryCondition = priceNearEMA and rsiCondition and emaCondition and (close > high[1])
// Strategy entry
if entryCondition
strategy.entry("Long", strategy.long)
// Take profit and stop loss settings
takeProfitLevel = strategy.position_avg_price * 1.25 // Take profit at +25%
stopLossLevel = strategy.position_avg_price * 0.90 // Stop loss at -10%
// Exit conditions
if strategy.position_size > 0
strategy.exit("Take Profit", from_entry="Long", limit=takeProfitLevel)
strategy.exit("Stop Loss", from_entry="Long", stop=stopLossLevel)
// Plotting indicators for visualization
plot(ema20, color=color.blue, title="20 EMA")
plot(ema50, color=color.red, title="50 EMA")
plot(sma200, color=color.green, title="200 SMA")
hline(rsiThreshold, "RSI Threshold", color=color.orange)