Sumber dimuat naik... memuat...

Strategi Dagangan Pengiktirafan Corak Candlestick Gabungan Multi-Timeframe

Penulis:ChaoZhang, Tarikh: 2024-12-11 11:04:35
Tag:JSCCPTS

img

Ringkasan

Strategi ini adalah sistem perdagangan automatik berdasarkan pengenalan corak candlestick. Ia mengintegrasikan sepuluh corak candlestick klasik, termasuk lima corak bullish (Pukul, Bullish Engulfing, Piercing Line, Morning Star, dan Three White Soldiers) dan lima corak bearish (Hanging Man, Bearish Engulfing, Dark Cloud Cover, Evening Star, dan Three Black Crows). Melalui pengenalan dan analisis dalam masa nyata corak ini, strategi ini menyediakan peniaga dengan isyarat pembalikan pasaran dan peluang perdagangan yang berpotensi.

Prinsip Strategi

Inti strategi ini terletak pada pelaksanaannya secara programatik pengenalan corak lilin yang tepat.

  1. Untuk corak candlestick tunggal (seperti Hammer, Hanging Man), penghakiman terutamanya berdasarkan nisbah antara badan dan bayangan
  2. Untuk corak dua candlestick (seperti Engulfing, Piercing Line), penghakiman dibuat dengan membandingkan kedudukan relatif candlesticks bersebelahan harga buka dan tutup
  3. Untuk tiga corak candlestick (seperti Tiga Tentera Putih, Tiga Burung Burung Hitam), pelbagai syarat mengenai arah trend dan hubungan kedudukan mesti dipenuhi secara serentak Strategi ini membolehkan pengguna secara fleksibel mengaktifkan atau melumpuhkan pengenalan corak tertentu melalui tetapan parameter.

Kelebihan Strategi

  1. Keseluruhan: Merangkumi sepuluh corak candlestick yang paling mewakili, yang mampu menangkap pelbagai jenis isyarat pembalikan pasaran
  2. Fleksibiliti: Pengguna boleh bebas memilih kombinasi corak berdasarkan keadaan pasaran dan gaya perdagangan peribadi
  3. Visualisasi: Sistem penanda jelas menyediakan paparan intuitif lokasi corak dan jenis
  4. Automasi: Proses penghakiman yang diprogramkan sepenuhnya menghapuskan penilaian manusia yang subjektif dan emosi
  5. Kepraktisan: Logik strategi yang jelas memudahkan penggabungan dengan penunjuk teknikal atau sistem dagangan lain

Risiko Strategi

  1. Risiko Lag: Pengesahan corak memerlukan menunggu penutupan lilin, berpotensi menyebabkan kelewatan kemasukan yang sedikit
  2. Risiko Isyarat Palsu: Bergantung hanya pada corak candlestick boleh menghasilkan banyak isyarat palsu di pasaran bergolak
  3. Kebergantungan persekitaran pasaran: Strategi berprestasi lebih baik di pasaran yang sedang berkembang tetapi mungkin kurang berprestasi di pasaran yang berbeza
  4. Risiko penetapan parameter: Membolehkan terlalu banyak pengenalan corak boleh menyebabkan isyarat yang terlalu ramai yang mempengaruhi pertimbangan
  5. Risiko Kawalan Stop Loss: Strategi tidak mempunyai mekanisme stop loss yang komprehensif, yang memerlukan langkah-langkah kawalan risiko tambahan

Arahan Pengoptimuman Strategi

  1. Melaksanakan Penapisan Trend: Gabungkan dengan purata bergerak atau penunjuk trend untuk menapis isyarat kontra-trend
  2. Tambah Pengesahan Volume: Memvalidasi keberkesanan corak melalui perubahan jumlah
  3. Meningkatkan Kawalan Risiko: Tambah fungsi penentuan sasaran stop-loss dan keuntungan yang dinamik
  4. Mengoptimumkan Parameter Corak: Sesuaikan parameter pengenalan corak untuk pasaran dan jangka masa yang berbeza
  5. Tambah Pattern Weighting: Tetapkan sistem berat isyarat yang berbeza berdasarkan kebolehpercayaan corak

Ringkasan

Ini adalah strategi perdagangan pengiktirafan corak lilin yang direka dengan baik dan logiknya jelas. Ia melaksanakan penilaian corak lilin analisis teknikal tradisional yang paling biasa digunakan melalui pengaturcaraan, menyediakan peniaga dengan alat perdagangan yang objektif dan sistematik. Walaupun ia mempunyai beberapa batasan yang melekat, melalui pengoptimuman yang sesuai dan kombinasi dengan alat teknikal lain, strategi ini dapat memberikan isyarat rujukan yang berharga untuk keputusan perdagangan. Reka bentuk modular strategi ini juga menyediakan asas yang baik untuk pengembangan fungsi dan pengoptimuman prestasi berikutnya.


