Garis Trend Dual Breakout Golden Cross Death Cross Trend Mengikuti Strategi

Penulis:ChaoZhang, Tarikh: 2024-02-22 16:01:12
Tag:

img

Ringkasan

Strategi Trend Following Cross Golden Cross adalah strategi perdagangan kuantitatif yang menggunakan kedua-dua garis trend sokongan / rintangan dan purata bergerak sebagai isyarat alternatif untuk mengikuti trend. Strategi ini mengambil kira tahap harga pada jangka masa yang berbeza, menggabungkan isyarat pecah melalui tahap sokongan dan rintangan utama dengan isyarat salib emas dan salib kematian dari penunjuk trend, untuk membuka kedudukan semasa perubahan trend awal untuk sasaran keuntungan mengesan trend jangka menengah hingga panjang.

Prinsip Strategi

Strategi ini terdiri daripada empat komponen utama:

  1. Garis sokongan digambarkan dengan paras terendah dalam tempoh 30 hari yang lalu
  2. Garis rintangan digambarkan dengan paras tertinggi dalam tempoh 30 minggu yang lalu
  3. Purata Bergerak Sederhana 10 tempoh, digunakan untuk mengesahkan trend penapisan isyarat perdagangan
  4. Modul Pengesanan Penembusan untuk mengesan peluang dagangan apabila harga memecahkan tahap sokongan / rintangan kritikal

Secara khusus, strategi pertama menggunakan fungsi permintaan Keselamatan untuk mendapatkan tertinggi tertinggi dan terendah tertinggi dalam tempoh 30 hari dan 30 minggu yang lalu masing-masing, merangka garis sokongan dan rintangan dinamik. Ia kemudian menggabungkan isyarat salib emas dan salib kematian dari SMA 10 tempoh untuk menapis peluang pecah. Isyarat panjang dihasilkan apabila harga memecahkan di atas tahap sokongan 30 hari dan SMA 10 tempoh, sementara isyarat pendek dihasilkan apabila harga memecahkan di bawah tahap rintangan 30 minggu dan SMA 10 tempoh.

Strategi ini mempertimbangkan kedua-dua tahap sokongan / rintangan jangka menengah dan jangka panjang, yang membolehkannya menangkap peluang trend yang lebih besar.

Analisis Kelebihan

Kelebihan utama strategi ini termasuk:

  1. Menggunakan kedua-dua sokongan jangka menengah dan jangka panjang / rintangan untuk menangkap pecah yang lebih besar.
  2. Penapis MA mengawal kerugian dengan mengelakkan isyarat palsu semasa pasaran berkisar.
  3. Kemas kini dinamik tahap sokongan / rintangan membolehkan menangkap arah trend baru tepat pada masanya.
  4. Mekanisme pengurusan risiko menghentikan kerugian dan mengambil keuntungan membantu memastikan keuntungan.

Analisis Risiko

Terdapat juga beberapa risiko yang perlu diperhatikan untuk strategi ini:

  1. Strategi keluar memerlukan masa yang tepat, dengan masalah melampaui atau ketinggalan.
  2. Penembusan yang tidak sah boleh berlaku apabila tahap sokongan / rintangan gagal, menyebabkan kerugian besar.
  3. Sifat lambat purata bergerak boleh menyebabkan isyarat lewat untuk pembalikan trend.
  4. Risiko pengeluaran yang tinggi menjadikannya tidak sesuai untuk akaun kecil.

Penyelesaian:

  1. Sempurnakan logik pengenalan dan tambah lebih banyak penapis.
  2. Gunakan tempoh MA yang lebih besar untuk memastikan isyarat hanya berlaku selepas trend stabil.
  3. Tetapkan tahap stop loss yang betul untuk mengehadkan penurunan pada perdagangan tunggal.

Arahan pengoptimuman

Terdapat ruang untuk penambahbaikan lanjut:

  1. Menggabungkan langkah-langkah turun naik seperti ATR untuk kehilangan berhenti yang lebih pintar dan mengambil keuntungan.
  2. Tambah model pembelajaran mesin untuk mengesan kegagalan sokongan / rintangan.
  3. Menggunakan purata bergerak adaptif untuk menangkap pembalikan yang lebih cepat.
  4. Parameter tune halus untuk produk yang berbeza.

Kesimpulan

Strategy Breakout Trendlines Dual Golden Cross Death Cross Trend Following secara berkesan menggabungkan sokongan / rintangan jangka menengah hingga panjang dan penunjuk purata bergerak untuk menapis isyarat menguntungkan semasa trend utama, menjadikannya strategi perdagangan kuantitatif yang agak matang. Masih ada ruang yang besar untuk pengoptimuman melalui mekanisme stop loss, parameter adaptif dll. Menggabungkan pembelajaran mesin juga dapat meningkatkan ketahanan.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © neosaid

//@version=5
strategy("Support and resistant Strategy", overlay=true)

// Function to check for breakout
f_breakoutCondition(closingPrice, highestHigh, lowestLow) =>
    closingPrice > highestHigh or closingPrice < lowestLow

// Step 1: 30 Days Trend Line (Lower Lows)
low30Days = request.security(syminfo.tickerid, "D", low)

// Step 2: 30 Weeks Upper Trend Line (Higher Highs)
high30Weeks = request.security(syminfo.tickerid, "W", high)

// Step 3: Trend Line for Lowest Low within the Last Month
var float lowestLowLastMonth = na
for i = 0 to 29
    lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i])

lowestLowLastMonthValue = lowestLowLastMonth[1]

// Breakout Strategy
highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3))
lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3))

// Additional conditions to filter signals
buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days

sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks

// Additional filters to reduce the number of orders
buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA
sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA

buyCondition := buyCondition and buyFilter
sellCondition := sellCondition and sellFilter

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Strategy entries
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Lebih lanjut