Strategi Henti Kehilangan Separa Pengesahan Momentum Crossover EMA

EMA SMA ATR 动量指标 市场结构分析 部分止损策略 趋势确认
Tarikh penciptaan: 2025-06-30 14:00:43 Akhirnya diubah suai: 2025-06-30 14:00:43
Salin: 0 Bilangan klik: 234
2
fokus pada
319
Pengikut

Strategi Henti Kehilangan Separa Pengesahan Momentum Crossover EMA Strategi Henti Kehilangan Separa Pengesahan Momentum Crossover EMA

Gambaran Keseluruhan Strategi

Strategi EMA crossover confirmation partial stop loss adalah strategi perdagangan kuantitatif lanjutan yang menggabungkan isyarat crossover EMA, pengesahan dinamik dan analisis struktur pasaran. Strategi ini memberi tumpuan khusus kepada keselamatan perdagangan dan melindungi modal pelaburan melalui mekanisme stop loss yang inovatif. Konsep reka bentuk utamanya adalah menunggu EMA crossover membentuk arah trend awal, dan kemudian mencari isyarat dinamika untuk “lanjutan trend” pertama sebagai tempat masuk, sambil menggunakan kerosakan struktur pasaran sebagai pemicu stop loss, yang dapat mengawal risiko dengan berkesan sambil mengekalkan potensi kenaikan.

Prinsip Strategi

