Strategi dagangan mengikut trend berdasarkan pengesahan isyarat berbilang Granville dan MACD

EMA MACD GC(Golden Cross) SL(Stop Loss) TP(Take Profit)
Tarikh penciptaan: 2025-02-20 11:38:15 Akhirnya diubah suai: 2025-02-27 17:46:54
Salin: 2 Bilangan klik: 323
2
fokus pada
319
Pengikut

Strategi dagangan mengikut trend berdasarkan pengesahan isyarat berbilang Granville dan MACD Strategi dagangan mengikut trend berdasarkan pengesahan isyarat berbilang Granville dan MACD

Gambaran keseluruhan

Strategi ini adalah sistem pengesahan perdagangan pelbagai isyarat yang menggabungkan teori pembalikan trend Granville dengan penunjuk MACD. Idea utama strategi ini adalah untuk menilai pembalikan trend yang berpotensi melalui hubungan harga dengan garis rata-rata, dan menggunakan pengesahan pelbagai isyarat dari penunjuk MACD untuk memastikan kebolehpercayaan perdagangan.

Prinsip Strategi

Proses pelaksanaan strategi ini terdiri daripada empat langkah penting:

  1. Isyarat pembalikan Granville disahkan: memantau sama ada harga telah menembusi ke atas dari bawah garis purata EMA, yang menunjukkan kemungkinan pembalikan trend.
  2. Pengesahan garpu emas pertama MACD: Selepas isyarat pembalikan Granville, menunggu isyarat garpu emas MACD muncul, yang merupakan pengesahan garpu emas kedua.
  3. Penembusan MACD disahkan: mengesahkan titik tertinggi ketika garisan MACD menembusi garpu pertama, yang menunjukkan bahawa momentum kenaikan terus meningkat.
  4. MACD langkah semula kedua: menunggu MACD untuk langkah semula selepas penembusan dan sekali lagi melintasi garis isyarat, ini adalah isyarat masuk akhir.

Penetapan stop loss menggunakan kaedah penyesuaian dinamik berdasarkan lebar gelombang garis K terbalik. Penetapan stop loss ditetapkan pada titik terendah garis K terbalik, dan penetapan stop loss ditetapkan sebanyak 1.618 kali lebar gelombang garis K terbalik, yang sesuai dengan prinsip pengembangan Fibonacci.

Kelebihan Strategik

  1. Mekanisme pengesahan berganda: Mengurangkan risiko isyarat palsu dengan menggabungkan pergerakan harga, indikator trend, dan indikator momentum.
  2. Pengurusan Risiko Dinamis: Mengatur stop loss berdasarkan turun naik pasaran sebenar, menjadikan pengurusan risiko lebih fleksibel.
  3. Pengesahan trend berterusan: Pengesahan pelbagai isyarat melalui MACD meningkatkan ketepatan menangkap trend berterusan.
  4. Adaptif: Parameter strategi boleh disesuaikan secara optimum mengikut keadaan pasaran dan kitaran masa yang berbeza.

Risiko Strategik

  1. Keterlambatan isyarat: mekanisme pengesahan berganda mungkin menyebabkan kelewatan masa masuk yang relatif, yang menjejaskan sebahagian daripada potensi pendapatan.
  2. Pertunjukan pasaran selang-selang: Dalam pasaran penyusunan mendatar, penembusan palsu yang kerap boleh menyebabkan kerugian berhenti berturut-turut.
  3. Terlalu bergantung pada indikator teknikal: Analisis teknikal semata-mata mungkin tidak berfungsi apabila sentimen pasaran bergelombang.
  4. Sensitiviti parameter: Dalam keadaan pasaran yang berbeza, parameter mungkin perlu disesuaikan dengan kerap untuk mengekalkan keberkesanan strategi.

