Strategi Mengikuti Aliran Pecah Pivot Dinamik

EMA ATR VOLUME BREAKOUT Pivot TRAILING
Tarikh penciptaan: 2025-05-22 10:09:54 Akhirnya diubah suai: 2025-05-22 10:09:54
Salin: 2 Bilangan klik: 349
2
fokus pada
319
Pengikut

Strategi Mengikuti Aliran Pecah Pivot Dinamik Strategi Mengikuti Aliran Pecah Pivot Dinamik

Gambaran keseluruhan

Strategi pelacakan trend penyebrangan teras dinamik adalah strategi perdagangan kuantitatif yang komprehensif yang menggabungkan pemikiran utama tiga ahli perdagangan legenda: teknik penyebrangan teras Jesse Livermore, kaedah pengesahan trend Ed Seykota, dan prinsip pengurusan risiko Paul Tudor Jones. Strategi ini melaksanakan kemasukan tepat dalam peluang perdagangan yang berkemungkinan tinggi dengan mengenal pasti penembusan harga utama, menggabungkan mekanisme pengesahan berganda.

Prinsip Strategi

Prinsip kerja strategi ini dibina di atas kerangka analisis teknikal bertingkat-tingkat. Pertama, strategi ini menggunakan titik-titik tinggi dan rendah untuk mengenal pasti tahap rintangan sokongan yang penting, yang sering mewakili harga psikologi penting di pasaran. Apabila harga menembusi titik-titik penting ini, ia sering menandakan permulaan trend baru atau kesinambungan trend yang sedia ada. Untuk isyarat berbilang kepala, strategi ini memerlukan harga menutup untuk menembusi titik-titik tinggi dan harga berada di atas 50 EMA, sementara 20 EMA mesti berada di atas 200 EMA untuk mengesahkan trend naik.

Kelebihan Strategik

Strategi ini mempunyai pelbagai kelebihan yang ketara. Pertama, mekanisme pengesahan berganda meningkatkan ketepatan isyarat perdagangan dengan ketara, mengelakkan isyarat palsu yang mungkin dihasilkan oleh satu indikator. Kedua, sistem pengurusan risiko ATR dinamik dapat menyesuaikan secara automatik tahap berhenti dan mengesan berhenti dan mengesan kerugian mengikut turun naik pasaran.

Risiko Strategik

Walaupun strategi telah direka dengan teliti, terdapat beberapa risiko yang berpotensi perlu diperhatikan. Pertama, dalam pasaran yang bergolak, strategi mungkin sering mengalami penembusan palsu, yang menyebabkan kerugian kecil berturut-turut. Walaupun mekanisme pengesahan berganda membantu mengurangkan keadaan ini, ia tidak dapat dielakkan sepenuhnya. Kedua, strategi bergantung pada kehadiran pasaran yang sedang tren, yang mungkin tidak berfungsi dengan baik pada tahap penyusunan melintang jangka panjang.

Arah pengoptimuman strategi

Terdapat beberapa arah yang boleh dioptimumkan untuk strategi untuk meningkatkan prestasinya. Pertama, sistem parameter penyesuaian boleh diperkenalkan, menyesuaikan kitaran EMA dan kelipatan ATR secara dinamik mengikut turun naik pasaran dan kekuatan trend, yang akan menjadikan strategi lebih sesuai dengan keadaan pasaran yang berbeza. Kedua, modul pengenalan keadaan pasaran boleh ditambah, membezakan pasaran yang sedang tren dan pasaran yang bergolak, menerapkan logik perdagangan yang berbeza dalam keadaan yang berbeza.

ringkaskan

Strategi trend-following trend-following adalah strategi perdagangan kuantitatif yang komprehensif, kuat dan berasaskan teori. Ia berjaya menggabungkan konsep analisis teknikal klasik dengan teknologi pengurusan risiko moden untuk membentuk sistem perdagangan yang agak lengkap.

Kod sumber strategi
/*backtest
start: 2024-05-22 00:00:00
end: 2025-05-20 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("Livermore-Seykota Breakout Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ----- Inputs -----
emaMainLen = input.int(50, title="Main EMA (e.g., 50)")
emaFastLen = input.int(20, title="Fast EMA (Seykota)")
emaSlowLen = input.int(200, title="Slow EMA (Seykota)")
pivotLen = input.int(3, title="Left/Right Bars for Pivot (Livermore)")
atrLen = input.int(14, title="ATR Length")
stopATRmult = input.float(3.0, title="ATR Multiplier for Stop-Loss", step=0.1)
trailATRmult = input.float(2.0, title="ATR Multiplier for Trailing Stop", step=0.1)
volSmaLen = input.int(20, title="SMA of Volume")

// ----- Indicators -----
emaMain = ta.ema(close, emaMainLen)
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
volSMA = ta.sma(volume, volSmaLen)
atr = ta.atr(atrLen)

// ----- Livermore Pivot High/Low -----
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float lastPivotHigh = na
var float lastPivotLow = na
if (not na(ph))
    lastPivotHigh := ph
if (not na(pl))
    lastPivotLow := pl

// ----- Entry Conditions -----
// Livermore Breakout: price breaks above last pivot high and is above main EMA
buyCondition = not na(lastPivotHigh) and close > lastPivotHigh and close > emaMain
// Seykota Trend Filter: EMA20 > EMA200 (uptrend)
buyTrend = emaFast > emaSlow
// Volume Confirmation: volume > SMA(volume)
buyVolume = volume > volSMA

// Livermore Breakdown: price breaks below last pivot low and is below main EMA
sellCondition = not na(lastPivotLow) and close < lastPivotLow and close < emaMain
// Seykota Trend Filter: EMA20 < EMA200 (downtrend)
sellTrend = emaFast < emaSlow
// Volume Confirmation for Short: volume > SMA(volume)
sellVolume = volume > volSMA

// Entry logic for Long/Short positions
if (buyCondition and buyTrend and buyVolume)
    strategy.entry("Long", strategy.long)
if (sellCondition and sellTrend and sellVolume)
    strategy.entry("Short", strategy.short)

// ----- Stop-loss and Trailing Stop (Paul Tudor Jones style) -----
// Initial Stop-Loss based on ATR
stopLevelLong = strategy.position_avg_price - atr * stopATRmult
stopLevelShort = strategy.position_avg_price + atr * stopATRmult
// Trailing Stop Distance based on ATR
trailPoints = atr * trailATRmult

// Apply stop and trailing exit rules
if (strategy.position_size > 0)
    strategy.exit("Exit Long", from_entry="Long", stop=stopLevelLong, trail_points=0, trail_offset=trailPoints)
if (strategy.position_size < 0)
    strategy.exit("Exit Short", from_entry="Short", stop=stopLevelShort, trail_points=0, trail_offset=trailPoints)