Momentum Line Crossover EMA Sembilan Strategi MACD Saham

Penulis:ChaoZhang, Tanggal: 2024-02-27 16:49:10
Tag:

img

Gambaran umum

Strategi ini secara komprehensif memanfaatkan indikator EMA, indikator Bollinger Bands dan indikator MACD. Berdasarkan salib emas dan salib kematian EMA 9 hari dan EMA 30 hari, strategi ini menentukan waktu pembelian dan penjualan dalam kombinasi dengan rentang distribusi harga dan indikator momentum.

Prinsip Strategi

  1. Menghitung EMA 3 hari, EMA 9 hari dan EMA 30 hari.

  2. Hitung standar deviasi dalam 20 hari dari harga dan gambar Bollinger Bands dengan 1 dan 2 kali standar deviasi.

  3. Hitung garis sinyal 12 hari, 26 hari dan 9 hari.

  4. Ketika EMA 9 hari berada di atas EMA 30 hari, dan harga melebihi batas atas Bollinger Bands 1x standar deviasi, sinyal beli dikeluarkan.

  5. Ketika EMA 30 hari berada di bawah EMA 9 hari, dan harga lebih rendah dari batas bawah Bollinger Bands 1x standar deviasi, sinyal jual dikeluarkan.

Analisis Keuntungan

Dengan menggabungkan indikator rata-rata bergerak dan indikator momentum, strategi ini dapat lebih memahami tren pasar dan waktu, dengan keuntungan berikut:

  1. Indikator EMA dapat merespons dengan cepat perubahan harga untuk menentukan tren pasar; indikator MACD menilai momentum untuk mencegah pecah palsu.

  2. Kombinasi indikator standar deviasi Bollinger Bands dan EMA dapat menentukan waktu pembelian dan penjualan dengan lebih akurat.

  3. Kombinasi dari beberapa indikator dapat saling melengkapi. indikator yang berbeda dapat memverifikasi penilaian dalam satu terobosan.

Analisis Risiko dan Optimalisasi

Strategi ini juga memiliki beberapa risiko. Perhatikan poin berikut untuk optimasi:

  1. Kombinasi dari moving average EMA dapat disesuaikan dan dioptimalkan.

  2. Parameter Bollinger Bands dapat dioptimalkan dengan mengubah perkalian standar deviasi untuk menyaring sinyal palsu.

  3. Parameter dan kombinasi indikator MACD dapat dioptimalkan untuk meningkatkan efek penilaian momentum.

Ringkasan

Strategi ini mengintegrasikan indikator EMA untuk menentukan tren utama, dilengkapi dengan indikator Bollinger Bands yang dapat dengan akurat menangkap titik beli dan jual ketika momentum relatif besar; indikator MACD melengkapi konfirmasi tren dan dapat secara efektif menyaring sinyal palsu.


/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("emabb_collab", shorttitle="emabb", overlay=true)

// Input parameters
ema3 = input(3, title="3 EMA")
ema9 = input(9, title="9 EMA")
ema30 = input(30, title="30 EMA")
macdShort = input(12, title="MACD Short")
macdLong = input(26, title="MACD Long")
macdSignal = input(9, title="MACD Signal")
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev1 = mult * ta.stdev(src, length)
upper1 = basis + dev1
lower1 = basis - dev1
dev2 = mult * 2 * ta.stdev(src, length)
upper2 = basis + dev2
lower2 = basis - dev2
plot(basis, "Basis", color=#FF6D00)
p1 = plot(upper1, "Upper1", color=#2962FF)
p2 = plot(lower1, "Lower1", color=#2962FF)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
plot(basis, "Basis", color=#FF6D00)
p3 = plot(upper2, "Upper2", color=#00FF8C)
p4 = plot(lower2, "Lower2", color=#00FF8C)
fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95))

// Calculate EMAs
ema3Value = ta.ema(close, ema3)
ema9Value = ta.ema(close, ema9)
ema30Value = ta.ema(close, ema30)


// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)


// Conditions for buy signal
buyCondition = ta.crossover(ema9Value, ema30Value)  and ta.stdev(close, 20) > ta.stdev(close, 20)[1]

//Conditions for sell signal
sellCondition = ta.crossover(ema30Value, ema9Value)  and ta.stdev(close, 20) < ta.stdev(close, 20)[1]

// Plot signals on the chart

plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))

// Plot EMAs
plot(ema3Value, title="3 EMA", color=color.orange)
plot(ema9Value, title="9 EMA", color=color.purple)
plot(ema30Value, title="30 EMA", color=color.red)


if buyCondition
    strategy.entry('Long', strategy.long)
if sellCondition
    strategy.entry('Short', strategy.short)






Lebih banyak