Arah pengoptimuman strategi

  1. Klasifikasi persekitaran pasaran: memperkenalkan indikator kadar turun naik, menggunakan konfigurasi parameter yang berbeza dalam keadaan pasaran yang berbeza.
  2. Pengoptimuman masa masuk: Anda boleh mempertimbangkan untuk meningkatkan pengesahan jumlah transaksi pada MACD kedua untuk meningkatkan kebolehpercayaan isyarat.
  3. Penetapan dan penangguhan kerugian yang boleh disesuaikan mengikut kadar turun naik pasaran
  4. Meningkatkan faktor sentimen pasaran: Menggabungkan penunjuk sentimen pasaran untuk menyesuaikan strategi secara radikal pada masa sentimen yang melampau.

ringkaskan

Strategi ini membina sistem perdagangan yang agak lengkap dengan menggabungkan teori analisis teknikal klasik dan kaedah perdagangan kuantitatif moden. Mekanisme pengesahan pelbagai isyarat memberikan kebolehpercayaan perdagangan yang lebih baik, dan kaedah pengurusan risiko yang dinamik juga menjadikan strategi ini sesuai. Walaupun terdapat beberapa masalah ketinggalan, strategi ini masih mempunyai nilai dan potensi pembangunan yang baik melalui pengoptimuman dan penyesuaian parameter yang berterusan.

Kod sumber strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Granville + MACD Strategy", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ■ Parameter Settings
emaPeriod = input.int(20, "EMA Period for Granville", minval=1)
fastLen   = input.int(12, "MACD Fast Period", minval=1)
slowLen   = input.int(26, "MACD Slow Period", minval=1)
signalLen = input.int(9,  "MACD Signal Period", minval=1)

// ■ Calculate EMA (for Granville reversal detection)
ema_val = ta.ema(close, emaPeriod)

// ■ Granville Reversal Detection (e.g., price crosses above EMA from below)
granvilleReversal = ta.crossover(close, ema_val)

// ■ Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLen, slowLen, signalLen)

// ■ State management variables (to manage state transitions)
var bool   granvilleDone   = false    // Reversal bar confirmed flag
var float  granvilleLow    = na       // Low of the reversal bar (used for SL)
var float  granvilleRange  = na       // Range of the reversal bar (used for TP calculation)
var bool   macdGC_done     = false    // First MACD Golden Cross confirmed
var int    goldenCrossBar  = na       // Bar index of the first MACD Golden Cross
var float  initialMacdHigh = na       // MACD value at the Golden Cross (used for break detection)
var bool   breakoutDone    = false    // MACD line breaks the initial Golden Cross MACD value

// ■ (1) Granville Reversal Detection
if granvilleReversal
    granvilleDone  := true
    granvilleLow   := low             // Low of the reversal bar (SL)
    granvilleRange := high - low      // Range of the reversal bar (used for TP calculation)
    // Reset MACD-related states
    macdGC_done     := false
    breakoutDone    := false
    initialMacdHigh := na
    goldenCrossBar  := na

// ■ (2) MACD Golden Cross (first signal) detection
if granvilleDone and (not macdGC_done) and ta.crossover(macdLine, signalLine)
    macdGC_done    := true
    goldenCrossBar := bar_index
    initialMacdHigh:= macdLine

// ■ (3) Check if MACD line breaks the initial MACD value at the Golden Cross
if macdGC_done and (not breakoutDone) and (macdLine > initialMacdHigh)
    breakoutDone := true

// ■ (4) When MACD retests and crosses above the signal line again, it's the entry timing
// ※ Check for a crossover after the first Golden Cross bar
entryCondition = granvilleDone and macdGC_done and breakoutDone and (bar_index > goldenCrossBar) and ta.crossover(macdLine, signalLine)

// ■ TP and SL settings at entry
if entryCondition
    entryPrice = close
    tpPrice = entryPrice + granvilleRange * 1.618
    slPrice = granvilleLow
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry="Long", stop=slPrice, limit=tpPrice)
    // Reset states after entry (for the next entry)
    granvilleDone   := false
    macdGC_done     := false
    breakoutDone    := false
    initialMacdHigh := na
    goldenCrossBar  := na

// ■ Plotting (for reference)
// Display the EMA on the price chart (with fixed title)
plot(ema_val, color=color.orange, title="EMA (20)")

// Plot MACD and Signal in a separate window (with fixed titles)
plot(macdLine, color=color.blue, title="MACD")
plot(signalLine, color=color.red, title="Signal")