Sumber daya yang dimuat... Pemuatan...

Strategi Momentum Tren Harga-Volume yang Ditingkatkan

Penulis:ChaoZhang, Tanggal: 2025-01-10 15:40:37
Tag:MACDATRMAEMASMA

 Enhanced Price-Volume Trend Momentum Strategy

Gambaran umum

Strategi ini adalah sistem perdagangan berdasarkan indikator MACD dan hubungan harga-volume, yang mengidentifikasi titik pembalikan tren pasar dengan mengamati perubahan pola histogram MACD. Strategi ini menggunakan mekanisme pengambilan keuntungan dan stop-loss dinamis menggunakan indikator ATR untuk beradaptasi dengan volatilitas pasar dan mengontrol risiko secara efektif.

Prinsip Strategi

Logika inti dari strategi ini dibangun pada perubahan warna histogram MACD, dikombinasikan dengan sistem EMA dan SMA bergerak ganda. 1. Menghitung nilai MACD menggunakan rata-rata bergerak cepat (12) dan lambat (26) 2. MACD halus dengan garis sinyal 9 periode 3. Memantau perubahan kedalaman warna dalam histogram MACD Menetapkan target keuntungan dinamis dan menghentikan kerugian menggunakan ATR 14 periode

Keuntungan Strategi

  1. Kombinasi indikator ilmiah, dengan MACD secara efektif menangkap tren dan ATR beradaptasi dengan volatilitas
  2. Pengaturan profit-taking dan stop-loss yang fleksibel yang dapat disesuaikan melalui parameter multiplier untuk karakteristik pasar yang berbeda
  3. Sinyal perdagangan yang jelas dengan waktu masuk yang intuitif berdasarkan perubahan warna histogram
  4. Mengakomodasi perdagangan panjang dan pendek, meningkatkan fleksibilitas strategi dan peluang keuntungan

Risiko Strategi

  1. MACD sebagai indikator yang tertinggal mungkin kehilangan titik masuk yang optimal dalam pergerakan pasar yang cepat
  2. Dapat menghasilkan sinyal palsu di berbagai pasar, menyebabkan perdagangan yang sering
  3. Pengaturan pengganda ATR yang tidak benar dapat menyebabkan stop terlalu longgar atau terlalu ketat
  4. Membutuhkan pengelolaan uang yang tepat untuk menghindari kerugian perdagangan tunggal yang berlebihan

Arah Optimasi Strategi

  1. Mengintegrasikan sinyal konfirmasi volume untuk meningkatkan keandalan sinyal
  2. Tambahkan filter tren untuk mengurangi sinyal palsu di pasar yang berbeda
  3. Mengoptimalkan pengganda profit-taking dan stop-loss dengan penyesuaian dinamis berdasarkan kerangka waktu yang berbeda
  4. Sertakan penyaringan volatilitas untuk mengurangi frekuensi perdagangan selama periode volatilitas tinggi
  5. Pertimbangkan untuk menerapkan filter waktu untuk menghindari perdagangan selama periode yang tidak menguntungkan

Ringkasan

Ini adalah strategi komprehensif yang menggabungkan indikator analisis teknis klasik MACD dengan metode pengendalian risiko modern. Ini menangkap pergeseran momentum pasar dengan mengamati perubahan pola histogram MACD sambil menggunakan ATR untuk pengendalian risiko dinamis. Strategi ini dirancang dengan baik dengan logika operasional yang jelas dan nilai praktis.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy(title="軒割MACD 空心量能不足策略", shorttitle="軒割MACD 空心量能不足策略", overlay=true)

//=== 1) 參數 ===//
fast_length   = input.int(title="Fast Length",        defval=12)
slow_length   = input.int(title="Slow Length",        defval=26)
src           = input.source(title="MACD Source",     defval=close)
signal_length = input.int(title="Signal Smoothing",   defval=9,  minval=1, maxval=50)
sma_source    = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA","EMA"])
sma_signal    = input.string(title="Signal MA Type",     defval="EMA", options=["SMA","EMA"])

// 啟用多單 / 空單
useLong       = input.bool(title="啟用多單?(底部紅色)", defval=true)
useShort      = input.bool(title="啟用空單?(頂部綠色)", defval=true)

// 止盈倍數 (1~10倍 ATR)
tpATRmult     = input.int(title="止盈 ATR 倍數 (1~10)", defval=10, minval=1, maxval=500)
// 止損倍數 (1~10倍 ATR)
slATRmult     = input.int(title="止損 ATR 倍數 (1~10)", defval=3, minval=1, maxval=500)

//=== 2) MACD 計算 ===//
fast_ma  = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma  = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd     = fast_ma - slow_ma
signal   = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist     = macd - signal

//=== 3) 判斷深色/淺色(用於變化訊號)===//
darkGreen  = hist >= 0 and hist <= hist[1]   // 上方,柱子縮小或持平
lightGreen = hist >= 0 and hist >  hist[1]   // 上方,柱子變大
darkRed    = hist <  0 and hist <= hist[1]   // 下方,柱子(絕對值)變大或持平
lightRed   = hist <  0 and hist >  hist[1]   // 下方,柱子(絕對值)變小

// 由「深 → 淺」是否發生在上一根
colorChangeToLightGreen = darkGreen[1] and lightGreen
colorChangeToLightRed   = darkRed[1]   and lightRed

//=== 4) ATR 計算 (用於止盈止損) ===//
atrPeriod  = 14
atrValue   = ta.atr(atrPeriod)

//=== 5) 多單策略:深紅 → 淺紅 (底部紅色) ===//
if useLong and colorChangeToLightRed
    // 以當前 K 線 low - ATR倍數 作為多單止損
    longStopLoss   = low - (slATRmult * atrValue)
    // 以當前 close + ATR倍數 作為多單止盈
    longTakeProfit = close + (tpATRmult * atrValue)

    // 進多單
    strategy.entry("Long Entry", strategy.long, comment="多", qty=1)
    strategy.exit("平多", "Long Entry", stop=longStopLoss, limit=longTakeProfit)

//=== 6) 空單策略:深綠 → 淺綠 (頂部綠色) ===//
if useShort and colorChangeToLightGreen
    // 以當前 K 線 high + ATR倍數 作為空單止損
    shortStopLoss   = high + (slATRmult * atrValue)
    // 以當前 close - ATR倍數 作為空單止盈
    shortTakeProfit = close - (tpATRmult * atrValue)

    // 進空單
    strategy.entry("Short Entry", strategy.short, comment="空", qty=1)
    strategy.exit("平空", "Short Entry", stop=shortStopLoss, limit=shortTakeProfit)

//=== 7) 繪製 MACD 與直方圖 ===//
hline(0, "Zero Line", color=color.new(#787B86, 50))

// 長條圖顏色:
//   - 上方 (hist >= 0) 時:hist 比前一根大 (淺綠) 或小 (深綠)
//   - 下方 (hist < 0)  時:hist 比前一根大 (淺紅) 或小 (深紅)
plot(hist,title="Histogram",style=plot.style_columns,color = hist >= 0? (hist > hist[1]  ? #26A69A : #B2DFDB)   : (hist > hist[1]  ? #FFCDD2 : #FF5252)  )

// 繪製 MACD 與 Signal
plot(macd,   title="MACD",   color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)


Berkaitan

Lebih banyak