Tarikan balik trend boleh melaraskan strategi kemasukan dinamik risiko

SMA EMA 移动平均线交叉 回调策略 风险管理 止损止盈 突破点保护 趋势确认
Tarikh penciptaan: 2025-03-26 13:29:16 Akhirnya diubah suai: 2025-03-26 13:29:16
Salin: 0 Bilangan klik: 276
2
fokus pada
319
Pengikut

Tarikan balik trend boleh melaraskan strategi kemasukan dinamik risiko Tarikan balik trend boleh melaraskan strategi kemasukan dinamik risiko

Gambaran keseluruhan

Strategi masuk masuk dinamik yang boleh disesuaikan dengan risiko adalah dirancang untuk pedagang goyang yang ingin membina kedudukan multihead dalam penarikan balik selepas perubahan trend jangka pendek, dan segera masuk ke atas apabila keadaan pasaran menguntungkan pergerakan ke bawah. Strategi ini menggabungkan pengesahan trend silang SMA, titik masuk penarikan balik peratusan tetap, dan parameter pengurusan risiko yang boleh disesuaikan untuk melaksanakan perdagangan yang optimum.

Inti strategi ini adalah menggunakan simpul bergerak rata-rata (SMA) 10 kitaran dan 25 kitaran untuk mengesahkan arah trend, dan digabungkan dengan 150 kitaran indeks bergerak rata-rata (EMA) sebagai syarat penapisan tambahan untuk perdagangan kosong. Perdagangan bertopeng tidak masuk segera selepas SMA bercampur, tetapi menunggu harga kembali ke peratusan yang ditetapkan untuk masuk, kaedah ini mengoptimumkan harga masuk, meningkatkan risiko dan ganjaran.

Prinsip Strategi

