Golden Pivot Reversal Strategie

Pivot ATR SMA TP SL
Erstellungsdatum: 2025-09-24 18:15:36 zuletzt geändert: 2025-09-24 18:15:36
Kopie: 0 Klicks: 171
2
konzentrieren Sie sich auf
319
Anhänger

Golden Pivot Reversal Strategie Golden Pivot Reversal Strategie

Das ist keine gewöhnliche Kernstrategie, sondern ein intelligentes Handelssystem, das “die Gesichter umdreht”.

Diese Strategie unterscheidet sich von der herkömmlichen Achse-Strategie, bei der ein Stop-Loss mit mehreren Köpfen erfolgt. Bei einem Stop-Loss mit mehreren Köpfen wird das System sofort umgedreht; bei einem Stop-Loss mit leeren Köpfen wird sofort umgedreht.

0,45% Stop-Loss mit 0,60% Stop-Loss, das Risiko-Return-Verhältnis von 1:1.33 ist durchaus angemessen

Die Zahlen sind klein, und die Prozentsätze, die auf den 30-Zyklus-Durchschnittspreisen basieren, sind viel wissenschaftlicher als die Fixpunkte. Ein Stop-Loss von 0,45% entspricht einer Schwankung von etwa 8-10 US-Dollar, ein Stop-Loss von 0,60% etwa 12-15 US-Dollar. Ein intelligenter Rücktrittsmechanismus: Wenn nach dem ersten Stop-Loss ein Rücktritt gewählt wird, wird das Stop-Loss-Ziel auf 0,30 gesenkt, und der Stop-Loss wird auf 0,20% geschlossen.

ATR Filter schneiden 90% der falschen Signale direkt ab

Wenn der ATR unterhalb der 0.2-Trenche liegt, geht die Strategie in eine 10-minütige Abkühlphase und lehnt alle neuen Signale ab. Diese Konstruktion ist von entscheidender Bedeutung. In einer Umgebung mit geringer Volatilität ist es besser, zu warten, als den Handel zu erzwingen.

4-2 Axial Parameter Einstellung der Schwerpunkt schnelle Reaktion

Die 4 K-Linien auf der linken und 2 K-Linien auf der rechten Seite sind in einer Axial-Einstellung radikaler eingestellt als die klassischen 5-5-Parameter. Dies bedeutet, dass die Strategie die Wendepunkte früher erkennt, aber auch ein höheres Risiko für falsche Durchbrüche birgt. Die Kombination funktioniert besser in einem Trend.

Die Zufallsauslösung ist ein zweischneidiges Schwert.

Nach dem Stopp gibt es eine 50%ige Wahrscheinlichkeit, dass die Position umgedreht wird und wieder eingegeben wird. Das Design ist sehr interessant, aber auch sehr gefährlich. Der Vorteil ist, dass man in der Anfangsphase des Trendwechsels schnell umschalten kann, der Nachteil ist, dass man in einem falschen Durchbruch zurückschlagen kann.

Anwendbarer Szenario: Zwischenschwingungen mit mittlerer Schwankung

Die Strategie fürchtet sich vor zwei Situationen: Einseitige Verlaufsszenarien mit extrem niedrigen und extrem hohen Schwankungen. Die erstere löst häufige Handelsunterbrechungen durch den Kühlmechanismus aus, die letztere wird leicht von einem großen K-Linie-Filter blockiert. Die am besten geeignete Strategie ist die normale Handelsumgebung, die innerhalb eines Tages zwischen 15 und 30 US-Dollar schwankt.

Risikohinweis: Die Gefahr einer langfristigen Verlustquote ist nicht zu ignorieren

Trotz des Umkehrmechanismus kann die Strategie bei anhaltenden Falsch-Breakout-Signalen mit fortgesetzten Verlusten konfrontiert werden. Besonders vor und nach der Veröffentlichung wichtiger Wirtschaftsdaten können Marktstimmungsschwankungen dazu führen, dass die Pivot-Signale ausfallen. Es wird empfohlen, die einzelnen Positionen streng zu kontrollieren und die Strategie vor wichtigen Ereignissen manuell auszusetzen.

Strategiequellcode
/*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)