Sumber daya yang dimuat... Pemuatan...

Dual Timeframe Trend Reversal Candlestick Pattern Strategi Trading Kuantitatif

Penulis:ChaoZhang, Tanggal: 2025-01-10 15:47:53
Tag:MA

 Dual Timeframe Trend Reversal Candlestick Pattern Quantitative Trading Strategy

Gambaran umum

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada dua pola candlestick klasik: Hammer dan Hanging Man. Ini memprediksi titik balik pasar potensial dengan mengidentifikasi pola pembalikan ini. Sistem ini menggabungkan beberapa indikator teknis untuk mengkonfirmasi validitas sinyal, termasuk hubungan antara tubuh candlestick dan bayangan, arah tren, dan elemen lain, mencapai penangkapan yang tepat dari titik pembalikan pasar.

Prinsip Strategi

Logika inti dari strategi ini adalah untuk mengidentifikasi dua pola candlestick kunci secara programatis: 1. Hammer: Terlihat pada tren menurun, menunjukkan potensi pembalikan ke atas. 2. Hanging Man: Tampak dalam tren naik, menunjukkan potensi pembalikan ke bawah. Karakteristik serupa dengan Hammer tetapi muncul di lokasi yang berbeda dengan implikasi yang berlawanan.

Strategi mengukur pola-pola ini melalui parameter yang ketat, termasuk: - Multiplikator panjang tubuh lilin minimum - Rasio bawah bayangan ke tinggi lilin - Periode penyimpanan

Keuntungan Strategi

  1. Identifikasi Sistematis: Mengidentifikasi sinyal pembalikan pasar secara akurat secara terprogram, menghindari penilaian manusia yang subjektif.
  2. Risiko Terkontrol: Menetapkan periode kepemilikan yang jelas, menghindari risiko dari kepemilikan posisi yang berlebihan.
  3. Visualisasi Sinyal: Menampilkan sinyal perdagangan secara intuitif pada grafik untuk analisis dan optimasi.
  4. Parameter Fleksibel: Dapat menyesuaikan parameter berdasarkan kondisi pasar yang berbeda, meningkatkan kemampuan adaptasi strategi.

Risiko Strategi

  1. Risiko pecah palsu: Pola pembalikan dapat menghasilkan sinyal palsu, yang membutuhkan konfirmasi dari indikator teknis lainnya.
  2. Risiko waktu: Periode penyimpanan tetap mungkin tidak sepenuhnya menangkap potensi pergerakan harga.
  3. Dependensi lingkungan pasar: Dapat menghasilkan sinyal palsu yang berlebihan di berbagai pasar.

Arah Optimasi Strategi

  1. Memperkenalkan Trend Filter: Tambahkan indikator seperti moving average untuk menyaring tren dan meningkatkan kualitas sinyal.
  2. Periode Penempatan Dinamis: Sesuaikan waktu penempatan berdasarkan volatilitas pasar.
  3. Konfirmasi multi-frame waktu: Mengimplementasikan mekanisme konfirmasi tren jangka waktu yang lebih tinggi.
  4. Optimasi Stop Loss: Tambahkan mekanisme stop loss dinamis untuk meningkatkan pengendalian risiko.

Ringkasan

Strategi ini menerapkan teori analisis teknis klasik secara sistematis melalui kuantifikasi, menunjukkan nilai praktis yang kuat. Melalui optimasi parameter dan penyempurnaan mekanisme kontrol risiko, strategi dapat mempertahankan kinerja yang stabil di lingkungan pasar yang berbeda. Desain modular juga memberikan dasar yang kuat untuk optimasi berikutnya.


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

//@version=6
strategy("Hammer and Hanging Man Strategy", overlay=true)

// Input parameters
length = input.int(5, title="Minimum Candle Body Length (Multiplier)", minval=1)
shadowRatio = input.float(1, title="Lower Shadow to Candle Height Ratio", minval=1.0)
holdPeriods = input.int(26, title="Hold Periods (Bars)", minval=1)  // Holding period in bars

// Function to calculate the absolute value
absValue(x) =>
    x >= 0 ? x : -x

// Function to check if it is a Hammer
isHammer() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close > open

// Function to check if it is a Hanging Man
isHangingMan() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close < open

// Detect the candles
hammer = isHammer()
hangingMan = isHangingMan()

// Trading logic: Long on Hammer, Short on Hanging Man
if hammer
    strategy.entry("Long", strategy.long)  // Long entry on Hammer

if hangingMan
    strategy.entry("Short", strategy.short)  // Short entry on Hanging Man

// Exit after X bars
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Long")

if strategy.position_size < 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Short")

// Visualization of signals
plotshape(hammer, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(hangingMan, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging Man")

Berkaitan

Lebih banyak