Strategi Pelacakan Tren MACD Rata-rata Pergerakan Ganda Golden Cross dan Death Cross


Tanggal Pembuatan: 2023-12-22 14:17:34 Akhirnya memodifikasi: 2023-12-22 14:17:34
menyalin: 0 Jumlah klik: 717
1
fokus pada
1623
Pengikut

Strategi Pelacakan Tren MACD Rata-rata Pergerakan Ganda Golden Cross dan Death Cross

Ringkasan

Strategi ini memungkinkan penilaian terhadap tren harga dengan menghitung rata-rata bergerak cepat, rata-rata bergerak lambat, dan MACD, membangun sinyal perdagangan garpu emas dan garpu mati, dan menggabungkan stop loss dan stop loss untuk mengunci keuntungan, memungkinkan pelacakan terus menerus terhadap tren.

Prinsip Strategi

Strategi ini dibangun berdasarkan tiga indikator utama:

Pertama, perhitungan rata-rata bergerak cepat dan dua rata-rata bergerak lambat. Ketika rata-rata bergerak cepat melewati dua rata-rata bergerak lambat, sinyal beli dihasilkan. Ketika rata-rata bergerak cepat melewati dua rata-rata bergerak lambat, sinyal jual dihasilkan.

Kedua, menghitung indikator MACD, termasuk garis MACD, garis sinyal, dan grafik lurus. Untuk indikator multihead jika MACD > 0, dan indikator kosong jika MACD < 0. Ini membantu menilai keandalan sinyal Goldilocks.

Terakhir, kombinasi dengan Stop Loss Tracking Stop Loss Mechanism. Menggunakan Stop Loss dan Stop Loss Point untuk mengunci keuntungan dan mengendalikan risiko. Menggunakan Tracking Stop Loss untuk melacak keuntungan.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Indeks MACD, yang digunakan untuk menentukan tren harga;
  2. Pengaturan titik berhenti untuk mencegah pertumbuhan kerugian;
  3. Menelusuri pergerakan otomatis stop loss, terus-menerus mengunci keuntungan, dan memaksimalkan keuntungan tren;
  4. Pengaturan parameter yang fleksibel, dapat disesuaikan dengan periode rata-rata bergerak dan sebagainya.

Risiko Strategis

Strategi ini juga memiliki beberapa risiko:

  1. Jika harga turun naik, ada kemungkinan stop loss akan dipicu.
  2. Hilangnya pelacakan jangka panjang membutuhkan pemantauan berkelanjutan dan penyesuaian yang tepat waktu;
  3. Pengaturan parameter yang tidak tepat dapat menyebabkan transaksi yang sering terjadi atau kehilangan formulir.

Solusi untuk menghadapi risiko:

  1. Menetapkan titik-titik penghentian yang masuk akal untuk mencegah penghentian yang tidak perlu;
  2. Periksa dan optimalkan pengaturan parameter secara teratur;
  3. Intervensi manusia dan pemantauan status.

Arah optimasi strategi

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan lebih banyak penilaian indikator, seperti RSI, untuk membuat sinyal lebih dapat diandalkan;
  2. Mengoptimalkan parameter moving average agar lebih sesuai dengan karakteristik varietas yang berbeda;
  3. Menambahkan algoritma pelacakan stop loss yang dinamis, sehingga stop loss dapat berubah sesuai dengan pasar;
  4. Meningkatkan jumlah pembukaan posisi, kontrol posisi, dan lain-lain.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi sederhana dan efektif untuk menentukan tren dengan menggunakan indikator MACD dan MACD untuk melacak stop loss. Keunggulannya adalah pelacakan tren dan penguncian keuntungan, kemampuan kustomisasi yang kuat, berlaku untuk berbagai varietas, merupakan strategi optimasi parameter generik. Ada beberapa risiko dan ruang untuk dioptimalkan, tetapi secara keseluruhan merupakan strategi perdagangan praktis yang andal.

Kode Sumber Strategi
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy('The Puria Method', shorttitle = 'Puria',overlay = true)

//=== GENERAL INPUTS ===

// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 5, title = "Fast MA Period", minval = 1)

// long ma 1
maSlow1Source   = input(defval = low, title = "Slow MA1 Source")
maSlow1Length   = input(defval = 85, title = "Slow MA Period", minval = 1)

// long ma 2
maSlow2Source   = input(defval = low, title = "Slow MA2 Source")
maSlow2Length   = input(defval = 75, title = "Slow MA Period", minval = 1)

//macd
macdFastLength   = input(defval = 12, title = "Fast MACD Period", minval = 1)
macdSlowLength   = input(defval = 26, title = "Slow MACD Period", minval = 1)
macdSmaLength   = input(defval = 9, title = "SMA MACD Period", minval = 1)

// the risk management inputs
inpTakeProfit   = input(defval = 30, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 10, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 5, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

// === SERIES SETUP ===
maFast = ema(maFastSource, maFastLength)
maSlow1 = wma(maSlow1Source, maSlow1Length)
maSlow2 = wma(maSlow2Source, maSlow2Length)
[_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength)

// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50)
slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50)

// === LOGIC ===
signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0
signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0

// ===STRATEGY===
strategy.entry(id = "Long", long = true, when = signalUp) 
strategy.entry(id = "Short", long = false, when = signalDown)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)