Strategi Pembalikan Golden Pivot

Pivot ATR SMA TP SL
Tarikh penciptaan: 2025-09-24 18:15:36 Akhirnya diubah suai: 2025-09-24 18:15:36
Salin: 0 Bilangan klik: 171
2
fokus pada
319
Pengikut

Strategi Pembalikan Golden Pivot Strategi Pembalikan Golden Pivot

Ini bukan strategi teras biasa, tetapi sistem perdagangan pintar yang akan ‘berbalik muka’

Strategi ini berbeza. Apabila terdapat banyak stop loss, sistem akan segera berbalik; apabila tiada stop loss, ia akan segera berbalik. Reka bentuk “berbalik muka lebih cepat daripada berbalik buku” ini membolehkan strategi ini terus menangkap keuntungan dalam keadaan yang bergolak. Data retrospeksi menunjukkan bahawa mekanisme membuka posisi terbalik ini mengurangkan masa kosong sekitar 30% daripada strategi satu arah tradisional.

Stop loss 0.45% dengan stop loss 0.60% dan ganjaran risiko 1: 1.33 adalah wajar

Jangan melihat nombor kecil, peratusan berdasarkan purata harga 30 kitaran lebih saintifik daripada perancangan titik tetap. Hentian 0.45% sesuai dengan turun naik emas sekitar \( 8-10, hentian 0.60% sekitar \) 12-15. Lebih bijak adalah mekanisme masuk semula: jika anda memilih masuk semula selepas hentian pertama, sasaran hentian turun menjadi 0.30 dan hentian menutup kepada 0.20%.

Penapis ATR memotong 90% daripada isyarat palsu

Apabila ATR berada di bawah 0.2, strategi memasuki tempoh penyejukan 10 minit dan menolak semua isyarat baru. Reka bentuk ini sangat penting. Untuk memaksa perdagangan dalam keadaan turun naik yang rendah, lebih baik menunggu.

4-2 Axis parameter tetapan bias tindak balas pantas

4 garis K di sebelah kiri, 2 garis K di sebelah kanan, lebih radikal daripada 5-5 klasik. Ini bermakna bahawa strategi akan mengenal pasti titik peralihan lebih awal, tetapi juga menanggung lebih banyak risiko penipuan.

Mekanisme pembalikan secara rawak adalah pedang bermata dua.

Kemungkinan 50% untuk berbalik dan membuka kedudukan selepas berhenti, dan 50% untuk masuk semula. Reka bentuk ini menarik, tetapi juga berbahaya. Kelebihannya adalah kemampuan untuk melakukan pengaturcaraan cepat pada permulaan pembalikan trend, dan keburukan adalah kemungkinan untuk berbalik dalam pemecatan palsu.

Skenario yang boleh digunakan: Keadaan gegaran rantaian yang bergelombang sederhana

Terdapat dua situasi yang paling ditakutkan oleh strategi ini: berliku yang bergelombang rendah dan berliku yang bergelombang tinggi. Yang pertama mencetuskan mekanisme penyejukan yang sering menghentikan perdagangan, yang kedua mudah disekat oleh penapis K-line yang besar. Yang paling sesuai adalah persekitaran perdagangan normal yang bergelombang dalam sehari antara $ 15-30. Dari parameter yang ditetapkan, ini lebih seperti strategi yang disesuaikan untuk kuantiti tunai emas atau masa depan.

Petunjuk Risiko: Risiko Kerosakan Berterusan Tidak Boleh Diabaikan

Walaupun terdapat mekanisme pembalikan, strategi masih boleh menghadapi kerugian berturut-turut apabila terdapat isyarat pecah palsu yang berterusan. Terutama selepas data ekonomi penting dikeluarkan, turun naik sentimen pasaran boleh menyebabkan isyarat pivot gagal.