Strategi ini boleh dibahagikan kepada beberapa bahagian utama:

  1. Mekanisme pengesahan trend:

    • Apabila 10 kitaran SMA melintasi 25 kitaran SMA, sistem mengenal pasti isyarat perubahan trend bullish
    • Apabila 10-siklus SMA menembusi 25-siklus SMA, sistem mengenal pasti sebagai isyarat peralihan trend menurun
    • Perdagangan kosong hanya dilaksanakan apabila harga berada di bawah 150 kitaran EMA untuk memastikan konsistensi dengan trend yang lebih luas
  2. Mekanisme panggilan balik berbilang kepala:

    • Tidak masuk dengan segera apabila isyarat silang SMA muncul, tetapi menunggu harga kembali dan masuk ke dalam mata wang
    • Titik masuk ditakrifkan sebagai kedudukan yang set peratus (default 1%) dari titik tinggi terkini
    • Sistem secara dinamik mengira dan memetakan kedudukan sokongan untuk memvisualisasikan kawasan kemasukan semula
    • Penarikan berganda berlaku apabila harga melepasi tahap pemulihan ke atas
  3. Peraturan kemasukan kepala kosong:

    • Jika 10 kitaran SMA melalui 25 kitaran SMA, dan harga di bawah 150 kitaran EMA, segera masuk kosong
  4. Strategi Pengurusan Risiko dan Keluar:

    • Stop Stop (TP) - Pencapaian sasaran (Default: 1000)
    • Stop Loss (SL) - tahap stop loss yang boleh disesuaikan (default: 250)
    • Titik perlindungan ((BE) - apabila harga bergerak ke arah yang menguntungkan, penangguhan bergerak ke titik perlindungan
    • Keadaan keluar tambahan untuk pelbagai mata: jika memegang kedudukan pelbagai mata melalui 25 mata SMA di bawah SMA 10 kitaran dan harga di bawah EMA 150 kitaran, memaksa keluar dari pelbagai mata untuk mengelakkan kerugian yang disebabkan oleh pembalikan trend

Strategi menggunakan pembolehubah berpanjangan untuk mengesan isyarat penarikan balik, memastikan kemasukan pada masa yang tepat. Apabila tidak ada ruang, sistem akan menetapkan semula semua tanda dan tahap untuk menyediakan isyarat perdagangan seterusnya.

Kelebihan Strategik

Setelah menganalisis kod secara mendalam, strategi ini menunjukkan kelebihan yang ketara:

  1. Masa kemasukan yang optimum:

    • Strategi memperoleh harga masuk yang lebih baik dengan menunggu panggilan balik untuk masuk ke dalam dan bukannya masuk dengan segera apabila isyarat silang muncul
    • Kaedah ini mengurangkan risiko awal dan meningkatkan risiko-balasan yang berpotensi.
    • Peratusan pengembalian boleh disesuaikan dengan keadaan pasaran yang berbeza dan pilihan risiko peniaga
  2. Pengurusan risiko menyeluruh:

    • Parameter berhenti dan hentian yang tepat memastikan kawalan risiko yang jelas untuk setiap perdagangan
    • Mekanisme jaminan melindungi transaksi yang telah diperolehi dan mengurangkan jumlah keseluruhan penarikan balik
    • Semua parameter risiko boleh disesuaikan untuk menyesuaikan diri dengan turun naik pasaran yang berbeza
  3. Penapisan trend:

    • Menggunakan EMA150 sebagai syarat penapisan tambahan untuk memastikan perdagangan jangka pendek selaras dengan trend jangka panjang
    • Peraturan keluar tambahan untuk melindungi dana daripada kerugian besar apabila trend berbalik
  4. Maklum balas visual:

    • Sistem memetakan tahap dan isyarat regresi pada carta, memberikan panduan visual yang jelas
    • Titik pelaksanaan perdagangan dan titik keluar ditandakan dengan jelas untuk memudahkan pengesanan dan penambahbaikan strategi
  5. Sangat boleh menyesuaikan diri:

    • Strategi untuk pelbagai kelas aset, termasuk saham, mata wang asing dan indeks
    • Parameter yang boleh disesuaikan untuk persekitaran pasaran dan gaya dagangan yang berbeza

Risiko Strategik

Walaupun terdapat banyak kelebihan, strategi ini mempunyai risiko yang perlu diperhatikan:

  1. Risiko pasaran pantas:

    • Dalam pasaran yang bergelombang tinggi, harga mungkin melangkaui titik kemasukan atau tahap hentian yang dirancang
    • Kejadian pasaran yang melampau boleh menyebabkan peningkatan slippage yang mempengaruhi harga pelaksanaan sebenar
    • Penyelesaian: Sesuaikan peratusan pemulihan dan parameter risiko semasa turun naik tinggi, atau pertimbangkan untuk menghentikan perdagangan sementara
  2. Pertunjukan pasaran yang bergolak:

    • Strategi bergantung kepada trend yang mengesahkan bahawa ia mungkin memberi isyarat salah dalam pasaran yang bergolak
    • Selalunya penyambungan SMA boleh menyebabkan kerugian berturut-turut
    • Penyelesaian: Tambah penapis kekuatan trend tambahan, seperti penunjuk ADX, atau hentikan dagangan di pasaran yang bergolak
  3. Batasan pengurusan risiko mata tetap:

    • Penangguhan dan hentian yang menggunakan mata tetap mungkin tidak sesuai dengan turun naik pasaran yang berbeza
    • Apabila turun naik meningkat, ia boleh menyebabkan stop loss terlalu awal atau terlalu jauh dari sasaran stop loss.
    • Penyelesaian: Pertimbangkan tahap hentian dan hentian dinamik berdasarkan ATR
  4. Terlalu banyak bergantung kepada petunjuk teknikal:

    • Strategi bergantung sepenuhnya kepada petunjuk teknikal dan mengabaikan faktor asas dan sentimen pasaran
    • SMA dan EMA adalah penunjuk yang ketinggalan dan mungkin tidak dapat bertindak balas tepat pada masanya terhadap titik perubahan pasaran
    • Penyelesaian: Gabungan dengan penunjuk utama lain atau sentimen pasaran, seperti RSI atau penunjuk aliran wang
  5. Risiko Pengoptimuman Parameter:

    • Parameter yang terlalu optimum boleh menyebabkan kecocokan kurva dan tidak berfungsi dengan baik di pasaran masa depan
    • Penyelesaian: Uji semula dengan data sejarah yang cukup lama dan buktikan strategi yang kuat dalam keadaan pasaran yang berbeza

Arah pengoptimuman strategi

Berdasarkan analisis kod, berikut adalah beberapa arah utama di mana strategi ini boleh dioptimumkan:

  1. Pengurusan risiko dinamik:

    • Mengubah Stop Loss dan Stop Stop yang ditetapkan kepada tahap dinamik berdasarkan ATR
    • Ini membolehkan pengurusan risiko untuk menyesuaikan diri dengan turun naik pasaran semasa, dengan menetapkan hentian yang lebih kecil semasa turun naik rendah dan hentian yang lebih besar semasa turun naik tinggi.
    • Kaedah: Menggunakan analogstopDistance = input.float(2.0) * ta.atr(14)Kaedah pengiraan
  2. Penapis kekuatan trend:

    • Tambah ADX (Indeks Arah Rata-rata) atau penunjuk serupa untuk mengukur kekuatan trend
    • Hanya melakukan perdagangan apabila trend cukup kuat (contohnya ADX > 25) untuk mengelakkan isyarat palsu dalam pasaran yang bergolak
    • Ini akan mengurangkan banyak isyarat salah dan meningkatkan kadar kemenangan.
  3. Analisis pelbagai kerangka masa:

    • Mengintegrasikan maklumat trend dalam jangka masa yang lebih tinggi untuk memastikan perdagangan selaras dengan trend yang lebih besar
    • Sebagai contoh, hanya berdagang apabila garisan hari dan carta 4 jam menunjukkan arah trend yang sama
    • Kaedah ini dapat meningkatkan kadar kejayaan dagangan dan mengurangkan risiko dagangan berlawanan arah.
  4. Pengiktirafan kembalian pintar:

    • Menggantikan peratusan tetap yang mudah dengan kaedah pengenalan regangan yang lebih rumit
    • Pertimbangkan untuk menggunakan Fibonacci Retracement Levels atau Resistance Levels
    • Ini akan menyediakan titik masuk yang lebih bermakna dan lebih selaras dengan struktur pasaran.
  5. Pengesahan jumlah transaksi:

    • Menambah analisis jumlah transaksi sebagai sebahagian daripada isyarat pengesahan
    • Mencari titik masuk yang lebih berkualiti dalam penarikan balik yang rendah dan penembusan yang tinggi
    • Pengesahan jumlah transaksi dapat meningkatkan kualiti isyarat dengan ketara dan mengurangkan bising transaksi
  6. Parameter penyesuaian:

    • Membangunkan mekanisme untuk menyesuaikan parameter strategi mengikut pergerakan pasaran terkini
    • Sebagai contoh, peningkatan peratusan pengembalian secara automatik apabila turun naik
    • Keupayaan untuk menyesuaikan diri ini membolehkan strategi untuk kekal stabil dalam keadaan pasaran yang berbeza

ringkaskan

Strategi kemasukan yang dinamik adalah sistem perdagangan yang dirancang dengan baik yang menggabungkan pengenalan trend, pengoptimuman kemasukan dan pengurusan risiko yang komprehensif. Dengan menunggu kenaikan harga dan masuk semula, strategi ini memperoleh harga kemasukan dan ganjaran risiko yang lebih baik daripada sistem silang SMA yang mudah.

Kelebihan utama strategi ini adalah fleksibiliti dan penyesuaian yang membolehkan peniaga menyesuaikan parameter mengikut pilihan risiko peribadi dan keadaan pasaran. Di samping itu, fungsi pengurusan risiko bersepadu (termasuk stop loss, stop loss dan titik perlindungan) memberikan perlindungan dana yang komprehensif.

Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan, termasuk prestasi dalam pasaran yang bergolak dan pengendalian risiko titik tetap. Dengan melaksanakan pengoptimuman yang disyorkan, seperti pengurusan risiko dinamik, penapisan kekuatan trend dan pengesahan jumlah perdagangan, anda dapat meningkatkan kekuatan strategi dan prestasi keseluruhan.

Ini adalah strategi asas yang ideal untuk peniaga goyang, yang boleh disesuaikan lebih lanjut mengikut gaya dan matlamat perdagangan individu. Dengan penetapan parameter yang munasabah dan penyesuaian pemantauan yang berterusan, strategi ini berpotensi untuk memberikan hasil perdagangan yang stabil dalam pelbagai persekitaran pasaran.

Kod sumber strategi
/*backtest
start: 2024-08-01 00:00:00
end: 2025-03-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("BTCUSD with adjustable sl,tp", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=10, 
     calc_on_every_tick=true)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ USER INPUTS
// ─────────────────────────────────────────────────────────────────────────────
longSignalStyle  = input.string("Label Up", title="Long Signal Style", options=["Label Up", "Arrow Up", "Cross"])
shortSignalStyle = input.string("Label Down", title="Short Signal Style", options=["Label Down", "Arrow Down", "Cross"])

// Adjustable exit parameters (in points)
tpDistance    = input.int(1000, "Take Profit Distance (points)", minval=1)
slDistance    = input.int(250, "Stop Loss Distance (points)",   minval=1)
beTrigger     = input.int(500, "Break-Even Trigger Distance (points)", minval=1)

// Adjustable retracement percentage for long pullback entry (e.g. 0.01 = 1%)
retracementPct = input.float(0.01, "Retracement Percentage (e.g. 0.01 for 1%)", step=0.001)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ INDICATORS: SMA & EMA
// ─────────────────────────────────────────────────────────────────────────────
sma10  = ta.sma(close, 10)
sma25  = ta.sma(close, 25)
ema150 = ta.ema(close, 150)

plot(sma10,  color=color.blue,   title="SMA 10")
plot(sma25,  color=color.red,    title="SMA 25")
plot(ema150, color=color.orange, title="EMA 150")

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ ENTRY CONDITIONS
// ─────────────────────────────────────────────────────────────────────────────
longCondition  = ta.crossover(sma10, sma25)
shortCondition = ta.crossunder(sma10, sma25)
shortValid     = close < ema150  // Only take shorts if price is below EMA150

// Plot immediate entry signals (for visual reference)
plotshape(longCondition and (strategy.position_size == 0), title="Long Signal", 
     style=(longSignalStyle == "Label Up" ? shape.labelup : (longSignalStyle == "Arrow Up" ? shape.triangleup : shape.cross)), 
     location=location.belowbar, color=color.green, text="Long", size=size.small)
plotshape(shortCondition and shortValid and (strategy.position_size == 0), title="Short Signal", 
     style=(shortSignalStyle == "Label Down" ? shape.labeldown : (shortSignalStyle == "Arrow Down" ? shape.triangledown : shape.cross)), 
     location=location.abovebar, color=color.red, text="Short", size=size.small)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ LONG PULLBACK ENTRY USING FIXED PERCENTAGE RETRACEMENT
// ─────────────────────────────────────────────────────────────────────────────
// We use persistent variables to track the pullback signal.
var bool longSignalActive = false
var float pullHigh = na        // highest high since long signal activation
var float retraceLevel = na    // level = pullHigh * (1 - retracementPct)

// Only consider new entries when no position is open.
if strategy.position_size == 0
    // When a long crossover occurs, activate the signal and initialize pullHigh.
    if longCondition
        longSignalActive := true
        pullHigh := high

    // If signal active, update pullHigh and compute retracement level.
    if longSignalActive
        pullHigh := math.max(pullHigh, high)
        retraceLevel := pullHigh * (1 - retracementPct)

        // When price bounces upward and crosses above the retracement level, enter long
        if ta.crossover(close, retraceLevel)
            strategy.entry("Long", strategy.long)
            longSignalActive := false

    // Short entries: enter immediately if conditions are met
    if shortCondition and shortValid
        strategy.entry("Short", strategy.short)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ EXIT CONDITIONS WITH ADJUSTABLE TP, SL & BE
// ─────────────────────────────────────────────────────────────────────────────
var bool beLong  = false
var bool beShort = false

// LONG EXIT LOGIC
if strategy.position_size > 0 and strategy.position_avg_price > 0
    longEntry = strategy.position_avg_price

    // Additional exit: if SMA(10) crosses below SMA(25) while price < EMA150, exit long
    if ta.crossunder(sma10, sma25) and close < ema150
        label.new(bar_index, low, "SMA Exit", style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment="SMA Cross Exit")

    // Break-even trigger if price moves in favor by beTrigger points
    if close >= longEntry + beTrigger
        beLong := true

    effectiveLongStop = beLong ? longEntry : (longEntry - slDistance)
    if close <= effectiveLongStop
        label.new(bar_index, low, (beLong ? "BE Hit" : "SL Hit"), style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment=(beLong ? "BE Hit" : "SL Hit"))

    if close >= longEntry + tpDistance
        label.new(bar_index, high, "TP Hit", style=label.style_label_up, color=color.green, textcolor=color.white)
        strategy.close("Long", comment="TP Hit")

// SHORT EXIT LOGIC
if strategy.position_size < 0 and strategy.position_avg_price > 0
    shortEntry = strategy.position_avg_price

    // Basic stop logic
    if close >= shortEntry + slDistance
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

    // Take profit logic
    if close <= shortEntry - tpDistance
        label.new(bar_index, low, "TP Hit", style=label.style_label_down, color=color.green, textcolor=color.white)
        strategy.close("Short", comment="TP Hit")

    // Break-even trigger
    if close <= shortEntry - beTrigger
        beShort := true

    effectiveShortStop = beShort ? shortEntry : (shortEntry + slDistance)
    if close >= effectiveShortStop
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

// Reset BE flags when no position is open
if strategy.position_size == 0
    beLong  := false
    beShort := false
    // Reset the pullback signal
    if not longSignalActive
        pullHigh := na
        retraceLevel := na