Strategi perdagangan pengecaman corak K-line gabungan pelbagai tempoh

JSC CP TS
Tarikh penciptaan: 2024-12-11 11:04:35 Akhirnya diubah suai: 2024-12-11 11:04:35
Salin: 0 Bilangan klik: 480
1
fokus pada
1617
Pengikut

Strategi perdagangan pengecaman corak K-line gabungan pelbagai tempoh

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan automatik berdasarkan pengenalan bentuk K-line. Ia menggabungkan sepuluh bentuk K-line klasik, termasuk lima bentuk bullish ((garis kelinci, serpihan multihead, serpihan penembus, Morning Star dan Three White Soldiers) dan lima bentuk bearish ((terjun, serpihan udara, awan mendung, Twilight Star dan Three Black Eagles). Strategi ini menyediakan pedagang dengan isyarat reversal pasaran dan peluang perdagangan yang berpotensi melalui pengenalan dan analisis masa nyata bentuk-bentuk ini.

Prinsip Strategi

Strategi ini berpusat pada pengaturcaraan untuk mengenal pasti pelbagai bentuk garis K. Setiap bentuk mempunyai definisi dan penghakiman matematik yang unik:

  1. Untuk bentuk K-garis tunggal (seperti garisan tilam, garisan gantung), penghakiman dibuat berdasarkan perbandingan nisbah antara entiti dan garisan bayangan
  2. Untuk dua bentuk K-line (seperti sink line, penetasan line), dengan membandingkan hubungan kedudukan harga buka dan tutup dua K-line berdekatan
  3. Untuk tiga bentuk garis K (seperti tiga tentera putih, tiga burung hantu hitam), perlu memenuhi arah dan hubungan kedudukan tiga garis K berturut-turut Kaedah ini membolehkan pengguna untuk mengaktifkan atau menonaktifkan pengenalan bentuk tertentu dengan pilihan yang fleksibel melalui parameter yang ditetapkan.

Kelebihan Strategik

  1. Komprehensif: merangkumi sepuluh bentuk K-line yang paling representatif, yang dapat menangkap pelbagai jenis isyarat perubahan pasaran
  2. Fleksibiliti: Pengguna bebas memilih kombinasi bentuk yang perlu dikenal pasti berdasarkan keadaan pasaran dan gaya dagangan individu
  3. Visualisasi: dengan sistem penanda yang jelas, lokasi dan jenis pelbagai bentuk ditunjukkan secara intuitif
  4. Automasi: Proses penghakiman sepenuhnya berprogram, mengelakkan subjektiviti dan emosi penghakiman buatan manusia
  5. Kegunaan: Logik strategi yang jelas, mudah digunakan dalam kombinasi dengan petunjuk teknikal atau sistem perdagangan lain

Risiko Strategik

  1. Risiko keterlambatan: Pengesahan bentuk K-Line memerlukan menunggu penutupan K-Line, yang mungkin menyebabkan sedikit kelewatan masa masuk
  2. Risiko isyarat palsu: Dalam pasaran yang bergolak, bergantung kepada bentuk K-line sahaja mungkin menghasilkan lebih banyak isyarat palsu
  3. Kepercayaan kepada keadaan pasaran: strategi berfungsi dengan baik dalam pasaran yang jelas bercenderungan, tetapi mungkin kurang berkesan dalam pasaran yang berlainan
  4. Risiko penyetempatan parameter: terlalu banyak pengenalan bentuk yang diaktifkan boleh menyebabkan isyarat menjadi terlalu padat dan mempengaruhi penghakiman
  5. Risiko kawalan kerugian: Strategi itu sendiri tidak mengandungi mekanisme kawalan kerugian yang sempurna dan memerlukan langkah-langkah kawalan risiko tambahan

Arah pengoptimuman strategi

  1. Memperkenalkan penapis trend: memfilterkan isyarat kebalikan dalam kombinasi dengan purata bergerak atau penunjuk trend
  2. Meningkatkan pengesahan jumlah transaksi: kebolehgunaan bentuk pengesahan melalui perubahan jumlah transaksi
  3. Pengendalian risiko yang lebih baik: penambahan fungsi penyetempatan sasaran stop loss dan keuntungan yang dinamik
  4. Optimumkan parameter bentuk: penyesuaian kriteria parameter pengenalan bentuk untuk pasaran dan tempoh masa yang berbeza
  5. Tambah berat bentuk: Sediakan sistem berat isyarat yang berbeza mengikut kebolehpercayaan bentuk yang berbeza

ringkaskan

Ini adalah strategi perdagangan K-line form recognition yang direka dengan logik yang logik dan jelas. Ia mewujudkan penghakiman K-line form yang paling biasa digunakan dalam analisis teknikal tradisional dengan cara berprogram, memberikan pedagang alat perdagangan yang objektif dan sistematik. Walaupun terdapat beberapa batasan yang wujud, tetapi dengan pengoptimuman yang sesuai dan bekerjasama dengan alat teknikal lain, strategi ini dapat memberikan isyarat rujukan yang berharga untuk keputusan perdagangan. Reka bentuk modular strategi juga menyediakan asas yang baik untuk pengembangan fungsi dan pengoptimuman prestasi yang akan datang.

Kod sumber strategi
/*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)