Strategi mengikuti tren multi-kerangka waktu berdasarkan EMA dan MACD


Tanggal Pembuatan: 2024-01-05 11:16:17 Akhirnya memodifikasi: 2024-01-05 11:16:17
menyalin: 0 Jumlah klik: 640
1
fokus pada
1621
Pengikut

Strategi mengikuti tren multi-kerangka waktu berdasarkan EMA dan MACD

Ringkasan

Strategi ini menggunakan EMA Average and MACD indicator untuk mengidentifikasi sinyal tren dalam beberapa frame waktu untuk menangkap tren garis tengah dan panjang. Strategi ini juga menggunakan ATR indicator untuk mengatur stop loss stop loss dan mengendalikan risiko volatilitas.

Prinsip Strategi

Strategi menilai arah tren jangka panjang dan menengah dengan garis EMA 50 hari dan garis EMA 100 hari. Ketika tren jangka pendek diidentifikasi oleh indikator MACD, menilai apakah arah tren jangka pendek konsisten dengan arah tren jangka panjang dan menengah. Jika konsisten, lakukan operasi pelacakan tren.

Secara khusus, ketika MACD melewati jalur lambat di jalur cepat dan menutup > 50 hari EMA dan menutup > 100 hari EMA, lakukan lebih banyak; ketika MACD melewati jalur lambat di jalur cepat dan menutup < 50 hari EMA dan menutup < 100 hari EMA, lakukan kosong.

Selain itu, strategi menggunakan indikator ATR untuk menghitung rentang fluktuasi, dan menetapkan harga stop loss. Dengan ATR beberapa kali lipat dari harga tutup sebagai stop loss, dengan ATR beberapa kali lipat dari harga tutup sebagai stop loss.

Analisis Keunggulan

  1. Kombinasi EMA Mean Line dan MACD Indicator, dapat mengidentifikasi sinyal tren dalam beberapa kerangka waktu, untuk mencegah kehilangan tren garis panjang
  2. Menggunakan indikator ATR untuk mengatur stop loss sesuai dengan fluktuasi pasar, dapat mengontrol risiko secara efektif
  3. Menghindari zona netral dan mengurangi kerugian yang tidak perlu

Analisis risiko

  1. EMA rata-rata terbelakang dan mungkin melewatkan titik balik
  2. Indikator MACD memiliki beberapa periode waktu, parameter yang ditetapkan dapat mempengaruhi hasil
  3. Rentang ATR tidak dapat sepenuhnya mewakili fluktuasi harga di masa depan dan tidak dapat sepenuhnya menghindari risiko.

Tanggapan:

  1. Sinyal konfirmasi, dikombinasikan dengan indikator lain, untuk menghindari masalah keterlambatan EMA
  2. Menyesuaikan parameter MACD, optimalkan hasil
  3. Atur ATR secara wajar untuk mengendalikan kerugian maksimum

Arah optimasi

  1. Uji kombinasi siklus rata-rata EMA yang berbeda
  2. Optimalkan pengaturan parameter MACD
  3. Menggunakan metode pembelajaran mesin untuk secara otomatis menemukan stop loss stop loss ATR optimal

Meringkaskan

Strategi ini memanfaatkan indikator seperti EMA, MACD dan ATR untuk melakukan operasi pelacakan tren dalam kerangka waktu yang lebih banyak. Dengan pengoptimalan parameter, diharapkan untuk mendapatkan tingkat keuntungan strategi yang lebih baik. Selain itu, perlu juga mencegah risiko seperti keterlambatan indikator, penyesuaian parameter dan kontrol fluktuasi yang tidak tepat, perlu terus dioptimalkan dan ditingkatkan.

Kode Sumber Strategi
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-50, EMA-100, and MACD Strategy with ATR for Stop Loss/Profit", overlay=true)

// MACD hesaplama
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// EMA-50 ve EMA-100 hesaplama
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)

// ATR hesaplama
atrLength = input(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Take Profit ve Stop Loss çoklayıcıları
takeProfitMultiplier = input(3.0, title="Take Profit Multiplier") // TP, 3 katı ATR
stopLossMultiplier = input(1.0, title="Stop Loss Multiplier")

// Long Pozisyon Koşulları
longCondition = ta.crossover(macdLine, signalLine) and close > ema50 and close > ema100

// Short Pozisyon Koşulları
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema50 and close < ema100

// Take Profit ve Stop Loss Seviyeleri
takeProfitLevel = close + takeProfitMultiplier * atrValue
stopLossLevel = close - stopLossMultiplier * atrValue

// Long Pozisyon İşlemleri
strategy.entry("Long", strategy.long, when=longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)

// Short Pozisyon İşlemleri
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)

// Grafikte Gösterme
plot(ema50, color=color.blue, title="EMA-50")
plot(ema100, color=color.red, title="EMA-100")
hline(0, "Zero Line", color=color.gray)