Dual EMA Golden Cross Breakout Strategi

Penulis:ChaoZhangTanggal: 2024-01-26 15:13:59
Tag:

img

Gambaran umum

Dual EMA golden cross breakout adalah strategi trading trend-following dan breakout yang didasarkan pada dua exponential moving average (EMA) dengan periode yang berbeda. Strategi ini menghasilkan sinyal beli ketika golden cross muncul antara dua EMA dan sinyal jual ketika death cross terjadi, untuk menangkap perubahan tren harga. Strategi ini juga menggabungkan kondisi price breakout EMA untuk menyaring sinyal palsu.

Logika Strategi

Strategi EMA dua golden cross breakout terutama didasarkan pada logika berikut:

  1. Gunakan EMA jangka pendek (garis 26 hari) untuk menangkap tren jangka pendek dan EMA jangka panjang (garis 200 hari) untuk menentukan arah tren jangka panjang.

  2. Ketika EMA periode yang lebih pendek melintasi EMA periode yang lebih lama, ini disebut golden cross, yang menunjukkan perubahan tren dari tren menurun ke tren naik, dan sinyal beli dihasilkan.

  3. Ketika EMA periode yang lebih pendek melintasi di bawah EMA periode yang lebih lama, ini disebut death cross, yang menunjukkan perubahan tren dari tren naik ke tren turun, dan sinyal jual dihasilkan.

  4. Ketika sinyal silang terjadi, harga juga perlu menembus EMA untuk menyaring sinyal palsu dan memastikan sinyal perdagangan yang andal.

  5. Menerapkan teknik stop loss dan mengambil keuntungan untuk mengendalikan risiko perdagangan dan mengunci keuntungan.

Analisis Keuntungan

Strategi EMA dua golden cross breakout memiliki keuntungan berikut:

  1. Menggunakan EMA ganda untuk menentukan tren harga dan sinyal silang dapat secara efektif melacak pergerakan pasar.

  2. Menggabungkan sinyal filter price breakout mencegah tertipu oleh sinyal silang palsu.

  3. Mengadopsi logika perdagangan yang sederhana dan jelas, mudah dimengerti dan diterapkan.

  4. Terapkan pada produk dan kerangka waktu yang berbeda, fleksibel dan serbaguna.

  5. Parameter EMA yang dapat dikonfigurasi dan kondisi stop loss/take profit membuatnya sangat fleksibel.

Analisis Risiko

Strategi EMA double gold cross breakout juga memiliki risiko berikut:

  1. Pembagian yang sering dapat terjadi ketika harga bergesekan, menghasilkan sinyal perdagangan yang berlebihan.

  2. Dual EMA kadang-kadang memiliki kinerja yang tertinggal dan tidak dapat merespons perubahan harga tepat waktu.

  3. Stop loss point yang terlalu kecil dapat dengan mudah dipicu oleh sedikit fluktuasi harga, sementara take profit point yang terlalu besar dapat kehilangan beberapa keuntungan.

  4. Penghakiman tren utama harus dibuat sebelum sinyal perdagangan untuk menghindari perdagangan melawan tren.

Arahan Optimasi

Strategi EMA dua golden cross breakout dapat dioptimalkan dalam aspek berikut:

  1. Menerapkan algoritma pembelajaran mesin untuk secara dinamis mengoptimalkan parameter EMA sehingga mereka dapat lebih beradaptasi dengan fluktuasi harga.

  2. Tambahkan sinyal konfirmasi lainnya seperti volume, Bollinger Bands dll untuk meningkatkan kualitas sinyal.

  3. Menggabungkan prediksi pembelajaran mendalam dari jalur harga untuk menempatkan stop loss dan mengambil keuntungan lebih dekat ke tingkat optimal.

  4. Mengoptimalkan strategi khusus untuk data frekuensi tinggi untuk meningkatkan presisi sinyal.

  5. Tambahkan mekanisme penyesuaian adaptif untuk stop loss untuk mencegah stop out yang berlebihan.

Kesimpulan

Singkatnya, strategi penembusan silang emas EMA ganda menggunakan sinyal penembusan EMA untuk menentukan tren harga dan titik balik, dan menggabungkan filter penembusan harga untuk menghindari sinyal palsu. Ini adalah tren yang dapat diandalkan, stabil dan mudah diterapkan setelah strategi perdagangan. Peningkatan lebih lanjut dapat dilakukan melalui optimasi parameter, penyaringan sinyal dan penyesuaian adaptif. Logika perdagangan ini sederhana dan intuitif, cocok untuk semua jenis investor, dan karenanya merupakan salah satu strategi perdagangan algoritmik mendasar.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Buy/Sell Signal", shorttitle="EMABuySell", overlay=true)

// === INPUTS ===
src = input(close)
ema1Length = input(26, title='EMA-1')
ema2Length = input(200, title='EMA-2')

EMASig = input(true, title="Show EMA ?")
takeProfitPercent = input(2.0, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100

pema1 = ta.ema(src, ema1Length)
pema2 = ta.ema(src, ema2Length)

// Plotting EMAs
plot(EMASig ? pema1 : na, title='EMA-1', color=color.new(color.blue, 0), linewidth=2)
plot(EMASig ? pema2 : na, title='EMA-2', color=color.new(color.orange, 0), linewidth=2)

// EMA Crossover Buy Signal
EMACrossoverLong = ta.crossover(pema1, pema2)

// EMA Crossunder Short Signal
EMACrossoverShort = ta.crossunder(pema1, pema2)

// Crossover above EMA-200 Long Signal
CrossoverAboveEMA200 = ta.crossover(close, pema2)

// Trading logic for Long
if ((EMACrossoverLong and close > pema1 and close > pema2) or CrossoverAboveEMA200)
    strategy.entry("Buy", strategy.long, qty=1)

// Take Profit logic for Long
longCondition = close >= strategy.position_avg_price * (1 + takeProfitPercent)
if (strategy.position_size > 0 and longCondition)
    strategy.close("Buy")

// Stop Loss logic for Long
stopLossConditionLong = ta.crossunder(pema1, pema2)
if (strategy.position_size > 0 and stopLossConditionLong)
    strategy.close("Buy")

// Trading logic for Short
if (EMACrossoverShort and close < pema1 and close < pema2)
    strategy.entry("Sell", strategy.short, qty=1)

// Take Profit logic for Short
shortCondition = close <= strategy.position_avg_price * (1 - takeProfitPercent)
if (strategy.position_size < 0 and shortCondition)
    strategy.close("Sell")

// Stop Loss logic for Short
stopLossConditionShort = ta.crossover(pema1, pema2)
if (strategy.position_size < 0 and stopLossConditionShort)
    strategy.close("Sell")

// Visual Signals
plotshape(series=EMACrossoverLong or CrossoverAboveEMA200, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=EMACrossoverShort, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)


Lebih banyak