/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Author: Raymond Ngobeni
strategy('Candlestick Pattern Strategy [Ubaton]', 'Ubaton - Candlestick Pattern Strategy', overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500)

// User Inputs: Enable/Disable Patterns
// Bullish Patterns
enableHammer = input.bool(true, "Show Hammer")
enableBullEngulfing = input.bool(true, "Show Bullish Engulfing")
enablePiercingLine = input.bool(true, "Show Piercing Line")
enableMorningStar = input.bool(true, "Show Morning Star")
enableThreeWhiteSoldiers = input.bool(true, "Show Three White Soldiers")

// Bearish Patterns
enableHangingMan = input.bool(true, "Show Hanging Man")
enableBearEngulfing = input.bool(true, "Show Bearish Engulfing")
enableDarkCloudCover = input.bool(true, "Show Dark Cloud Cover")
enableEveningStar = input.bool(true, "Show Evening Star")
enableThreeBlackCrows = input.bool(true, "Show Three Black Crows")

// Helper Functions
isHammer() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize

isBullishEngulfing() =>
    close[1] < open[1] and close > open and open <= close[1] and close >= open[1]

isPiercingLine() =>
    close[1] < open[1] and close > close[1] + (open[1] - close[1]) * 0.5 and close < open[1]

isMorningStar() =>
    close[2] < open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close > open

isThreeWhiteSoldiers() =>
    close > open and close[1] > open[1] and close[2] > open[2] and open > close[1] and open[1] > close[2]

isHangingMan() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize and close < open

isBearishEngulfing() =>
    close[1] > open[1] and close < open and open >= close[1] and close <= open[1]

isDarkCloudCover() =>
    close[1] > open[1] and open > close[1] and close < open[1] and close < close[1] + (open[1] - close[1]) * 0.5

isEveningStar() =>
    close[2] > open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close < open

isThreeBlackCrows() =>
    close < open and close[1] < open[1] and close[2] < open[2] and open < close[1] and open[1] < close[2]

// Detect Patterns
// Bullish
hammerDetected = enableHammer and isHammer()
bullEngulfDetected = enableBullEngulfing and isBullishEngulfing()
piercingDetected = enablePiercingLine and isPiercingLine()
morningStarDetected = enableMorningStar and isMorningStar()
threeWhiteDetected = enableThreeWhiteSoldiers and isThreeWhiteSoldiers()

// Bearish
hangingManDetected = enableHangingMan and isHangingMan()
bearEngulfDetected = enableBearEngulfing and isBearishEngulfing()
darkCloudDetected = enableDarkCloudCover and isDarkCloudCover()
eveningStarDetected = enableEveningStar and isEveningStar()
threeBlackDetected = enableThreeBlackCrows and isThreeBlackCrows()

// Plot Bullish Patterns
plotshape(enableHammer and hammerDetected, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(enableBullEngulfing and bullEngulfDetected, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.labelup, text="Engulf")
plotshape(enablePiercingLine and piercingDetected, title="Piercing Line", location=location.belowbar, color=color.green, style=shape.labelup, text="Piercing")
plotshape(enableMorningStar and morningStarDetected, title="Morning Star", location=location.belowbar, color=color.green, style=shape.labelup, text="Morning")
plotshape(enableThreeWhiteSoldiers and threeWhiteDetected, title="Three White Soldiers", location=location.belowbar, color=color.green, style=shape.labelup, text="3 Soldiers")

// Plot Bearish Patterns
plotshape(enableHangingMan and hangingManDetected, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging")
plotshape(enableBearEngulfing and bearEngulfDetected, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.labeldown, text="Engulf")
plotshape(enableDarkCloudCover and darkCloudDetected, title="Dark Cloud Cover", location=location.abovebar, color=color.red, style=shape.labeldown, text="Dark Cloud")
plotshape(enableEveningStar and eveningStarDetected, title="Evening Star", location=location.abovebar, color=color.red, style=shape.labeldown, text="Evening")
plotshape(enableThreeBlackCrows and threeBlackDetected, title="Three Black Crows", location=location.abovebar, color=color.red, style=shape.labeldown, text="3 Crows")

// Strategy Execution
if hammerDetected or bullEngulfDetected or piercingDetected or morningStarDetected or threeWhiteDetected
    strategy.entry("Bullish Entry", strategy.long)

if hangingManDetected or bearEngulfDetected or darkCloudDetected or eveningStarDetected or threeBlackDetected
    strategy.entry("Bearish Entry", strategy.short)

Berkaitan

Lebih lanjut