Golden Cross dan Death Cross Double Moving Average Strategi Penjejakan Trend MACD


Tarikh penciptaan: 2023-12-22 14:17:34 Akhirnya diubah suai: 2023-12-22 14:17:34
Salin: 0 Bilangan klik: 717
1
fokus pada
1623
Pengikut

Golden Cross dan Death Cross Double Moving Average Strategi Penjejakan Trend MACD

Gambaran keseluruhan

Strategi ini menggunakan pengiraan purata bergerak cepat, purata bergerak perlahan, dan indikator MACD untuk menilai trend harga, membina isyarat perdagangan garpu emas dan garpu emas, dan menggabungkan hentian dan hentian dan hentian untuk mengunci keuntungan, untuk mengesan trend secara berterusan.

Prinsip Strategi

Strategi ini dibina berdasarkan tiga indikator utama:

Pertama, kira rata-rata bergerak cepat dan dua rata-rata bergerak perlahan. Ia menghasilkan isyarat beli apabila ia melintasi dua rata-rata bergerak perlahan di atas rata-rata bergerak cepat; ia menghasilkan isyarat jual apabila ia melintasi dua rata-rata bergerak perlahan di bawah rata-rata bergerak cepat. Ia dapat menentukan hubungan antara trend harga jangka pendek dan trend jangka panjang, mewujudkan perdagangan mata wang.

Kedua, mengira indikator MACD, termasuk garis MACD, garis isyarat dan grafik lurus. Ia adalah indikator multi-kepala apabila grafik lurus MACD> 0 dan indikator kosong apabila grafik lurus MACD < 0. Ini membantu menentukan kebolehpercayaan isyarat garpu emas.

Akhirnya, gabungan dengan Stop Loss Tracking Stop Loss Mechanism. Menggunakan Stop Loss dan Stop Loss Point untuk mengunci keuntungan dan mengawal risiko; Menggunakan Tracking Stop Loss untuk mengesan keuntungan.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Indeks MACD, yang digunakan untuk menentukan trend harga;
  2. Tetapan titik hentian untuk mengelakkan peningkatan kerugian;
  3. Menjejaki pergerakan automatik henti rugi, terus-menerus mengunci keuntungan, dan memaksimumkan keuntungan trend;
  4. Tetapan parameter fleksibel, boleh disesuaikan dengan tempoh purata bergerak dan sebagainya.

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Ia juga boleh menyebabkan penurunan harga yang tidak menentu.
  2. Kerosakan dalam operasi jangka panjang memerlukan pemantauan berterusan dan penyesuaian yang tepat pada masanya;
  3. Tetapan parameter yang tidak betul boleh menyebabkan transaksi yang kerap atau kehilangan borang.

Penyelesaian untuk menghadapi risiko:

  1. Menetapkan titik henti yang munasabah untuk mengelakkan hentian yang tidak perlu;
  2. Semak dan optimumkan tetapan parameter;
  3. Penglibatan manusia dan pemantauan status.

Arah pengoptimuman strategi

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Menambah lebih banyak pengukuran, seperti RSI, untuk menjadikan isyarat lebih dipercayai;
  2. Mengoptimumkan parameter purata bergerak agar lebih sesuai dengan ciri-ciri pelbagai jenis;
  3. Menambah algoritma untuk mengesan pergerakan stop-loss, yang membolehkan stop-loss berubah mengikut pasaran;
  4. Tambah modul pengurusan wang seperti jumlah pembukaan dan kawalan kedudukan.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi yang mudah dan berkesan untuk menentukan trend menggunakan mata wang dan indikator MACD, untuk menjejaki stop loss. Kelebihannya adalah bahawa trend dijejaki dan keuntungan dikunci, dapat disesuaikan dengan baik, sesuai untuk pelbagai jenis, merupakan strategi pengoptimuman parameter yang umum. Terdapat risiko dan ruang untuk pengoptimuman, tetapi secara keseluruhan merupakan strategi perdagangan yang dipercayai dan praktikal.

Kod 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)