Strategi ini berdasarkan mekanisme pengesahan berlapis:

  1. Pengenalan TrendMenggunakan persilangan EMA cepat ((8 kitaran) dan EMA perlahan ((21 kitaran) untuk menentukan arah trend keseluruhan. Apabila EMA 8 di atas menembusi 21 EMA, ia diiktiraf sebagai trend naik; apabila EMA 8 di bawah menembusi 21 EMA, ia diiktiraf sebagai trend menurun.

  2. Isyarat masukStrategi ini tidak akan masuk ke dalam pasaran dengan segera apabila EMA awal bersilang, tetapi akan menunggu isyarat “tren pertama dilanjutkan”.

    • Perlu melihat isyarat EMA (untuk menubuhkan keadaan trend naik)
    • Kemudian tunggu harga berbanding 21EMA jarak lebih dari 1.5 kali ATR (kondisi kuantiti intensif)
    • Yang paling penting ialah, perlu menunggu tindakan harga yang memenuhi syarat momentum kedua, iaitu isyarat “trend continue”
  3. Pengurusan RisikoStrategi ini memperkenalkan mekanisme penangguhan sebahagian berdasarkan analisis struktur pasaran:

    • Sistem akan terus menjejaki dua titik tinggi dan rendah yang baru-baru ini terbentuk
    • Apabila mengenal pasti bahawa tinggi rendah dan rendah rendah berlaku pada masa yang sama, mencetuskan partial stop
    • Mekanisme Hentikan Kerosakan Sebahagian Melepaskan 50% dari Kedudukan dan Mengekalkan Selebihnya untuk Menangkap Peningkatan Potensial
  4. Strategi untuk keluarTanda keluar sepenuhnya adalah EMA bersilang dengan 8 EMA dan 21 EMA, di mana semua baki memegang kosong.

Strategi dalam proses operasi menggunakan pembolehubah pengurusan status untuk mengesan status perdagangan, jenis isyarat yang telah dicetuskan dan titik peralihan struktur pasaran, memastikan keserasian dan ketepatan pelaksanaan logik.

Kelebihan Strategik

Dengan mengkaji kod strategi ini secara mendalam, kelebihan yang ketara dapat diringkaskan:

  1. Mekanisme pengesahan bergandaDengan menggabungkan EMA bersilang, penurunan momentum dan isyarat berterusan trend, risiko penembusan palsu dan isyarat salah dikurangkan dengan ketara. Reka bentuk penapisan berlapis ini meningkatkan kualiti dan kebolehpercayaan perdagangan dengan ketara.

  2. Pengurusan Wang PintarMekanisme Hentian Sebahagian (Hentian Sebahagian 50%) adalah ciri strategi ini, ia membolehkan peniaga melindungi sebahagian daripada keuntungan mereka apabila struktur pasaran merosot, sambil mengekalkan kedudukan yang tersisa untuk menangkap kemungkinan pemulihan trend, mencapai keseimbangan risiko dan pulangan.

  3. Kesesuaian struktur pasaranDengan mengesan secara dinamik pembentukan titik tinggi dan rendah, strategi dapat mengenal pasti perubahan struktur pasaran, menjadikannya stabil dalam pelbagai keadaan pasaran.

  4. Reka bentuk parameter yang fleksibelStrategi ini menawarkan pelbagai parameter yang boleh disesuaikan, termasuk panjang EMA, kelipatan sensitiviti, dan tetapan pengunduran pivot, yang membolehkan peniaga mengoptimumkan mengikut keadaan pasaran yang berbeza dan pilihan risiko peribadi.

  5. Prinsip menghormati trendStrategi ini direka mengikut prinsip “berjalan mengikut trend”, hanya melakukan lebih banyak dalam trend menaik yang disahkan, mengelakkan risiko tinggi yang dibawa oleh perdagangan berlawanan arah.

Risiko Strategik

Walaupun strategi ini direka dengan baik, terdapat beberapa risiko dan batasan yang berpotensi:

  1. Risiko kelewatan kemasukanOleh kerana perlu menunggu isyarat “perlanjutan trend pertama”, strategi mungkin terlepas bahagian awal kenaikan trend, yang mungkin menyebabkan harga masuk yang lebih tinggi dalam keadaan penembusan cepat.

    • Penyelesaian: Penyelesaian boleh dipertimbangkan dalam kombinasi dengan penunjuk pengenalan trend awal yang lain, atau dengan menyesuaikan parameter penurunan kuantiti dinamik.
  2. Kesilapan dalam menilai struktur pasaranDalam persekitaran yang sangat tidak menentu, pembentukan titik tinggi dan rendah mungkin tidak cukup jelas, yang menyebabkan penilaian struktur pasaran yang salah dan kerugian separa yang tidak perlu.

    • Penyelesaian: Meningkatkan kekukuhan pengesahan pivot, atau menyesuaikan parameter pengembalian pivot dalam pasaran yang bergolak tinggi.
  3. Kepekaan ParameterPrestasi strategi sangat bergantung kepada parameter seperti panjang EMA, kelipatan sensitiviti ATR, dan parameter yang tidak sesuai boleh menyebabkan perdagangan berlebihan atau kehilangan isyarat yang berkesan.

    • Penyelesaian: Melakukan pengesanan sejarah yang mencukupi untuk mencari kombinasi parameter yang stabil dalam kitaran pasaran yang berbeza.
  4. Kehilangan selepas menangApabila penangguhan separa dicetuskan, strategi tidak menentukan mekanisme kemasukan semula yang jelas, dan mungkin kehilangan peluang kenaikan selepas pemulihan trend.

    • Penyelesaian: Tambah logik masuk semula selepas penutupan sebahagian, seperti membenarkan peningkatan kedudukan apabila struktur pasaran kembali positif.

Arah pengoptimuman strategi

Berdasarkan analisis kod, strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Pengaturan parameter dinamik: Panjang EMA semasa dan kelipatan kepekaan tetap, anda boleh mempertimbangkan untuk menyesuaikan parameter ini secara automatik mengikut turun naik pasaran. Sebagai contoh, menggunakan kelipatan kepekaan yang lebih kecil dalam persekitaran turun naik rendah dan menggunakan nilai yang lebih besar dalam persekitaran turun naik tinggi. Ini dapat menjadikan strategi lebih sesuai dengan keadaan pasaran yang berbeza.

  2. Meningkatkan penilaian struktur pasaran kuantitatifAnalisis struktur pasaran yang sedia ada agak mudah, tetapi sistem penilaian struktur pasaran yang lebih kompleks boleh dibangunkan dengan mengambil kira kedudukan relatif, kelajuan dan amplitud pembentukan beberapa titik tinggi dan rendah, untuk menilai kekuatan trend dan potensi pembalikan dengan lebih tepat.

  3. Pengesahan jumlah transaksi yang disatukanStrategi semasa hanya berdasarkan pergerakan harga, analisis jumlah dagangan boleh ditambah sebagai faktor pengesahan tambahan. Sebagai contoh, permintaan untuk meningkatkan jumlah dagangan apabila mencetuskan isyarat beli, atau peningkatan jumlah dagangan sebagai isyarat amaran yang lebih kuat apabila struktur pasaran terganggu.

  4. Strategi pengurusan optimum selepas penutupan sebahagian“Selain itu, kita juga perlu mempertimbangkan bagaimana kita boleh menggunakan wang yang kita ada untuk membiayai perniagaan kita”, katanya.

    • Tetapkan Tracking Stop Loss Perlindungan Kedudukan Sisa Selepas Penutupan Sebahagian
    • Ianya dibenarkan dalam keadaan tertentu.
    • Syarat untuk keluar dari baki kedudukan mengikut tahap pemulihan struktur pasaran
  5. Menambah analisis jangka masa berbilangDengan mengintegrasikan analisis trend untuk jangka masa yang lebih lama, anda dapat meningkatkan kestabilan strategi. Sebagai contoh, anda hanya boleh melakukan lebih banyak pada jangka masa yang lebih kecil apabila trend naik di garisan matahari, dan dengan itu anda mengurangkan risiko perdagangan dalam trend besar.

ringkaskan

EMA cross-dynamic confirmation partial stop loss strategy adalah sistem perdagangan kuantitatif yang canggih yang menggabungkan analisis teknikal dan pengurusan risiko. Kelebihan utamanya adalah mekanisme pengesahan bertingkat dan reka bentuk partial stop loss yang inovatif, yang dapat mengawal risiko dengan berkesan sambil menangkap trend. Dengan menunggu isyarat “perlanjutan trend pertama” untuk masuk, strategi ini mengurangkan kemungkinan perdagangan palsu, sementara partial stop loss berdasarkan struktur pasaran menyediakan mekanisme perlindungan wang yang fleksibel.

Strategi ini sangat sesuai untuk persekitaran pasaran yang tidak menentu, trend yang jelas, dan mempunyai nilai rujukan yang tinggi untuk pedagang kuantitatif yang ingin memperkenalkan kawalan risiko yang lebih halus dalam perdagangan trend. Dengan mengoptimumkan lagi kaedah analisis struktur pasaran, penyesuaian parameter dinamik dan integrasi pelbagai rangka masa, strategi ini mempunyai banyak ruang untuk pembangunan dan penambahbaikan.

Akhirnya, penerapan strategi yang berjaya memerlukan pedagang yang mempunyai pemahaman yang mendalam tentang pasaran dan dapat menyesuaikan parameter yang sesuai dengan keadaan pasaran yang berbeza, meningkatkan fleksibiliti dan kestabilan strategi sambil mengekalkan logik teras strategi.

Kod sumber strategi
/*backtest
start: 2024-06-30 00:00:00
end: 2025-06-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":50000000}]
*/

//@version=5
// This strategy buys on the 'First Continuation' signal and adds a
// partial stop-loss that triggers on a lower-low and lower-high market structure break.
// This version corrects the 'strategy.close' argument error.
strategy("First Continuation Strategy w/ Partial SL (Corrected)", 
         overlay=true, 
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=10,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

// --- INPUTS ---
emaLength = input.int(21, "Slow EMA Length")
shortEmaLength = input.int(8, "Fast EMA Length")
sensitivityMultiplier = input.float(1.5, title="Sensitivity Multiplier")
pivotLeft = input.int(5, title="Pivot Lookback Left")
pivotRight = input.int(5, title="Pivot Lookback Right")


// --- CALCULATIONS ---
ema21 = ta.ema(close, emaLength) 
ema8 = ta.ema(close, shortEmaLength)
atr = ta.atr(14) 
distance = close - ema21
threshold = atr * sensitivityMultiplier


// --- STATE MANAGEMENT ---
var bool inEmaUptrend = false, var bool inEmaDowntrend = false
var bool firstBuySignalFired = false, var bool firstSellSignalFired = false
var bool firstContinuationBuyFired = false, var bool firstContinuationSellFired = false

// State management for the new stop-loss logic
var float lastHigh = na, var float secondLastHigh = na
var float lastLow = na, var float secondLastLow = na
var bool partialStopTriggered = false

bool bullishCross = ta.crossover(ema8, ema21)
bool bearishCross = ta.crossunder(ema8, ema21)

// Reset state on trend changes
if (bullishCross)
    inEmaUptrend := true, inEmaDowntrend := false
    firstBuySignalFired := false, firstContinuationBuyFired := false 
if (bearishCross)
    inEmaUptrend := false, inEmaDowntrend := true
    firstSellSignalFired := false, firstContinuationSellFired := false


// --- PIVOT & TRIGGER LOGIC ---
// Detect new swing points
float newPivotHigh = ta.pivothigh(high, pivotLeft, pivotRight)
float newPivotLow = ta.pivotlow(low, pivotLeft, pivotRight)

// If in a trade, track the last two swing points
if (strategy.position_size > 0)
    if not na(newPivotHigh)
        secondLastHigh := lastHigh
        lastHigh := newPivotHigh
    if not na(newPivotLow)
        secondLastLow := lastLow
        lastLow := newPivotLow

// Stop-Loss Condition: A confirmed lower high AND lower low have formed
bool marketStructureBreak = not na(lastHigh) and not na(secondLastHigh) and not na(lastLow) and not na(secondLastLow) and lastHigh < secondLastHigh and lastLow < secondLastLow

// Reset pivot history and stop-loss flag when position is closed
if (strategy.position_size == 0 and strategy.position_size[1] != 0)
    lastHigh := na, secondLastHigh := na
    lastLow := na, secondLastLow := na
    partialStopTriggered := false

// Standard V8 Trigger Logic
bool isMomentumBar = math.abs(distance) >= (threshold / 1.5)
bool isPositiveMomentumBar = isMomentumBar and distance > 0
bool buySignal = inEmaUptrend and isPositiveMomentumBar
bool buyTrigger = buySignal and not buySignal[1]
bool initialBuyTrigger = buyTrigger and not firstBuySignalFired
bool firstContinuationBuy = buyTrigger and firstBuySignalFired and not firstContinuationBuyFired

if (initialBuyTrigger)
    firstBuySignalFired := true
if (firstContinuationBuy)
    firstContinuationBuyFired := true


// --- STRATEGY EXECUTION ---
// ENTRY: Buy only on the first continuation 'b' signal and when flat.
if (firstContinuationBuy and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)

// PARTIAL EXIT (NEW): Close 50% of the position if market structure breaks down.
if (strategy.position_size > 0 and marketStructureBreak and not partialStopTriggered)
    qtyToClose = strategy.position_size * 0.5
    strategy.close(id="Long", qty=qtyToClose, comment="SL 50% on Structure Break") // CORRECTED ARGUMENT
    partialStopTriggered := true // Ensure this only triggers once per trade

// FULL EXIT: Close any remaining position on a bearish cross.
if (strategy.position_size > 0 and bearishCross)
    strategy.close("Long", comment="Exit on Bearish Cross")


// --- PLOTTING ---
plot(ema8, "Fast EMA", color=color.new(color.blue, 0), linewidth=2)
plot(ema21, "Slow EMA", color=color.new(color.orange, 0), linewidth=2)
// Plot pivots to visualize the market structure
plot(newPivotHigh, "Pivot High", color=color.new(color.red, 50), style=plot.style_circles, offset=-pivotRight)
plot(newPivotLow, "Pivot Low", color=color.new(color.green, 50), style=plot.style_circles, offset=-pivotRight)