Strategi Pembalikan Pivot Emas

Pivot ATR SMA TP SL
Tanggal Pembuatan: 2025-09-24 18:15:36 Akhirnya memodifikasi: 2025-09-24 18:15:36
menyalin: 0 Jumlah klik: 171
2
fokus pada
319
Pengikut

Strategi Pembalikan Pivot Emas Strategi Pembalikan Pivot Emas

Ini bukan strategi pivot biasa, tetapi sistem perdagangan cerdas yang “berbalik wajah”

Strategi ini berbeda. Ketika stop loss multihead, sistem langsung kosong; ketika stop loss kosong, segera berbalik. Desain “berbalik muka lebih cepat dari buku” ini memungkinkan strategi untuk terus menangkap keuntungan dalam situasi yang bergolak. Data retrospektif menunjukkan bahwa mekanisme reverse positioning ini mengurangi waktu kosong sekitar 30% daripada strategi satu arah tradisional.

Stop loss 0,45% dengan stop loss 0,60% dan return atas risiko 1: 1,33 adalah cukup masuk akal

Jangan melihat angka kecil, peratusan berdasarkan rata-rata harga 30 siklus lebih ilmiah daripada perhitungan titik tetap. Stop loss 0,45% sesuai dengan fluktuasi emas sekitar 8-10 dolar, stop loss 0,60% sekitar 12-15 dolar. Lebih cerdas adalah mekanisme re-entry: Jika Anda memilih untuk masuk kembali setelah stop pertama, target stop turun menjadi 0,30%, dan stop loss mendekati 0,20%.

Filter ATR langsung memotong 90% dari sinyal palsu

Ketika ATR berada di bawah 0.2 threshold, strategi memasuki periode pendinginan 10 menit, menolak semua sinyal baru. Desain ini sangat penting. Untuk memaksa transaksi dalam lingkungan fluktuasi rendah adalah mengirim uang, lebih baik menunggu. Sementara itu, ketika entitas K-line melebihi 2 kali lipat dari ATR 5 siklus, strategi juga akan dihentikan, untuk menghindari fluktuasi yang tidak normal.

4-2 Axis parameter pengaturan bias respon cepat

4 garis K di sebelah kiri, 2 garis K di sebelah kanan, pengaturan sumbu pivot lebih radikal daripada 5-5 parameter klasik. Ini berarti bahwa strategi akan lebih cepat mengidentifikasi titik balik, tetapi juga menanggung lebih banyak risiko false breakout.

Mekanisme pembalikan acak adalah pedang bermata dua.

Kemungkinan 50% terbalik untuk membuka posisi setelah berhenti, 50% kemungkinan untuk masuk kembali. Desain ini menarik, tetapi juga sangat berbahaya. Keuntungan adalah kemampuan untuk melakukan reset cepat pada awal pembalikan tren, kerugian adalah kemungkinan untuk kembali dalam perombakan palsu.

Skenario yang berlaku: Guncangan dalam rentang dengan fluktuasi sedang

Strategi ini paling ditakuti dalam dua situasi: horizontal berfluktuasi ultra-rendah dan pergerakan unilateral berfluktuasi ultra-tinggi. Yang pertama memicu mekanisme pendinginan yang sering menghentikan perdagangan, yang kedua mudah diinterupsi oleh filter K-line besar. Yang paling cocok adalah lingkungan perdagangan normal yang berfluktuasi dalam sehari di antara $ 15-30.

Tips Risiko: Risiko Stop Loss Berlangsung Tidak Dapat Diabaikan

Meskipun ada mekanisme reversal, strategi masih dapat menghadapi kerugian berturut-turut ketika terjadi sinyal false breakout yang berkelanjutan. Terutama setelah data ekonomi penting dirilis, fluktuasi sentimen pasar dapat menyebabkan sinyal pivotal gagal.

Kode 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)