Sumber dimuat naik... memuat...

Golden Cross Dead Cross Dual Moving Average Strategi Pengesanan Trend MACD

Penulis:ChaoZhang, Tarikh: 2023-12-22 14:17:34
Tag:

img

Ringkasan

Strategi ini menilai trend harga melalui pengiraan purata bergerak pantas, purata bergerak perlahan, dan penunjuk MACD, dan membina isyarat perdagangan salib emas dan salib mati.

Logika Strategi

Strategi ini dibina terutamanya berdasarkan tiga penunjuk.

Pertama, ia mengira purata bergerak pantas dan dua purata bergerak perlahan. Apabila MA pantas melebihi dua MA perlahan, isyarat beli dihasilkan. Apabila MA pantas turun di bawah dua MA perlahan, isyarat jual dihasilkan. Ini menilai hubungan antara trend jangka pendek dan jangka panjang untuk merealisasikan perdagangan salib emas dan salib mati.

Kedua, ia mengira penunjuk MACD, termasuk garis MACD, garis isyarat dan histogram. Apabila histogram MACD > 0, ia adalah penunjuk bullish; apabila histogram MACD < 0, ia adalah penunjuk bearish. Ini membantu menilai kebolehpercayaan isyarat salib emas dan salib mati.

Akhirnya, ia menggabungkan mekanisme mengambil keuntungan, menghentikan kerugian dan menghentikan kerugian. titik mengambil keuntungan dan menghentikan kerugian digunakan untuk mengunci keuntungan dan mengawal risiko; menghentikan kerugian digunakan untuk terus mengesan keuntungan.

Kelebihan

Kelebihan strategi ini termasuk:

  1. Golden Cross, Dead Cross digabungkan dengan MACD dengan boleh dipercayai menilai trend harga.
  2. Titik Stop Loss menghalang kerugian yang diperbesar.
  3. Stop Loss Trailing bergerak secara automatik untuk mengunci keuntungan secara berterusan dan memaksimumkan keuntungan trend.
  4. Tetapan parameter yang fleksibel seperti tempoh purata bergerak yang disesuaikan.

Risiko

Terdapat juga beberapa risiko:

  1. kejutan harga boleh mencetuskan titik stop loss.
  2. Pergerakan jangka panjang penangguhan kehilangan memerlukan pemantauan berterusan dan penyesuaian tepat pada masanya.
  3. Tetapan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau hilang.

Penyelesaian adalah:

  1. Tetapkan titik stop loss yang betul untuk mengelakkan stop loss yang tidak perlu.
  2. Periksa dan optimumkan tetapan parameter secara berkala.
  3. Intervensi manual dan pemantauan status.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dari aspek berikut:

  1. Tambah lebih banyak penunjuk seperti RSI untuk membuat isyarat lebih boleh dipercayai.
  2. Mengoptimumkan parameter purata bergerak untuk menyesuaikan instrumen perdagangan yang berbeza.
  3. Tambah algoritma hentian dinamik untuk membuat titik hentian berubah dengan pasaran.
  4. Tambah saiz kedudukan dan modul pengurusan risiko.

Ringkasan

Ringkasnya, ini adalah strategi yang mudah namun berkesan yang menggunakan salib emas, salib mati dan MACD untuk menilai trend dan merealisasikan stop loss. Kelebihannya adalah penjejakan trend dan kunci keuntungan dengan penyesuaian yang tinggi. Ini adalah strategi pengoptimuman parameter universal yang sesuai untuk instrumen perdagangan yang berbeza. Masih ada beberapa risiko dan ruang pengoptimuman, tetapi secara keseluruhan ia adalah strategi perdagangan yang boleh dipercayai dan praktikal.


/*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)

Lebih lanjut