Strategi Tren Berbasis Rata-rata Bergerak Multi Timeframe dan EMA

Penulis:ChaoZhangTanggal: 2024-02-21 15:59:43
Tag:

img

Gambaran umum

Strategi ini menggunakan moving average (MA) dan EMA di berbagai kerangka waktu untuk mengidentifikasi dan memperdagangkan tren. Dengan menggabungkan SMA, EMA dari berbagai periode, serta badan candlestick, ia dapat secara efektif menyaring kebisingan pasar dan memperdagangkan tren jangka menengah hingga jangka panjang dengan risiko rendah.

Logika Strategi

Ide inti didasarkan pada perbandingan 3 SMA dari periode yang berbeda untuk menentukan momentum harga.

Secara khusus, strategi ini menggunakan 3 SMA - SMA 3-, 8-, dan 10-periode. Ketika harga berada di bawah semua 3 SMA, itu dianggap sebagai downtrend. Sinyal panjang dipicu ketika harga kembali melintasi SMA.

Juga, EMA 5 periode memeriksa apakah tubuh lilin menunjuk ke atas sebelum memasuki perdagangan panjang.

Untuk aturan keluar, jumlah maksimum penutupan yang menguntungkan atau durasi maksimum digunakan sebagai mekanisme stop loss.

Analisis Keuntungan

Dengan menggabungkan MAs dari berbagai kerangka waktu, strategi ini dapat secara efektif menyaring kebisingan pasar dan menangkap tren jangka menengah hingga jangka panjang.

Menggunakan EMA untuk memeriksa arah tubuh lilin mengurangi tergelincir yang tidak perlu dari membeli ke lilin jatuh.

Secara keseluruhan ini adalah sistem yang stabil dan dapat diandalkan yang cocok untuk mengikuti tren selama beberapa minggu hingga berbulan-bulan.

Risiko dan Pengurangan

  • Strategi ini sensitif terhadap parameter. Pilihan suboptimal dari 3 SMA atau 1 periode EMA dapat memperburuk kualitas sinyal. Parameter perlu dioptimalkan untuk instrumen yang berbeda.

  • Risiko gap tidak ditangani berita mendadak fundamental bahwa harga gap dapat menyebabkan kerugian harga stop loss dapat membantu mengurangi risiko tersebut.

Peluang Peningkatan

  • Lebih banyak kerangka waktu MAs atau EMA dapat ditambahkan untuk lebih meningkatkan akurasi tren.

  • Stop loss harga moderat dapat diuji untuk mengunci keuntungan sambil mengurangi kerugian dalam pergerakan ekstrem.

  • Pembelajaran mesin dapat secara dinamis mengoptimalkan parameter untuk beradaptasi dengan kondisi pasar yang berkembang.

Kesimpulan

Strategi ini kuat dan dapat diandalkan secara keseluruhan, menggunakan MA crossover untuk menentukan tren yang dilengkapi dengan filter EMA. Optimasi parameter lebih lanjut dan kontrol risiko yang bijaksana dapat meningkatkan tingkat kemenangan dan profitabilitas. Layak penelitian dan aplikasi lebih lanjut.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Lebih banyak