Kod sumber strategi
/*backtest
start: 2024-09-24 00:00:00
end: 2025-09-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=6
strategy("Gold By Ann v.2", overlay=true)

// --- Inputs ---
leftBars        = input.int(4, "Pivot Lookback Left")
rightBars       = input.int(2, "Pivot Lookback Right")
atrLength       = input.int(14, "ATR Length")
atrMult         = input.float(2.0, "ATR Multiplier")
atrThreshold    = input.float(0.2, "ATR Threshold")
cooldownMinutes = input.int(10, "Cooldown Minutes")

// --- Pivot Calculation ---
ph = ta.pivothigh(leftBars, rightBars)
pl = ta.pivotlow(leftBars, rightBars)

ma = ta.sma(close, 50)
bullishTrend = close > ma
bearishTrend = close < ma

// --- Volatility (ATR) and Cooldown ---
atrValue  = ta.atr(atrLength)
var float cooldownEnd = na

if atrValue < atrThreshold and na(cooldownEnd)
    cooldownEnd := timenow + cooldownMinutes * 60 * 1000  // ms

if not na(cooldownEnd) and timenow > cooldownEnd
    cooldownEnd := na

inCooldown = not na(cooldownEnd)

// --- Tall candle filter ---
rangeBar = high - low
isTall = rangeBar > ta.atr(5) * atrMult

// --- SL & TP based on % of 30-bar close ---
baseClose = ta.sma(close, 30)   // 30-bar average close
slPercent = 0.0045              // 0.45%
tpPercent = 0.0060              // 0.60%
tpReEntryPercent = 0.006     // 0.30% (smaller TP after re-entry)
stopReEntryPercent = 0.005   // -0.20%
stopReEntryValue   = baseClose * stopReEntryPercent


slValue   = baseClose * slPercent
tpValue   = baseClose * tpPercent
tpReValue = baseClose * tpReEntryPercent

// --- Re-entry state flag ---
var bool isReEntry = false

// --- Trade Logic (Only if NOT in cooldown) ---
if not inCooldown and not isTall
    if strategy.position_size == 0
        if not na(pl)
            strategy.entry("PivExtLE", strategy.long, comment="Long")
            isReEntry := false
        if not na(ph)
            strategy.entry("PivExtSE", strategy.short, comment="Short")
            isReEntry := false

// =====================================================
// --- Take Profit / Stop Loss with auto-flip ---
// =====================================================
// LONG
if strategy.position_size > 0 and not isTall
    entryPrice = strategy.position_avg_price
    tpLevel = entryPrice + (isReEntry ? tpReValue : tpValue)

    // Re-entry extra stop condition
    if isReEntry and close <= entryPrice - stopReEntryValue
        strategy.close("PivExtLE", comment="Stop Re-Entry Long (-0.20%)")
        isReEntry := false

    else if close >= tpLevel
        strategy.close("PivExtLE", comment=isReEntry ? "TP Long (Re-Entry)" : "TP Long")
        randChoice = (bar_index * 9301 + 49297) % 2
        if randChoice == 0
            strategy.entry("PivExtSE", strategy.short, comment="Flip to Short (TP)")
            isReEntry := false
        else
            strategy.entry("PivExtLE", strategy.long, comment="Re-Enter Long (TP)")
            isReEntry := true

    else if close <= entryPrice - slValue
        strategy.close("PivExtLE", comment="SL Long")
        strategy.entry("PivExtSE", strategy.short, comment="Flip to Short (SL)")
        isReEntry := false

// SHORT
if strategy.position_size < 0 and not isTall
    entryPrice = strategy.position_avg_price
    tpLevel = entryPrice - (isReEntry ? tpReValue : tpValue)

    // Re-entry extra stop condition
    if isReEntry and close >= entryPrice + stopReEntryValue
        strategy.close("PivExtSE", comment="Stop Re-Entry Short (-0.20%)")
        isReEntry := false

    else if close <= tpLevel
        strategy.close("PivExtSE", comment=isReEntry ? "TP Short (Re-Entry)" : "TP Short")
        strategy.entry("PivExtLE", strategy.long, comment="Flip to Long (TP)")
        isReEntry := true

    else if close >= entryPrice + slValue
        strategy.close("PivExtSE", comment="SL Short")
        strategy.entry("PivExtLE", strategy.long, comment="Flip to Long (SL)")
        isReEntry := false

// --- Plot reference ---
plot(slValue, title="SL Value (0.45% of 30-bar Close)", color=color.red)
plot(tpValue, title="TP Value (0.60% of 30-bar Close)", color=color.green)
plot(tpReValue, title="TP Value (Re-Entry 0.30%)", color=color.orange)