Sumber dimuat naik... memuat...

Chande-Kroll Hentikan Trend ATR Dinamik Mengikuti Strategi

Penulis:ChaoZhang, Tarikh: 2024-06-14 15:15:43
Tag:SMAATRSPX

img

Ringkasan

Strategi Penghentian Dinamik ATR Trend Following adalah strategi perdagangan kuantitatif berdasarkan penunjuk berhenti Chande-Kroll dan Purata Bergerak Sederhana (SMA). Strategi ini bertujuan untuk menangkap trend pasaran menaik sambil menguruskan risiko menggunakan tahap stop-loss dinamik. Penunjuk berhenti Chande-Kroll secara dinamik menyesuaikan tahap stop-loss berdasarkan Julat Benar Purata (ATR) untuk menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza. SMA 21 tempoh digunakan sebagai penapis trend untuk memastikan perdagangan dibuat ke arah trend utama.

Prinsip Strategi

Inti strategi ini adalah penunjuk berhenti Chande-Kroll, yang menggunakan ATR untuk mengira tahap stop-loss dinamik. ATR mengukur turun naik pasaran, dan tahap stop-loss diselaraskan secara dinamik berdasarkan ATR dan pengganda. Ini memastikan bahawa kedudukan stop-loss menyesuaikan diri dengan keadaan pasaran semasa. Di samping itu, SMA 21 tempoh bertindak sebagai penapis trend, dan isyarat panjang hanya dicetuskan apabila harga penutupan di atas SMA. Ini membantu mengelakkan perdagangan semasa pasaran beruang. Keadaan kemasukan panjang: Apabila harga penutupan melanggar band bawah Chande-Kroll dan berada di atas SMA 21 tempoh, kedudukan panjang dimulakan. Keadaan keluar: Apabila harga penutupan jatuh di bawah jalur atas Chande-Kroll, kedudukan ditutup.

Kelebihan Strategi

  1. Stop-loss dinamik: Penunjuk stop-loss Chande-Kroll mengira tahap stop-loss dinamik berdasarkan ATR, menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza dan meningkatkan keberkesanan stop-loss.
  2. Mengikuti trend: SMA 21 tempoh bertindak sebagai penapis trend, memastikan dagangan sejajar dengan arah trend utama dan mengurangkan risiko dagangan kontra-trend.
  3. Fleksibiliti parameter: Parameter strategi seperti tempoh ATR, pengganda ATR, tempoh stop-loss, dan tempoh SMA boleh diselaraskan mengikut pilihan pengguna, meningkatkan kebolehsesuaian strategi.
  4. Ukuran kedudukan: Ukuran kedudukan diselaraskan secara dinamik berdasarkan pengganda risiko dan turun naik pasaran semasa, mencapai pengurusan risiko yang dinamik.

Risiko Strategi

  1. Risiko pengoptimuman parameter: Parameter strategi perlu dioptimumkan berdasarkan keadaan pasaran dan instrumen perdagangan yang berbeza. Tetapan parameter yang tidak betul boleh menyebabkan prestasi strategi yang buruk.
  2. Risiko pengenalan trend: Semasa pasaran terhad julat atau pembalikan trend awal, strategi boleh menghasilkan isyarat palsu, yang mengakibatkan kerugian.
  3. Kos tergelincir dan urus niaga: Dalam perdagangan sebenar, kos tergelincir dan urus niaga akan mempengaruhi pulangan bersih strategi. Langkah-langkah pengurusan risiko termasuk: menjalankan pengujian balik yang komprehensif dan pengoptimuman parameter strategi; mematuhi peraturan strategi dengan ketat dan mengawal risiko setiap perdagangan dalam perdagangan sebenar; menilai prestasi strategi secara berkala dan membuat penyesuaian apabila perlu.

Arahan Pengoptimuman Strategi

  1. Dagangan pendek panjang: Pada masa ini, strategi ini hanya mempunyai isyarat panjang. Ia boleh dilanjutkan ke perdagangan pendek panjang untuk sepenuhnya menangkap peluang dalam persekitaran pasaran yang berbeza.
  2. Pengoptimuman parameter dinamik: Gunakan pembelajaran mesin atau algoritma pengoptimuman untuk menyesuaikan parameter strategi dalam masa nyata berdasarkan keadaan pasaran, meningkatkan kebolehsesuaian.
  3. Menggabungkan penunjuk teknikal lain: Memperkenalkan penunjuk trend atau pengayun lain untuk membina strategi pelbagai faktor dan meningkatkan kebolehpercayaan isyarat.
  4. Menggabungkan penunjuk sentimen pasaran: Menggabungkan penunjuk sentimen pasaran seperti VIX untuk mengawal perdagangan semasa sentimen pasaran yang melampau dan meningkatkan keupayaan pengurusan risiko.

Ringkasan

Strategi Penghentian Dinamik Chande-Kroll adalah strategi perdagangan kuantitatif berdasarkan prinsip penghentian rugi dinamik dan prinsip mengikuti trend. Dengan menggabungkan penunjuk berhenti Chande-Kroll dan penapis trend SMA, strategi ini dapat menangkap trend menaik sambil menguruskan risiko dengan berkesan. Fleksibiliti parameter strategi dan ukuran kedudukan dinamik meningkatkan lagi kemampuan penyesuaian strategi. Walaupun strategi ini mempunyai risiko tertentu, dengan langkah pengurusan risiko yang munasabah dan pengoptimuman dan penambahbaikan berterusan, strategi ini berpotensi untuk mencapai pulangan yang stabil dalam jangka panjang.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)

// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr

sma21 = ta.sma(close, smaLength)

// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop

// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
    lowestClose = ta.lowest(close, 1560)
    if mode == "Exponential"
        qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
    else
        qty = riskMultiplier / lowestClose * 1000

// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)

// Execute strategy
if (longCondition)
    strategy.entry("Long", strategy.long, qty=qty)
    alert("Buy Signal", alert.freq_once_per_bar_close)

if (exitLongCondition)
    strategy.close("Long")
    alert("Sell Signal", alert.freq_once_per_bar_close)

// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)



Berkaitan

Lebih lanjut