Multi-EMA Bullish Trend Strategy adalah strategi mengikuti tren berdasarkan beberapa rata-rata bergerak eksponensial (EMA) dari periode yang berbeda untuk penentuan tren.
Strategi ini menggunakan 6 EMA periode 10, 20, 50, 100, 150 dan 200 hari. EMA ini digunakan untuk menentukan tahap siklis pasar saat ini. Ketika EMA jangka pendek (misalnya 10 hari) melintasi jangka panjang (misalnya 20-, 50 hari), itu menandakan pasar telah memasuki fase markup dari tren bull.
Secara khusus, strategi akan berlangsung lama jika kondisi berikut terpenuhi:
Setelah membuka posisi panjang, 8% trailing stop loss digunakan untuk mengunci keuntungan. Itu berarti posisi akan tetap terbuka selama harga tidak turun lebih dari 8% dari harga masuk. Setelah penarikan melebihi 8%, posisi akan ditutup untuk stop loss.
Singkatnya, ide utama dari strategi ini adalah untuk memasuki tren bull ketika dikonfirmasi oleh beberapa keselarasan EMA, dan menggunakan stop loss untuk mengunci keuntungan.
Strategi multi-EMA bull trend memiliki kekuatan utama berikut:
Ada juga beberapa risiko yang harus diperhatikan untuk strategi ini:
Untuk mengatasi risiko ini, kita dapat mengoptimalkan dengan menyesuaikan periode EMA atau memasukkan indikator tambahan untuk penilaian yang lebih baik.
Mengingat karakteristik strategi ini, optimasi masa depan dapat berfokus pada aspek berikut:
Secara keseluruhan, Multi-EMA Bull Trend Strategy adalah sistem trend berikut yang kuat dan dapat diandalkan, menyeimbangkan penentuan tren dan pengendalian risiko.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('SirSeff\'s EMA Rainbow', overlay=true) // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2100, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false // Component Code Stop //TSP trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01 longStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - trailStop) math.max(stopValue, longStopPrice[1]) else 0 //PLOTS plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop') plot(ta.ema(close, 20)) plot(ta.ema(close, 50)) plot(ta.ema(close, 100)) plot(ta.ema(close, 150)) plot(ta.ema(close, 200)) //OPEN longCondition = ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200) if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod() strategy.entry("BUY1", strategy.long) if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod() strategy.entry("BUY2'", strategy.long) //CLOSE @ TSL if strategy.position_size > 0 and testPeriod() strategy.exit(id='TSP', stop=longStopPrice)