Sumber dimuat naik... memuat...

Dual Timeframe Trend Reversal Candlestick Pattern Strategi Dagangan Kuantitatif

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

 Dual Timeframe Trend Reversal Candlestick Pattern Quantitative Trading Strategy

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif berdasarkan dua corak candlestick klasik: Hammer dan Hanging Man. Ia meramalkan titik perubahan pasaran yang berpotensi dengan mengenal pasti corak pembalikan ini. Sistem ini menggabungkan beberapa penunjuk teknikal untuk mengesahkan kesahihan isyarat, termasuk hubungan antara badan candlestick dan bayang-bayang, arah trend, dan elemen lain, mencapai penangkapan tepat titik pembalikan pasaran.

Prinsip Strategi

Logik teras strategi adalah untuk mengenal pasti dua corak candlestick utama secara programatik: 1. Hammer: Muncul dalam trend menurun, menunjukkan potensi pembalikan ke atas. dicirikan oleh badan kecil, bayangan bawah yang panjang (sekurang-kurangnya dua kali panjang badan), dan sedikit atau tidak ada bayangan atas. 2. Hanging Man: Muncul dalam trend menaik, menunjukkan potensi pembalikan ke bawah. Ciri-ciri serupa dengan Hammer tetapi muncul di lokasi yang berbeza dengan implikasi yang bertentangan.

Strategi ini mengukur corak ini melalui parameter yang ketat, termasuk: - Penambah panjang badan lilin minimum - Rasio bawah bayangan ke ketinggian lilin - Tempoh penahan

Kelebihan Strategi

  1. Pengesanan Sistematik: Mengesan dengan tepat isyarat pembalikan pasaran secara programatik, mengelakkan penilaian manusia yang subjektif.
  2. Risiko Terkawal: Menetapkan tempoh pegangan yang jelas, mengelakkan risiko daripada pegangan kedudukan yang berlebihan.
  3. Visualisasi Isyarat: Memaparkan isyarat perdagangan secara intuitif pada carta untuk analisis dan pengoptimuman.
  4. Parameter Fleksibel: Boleh menyesuaikan parameter berdasarkan keadaan pasaran yang berbeza, meningkatkan kesesuaian strategi.

Risiko Strategi

  1. Risiko pecah palsu: corak pembalikan boleh menghasilkan isyarat palsu, yang memerlukan pengesahan dari penunjuk teknikal lain.
  2. Risiko Masa: Tempoh penahan tetap mungkin tidak sepenuhnya menangkap potensi pergerakan harga.
  3. Kebergantungan persekitaran pasaran: Boleh menghasilkan isyarat palsu yang berlebihan di pasaran yang berbeza.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan Penapis Trend: Tambah penunjuk seperti purata bergerak untuk menapis trend dan meningkatkan kualiti isyarat.
  2. Tempoh Simpan Dinamik: Sesuaikan masa simpan berdasarkan turun naik pasaran.
  3. Pengesahan pelbagai jangka masa: Melaksanakan mekanisme pengesahan trend jangka masa yang lebih tinggi.
  4. Pengoptimuman Stop Loss: Tambah mekanisme stop loss dinamik untuk meningkatkan kawalan risiko.

Ringkasan

Strategi ini melaksanakan teori analisis teknikal klasik secara sistematik melalui pengukuran kuantitatif, menunjukkan nilai praktikal yang kuat. Melalui pengoptimuman parameter dan penyempurnaan mekanisme kawalan risiko, strategi ini dapat mengekalkan prestasi yang stabil dalam persekitaran pasaran yang berbeza. Reka bentuk modular juga menyediakan asas yang kukuh untuk pengoptimuman 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 lanjut