Estrategia de reversión del pivote dorado

Pivot ATR SMA TP SL
Fecha de creación: 2025-09-24 18:15:36 Última modificación: 2025-09-24 18:15:36
Copiar: 0 Número de Visitas: 171
2
Seguir
319
Seguidores

Estrategia de reversión del pivote dorado Estrategia de reversión del pivote dorado

Esta no es una estrategia de eje común, sino un sistema de transacciones inteligentes que “vuelve la cara”

¿La estrategia tradicional del eje central se detiene cuando se termina? Esta estrategia es diferente. Cuando se detiene en múltiples direcciones, el sistema se vuelve vacío inmediatamente; cuando se detiene en blanco, se vuelve de inmediato. Este diseño de “voltear la cara más rápido que la vuelta de los libros” permite que la estrategia pueda capturar beneficios continuos en situaciones de crisis.

El 0.45% de stop loss es equivalente al 0.60% de stop loss, y el rendimiento por riesgo es razonable en 1:1.33.

No se preocupe por los números pequeños, el diseño porcentual basado en el promedio de 30 períodos es más científico que el número de puntos fijos. Un stop loss del 0.45% corresponde a una fluctuación del oro de aproximadamente 8-10 dólares, un stop loss del 0.60% de aproximadamente 12-15 dólares. El mecanismo de reingreso es más inteligente: si se opta por un reingreso después de la primera parada, el objetivo de la parada se reduce a 0.30 y el stop loss se cierra al 0.20%. Este ajuste dinámico hace que la estrategia sea más conservadora después de la ganancia.

El filtro ATR cortará directamente el 90% de las señales falsas

Cuando el ATR está por debajo del umbral de 0.2, la estrategia entra en un período de enfriamiento de 10 minutos, rechazando todas las nuevas señales. Este diseño es muy importante. En un entorno de baja volatilidad, forzar una transacción es enviar dinero, no esperar.

4-2 Ajuste de los parámetros del eje de inclinación de respuesta rápida

La configuración del eje central de 4 líneas K a la izquierda y 2 líneas K a la derecha es más radical que el clásico parámetro 5-5. Esto significa que la estrategia identifica los puntos de inflexión antes, pero también asume más riesgos de falsas rupturas. La combinación funciona mejor en una situación de tendencia.

El mecanismo de giro aleatorio es una espada de doble filo.

La probabilidad de reversión de la posición después de la parada es del 50% y la probabilidad de reingreso es del 50%. Este diseño es muy interesante, pero también muy peligroso. La ventaja es que se puede ajustar rápidamente al inicio de la reversión de la tendencia, la desventaja es que es posible volver a enfrentarse en una falsa ruptura.

Escenario de aplicación: Situaciones de oscilaciones intermedias de fluctuación moderada

Las estrategias más temidas son dos situaciones: el horizonte ultrabajo y el mercado unilateral ultraalto. El primero activa el mecanismo de enfriamiento para detener la negociación con frecuencia, y el segundo es fácilmente interceptado por un filtro de línea K grande. Lo más adecuado es el entorno de negociación normal de fluctuaciones diarias entre \( 15 y \) 30.

El riesgo de pérdidas continuas no puede ignorarse

A pesar de la existencia de un mecanismo de reversión, la estrategia puede enfrentarse a pérdidas continuas en caso de que se produzca una señal de brecha falsa persistente. Especialmente después de la publicación de datos económicos importantes, las fluctuaciones de la emoción en el mercado pueden hacer que la señal del eje falle. Se recomienda un control estricto de las posiciones individuales y la suspensión manual de la estrategia antes de eventos importantes.

Código Fuente de la Estrategia
/*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)