Estrategia de captura de triple resonancia

WT CRSI LSDD
Fecha de creación: 2025-10-09 14:09:21 Última modificación: 2025-10-09 14:09:21
Copiar: 0 Número de Visitas: 212
2
Seguir
319
Seguidores

Estrategia de captura de triple resonancia Estrategia de captura de triple resonancia

Los tres indicadores deben emitir señales simultáneamente dentro de 2 líneas K, de lo contrario no se habla

Esta no es una estrategia de múltiples indicadores común. La combinación de WaveTrend + Connors RSI + Lineal Regression Deviation, la clave está en el mecanismo de sincronización de la ventana: todas las señales de compra deben aparecer dentro de las 2 líneas K, las señales individuales se ignoran directamente. Este diseño filtra directamente el 90% de las señales falsas.

Las estrategias tradicionales son susceptibles a generar ruido al juzgar los indicadores de manera independiente o a requerir que se produzcan un gran número de oportunidades perdidas al mismo tiempo. Esta estrategia encuentra un punto de equilibrio: la ventana de tolerancia a errores de la línea K garantiza la correlación de la señal y evita requisitos de sincronización demasiado estrictos.

WaveTrend tiene una línea de venta por encima de 48, más sensible que el RSI estándar

La longitud del WT es de 10 ciclos, la línea de venta-sobre-48, la línea de compra-sobre-48. Esta combinación de parámetros es más radical que el 3070 del RSI tradicional, y puede capturar una señal de reversión de precios antes. La ventaja del WT es que combina la posición y la volatilidad de los precios, y es más fiable que el RSI simple en situaciones de volatilidad.

La clave está en la forma en que WT calcula:*La diferenciación de WT es la diferenciación de WT entre el EMA desviado y el EMA desviado. Esta fórmula tiene una función natural de ajuste de la tasa de fluctuación. Cuando la fluctuación del mercado se agrava, el divisor se agranda y el valor de WT es relativamente estable, evitando el problema de la desviación del RSI común durante la alta volatilidad.

Connors RSI triple verificado, el umbral de 2080 está establecido en profundidad

El CRSI no es el RSI normal, sino que combina el RSI de precios, el RSI de caídas consecutivas y el porcentaje de cambio de precios. El umbral de venta por encima de 20 es más radical que el tradicional 30, pero el mecanismo de triple verificación del CRSI reduce la probabilidad de falsas señales.

La longitud del RSI de 6 ciclos se ajusta a la brevedad con el objetivo de mejorar la sensibilidad de la señal. En el nivel de 15 minutos, 6 ciclos equivalen a 1.5 horas de memoria de precios, que pueden capturar una sobreventa a corto plazo sin retrasarse excesivamente. Este parámetro es especialmente efectivo en variedades de 24 horas como BTC.

Desviación de regresión lineal LSDD, 20 ciclos de captura de la tendencia de giro

LSDD = Precio actual - Regresión lineal, cuando el LSDD cruza el eje 0 indica que el precio comienza a desviarse de la línea de tendencia descendente. La configuración de 20 ciclos que cubre 5 horas en un gráfico de 15 minutos permite identificar eficazmente los cambios de tendencia a corto plazo.

La delicadeza de este indicador reside en que no es un simple seguimiento de la tendencia, sino una medida de la desviación de la tendencia. Cuando el precio comienza a desviarse de la línea de retorno hacia arriba después de una caída continua, a menudo indica el comienzo de un rebote. Combinado con las señales de sobreventa de WT y CRSI, forma una doble confirmación de “sobreventa + reversión de tendencia”.

Sólo hay que hacer más, 30% de posiciones, 1 doble de pirámide

La estrategia está diseñada para ser puramente múltiple, con un 30% de capital por cada posición abierta, permitiendo una subida de posición. Esta configuración es adecuada para la tendencia ascendente a largo plazo de las criptomonedas, al tiempo que se gestiona el riesgo mediante el control de la posición. Una posición individual del 30% permite obtener suficientes ganancias y evitar el riesgo excesivo de una sola transacción.

Las condiciones de salida son igualmente estrictas: WT sobrecompra ((>48) AND CRSI sobrecompra ((>80) AND LSDD inversa negativa, tres condiciones deben ser satisfechas al mismo tiempo. Este diseño asegura la integridad de las operaciones de tendencia y evita la salida prematura.

15 minutos de retrospectiva de BTC optimizada, pero hay que tener en cuenta el entorno del mercado

La estrategia ha funcionado bien en el retrospectivo de 15 minutos de BTC, pero esto no significa que funcione en todos los entornos de mercado. En los mercados de oscilación horizontal, incluso la triple confirmación puede generar más señales falsas. La estrategia es más adecuada para entornos de mercado con características de tendencia claras.

Nota de riesgo: La retroalimentación histórica no representa ganancias futuras, el mercado de criptomonedas es muy volátil y existe el riesgo de pérdida de capital. Se recomienda una verificación completa de las transacciones en papel antes de las operaciones reales y un control estricto de la posición general.

Código Fuente de la Estrategia
/*backtest
start: 2024-10-09 00:00:00
end: 2025-10-07 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":500000}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alescha13
// WT + CRSI + Linear Regression Long-only Strategy
// Description: 
// This long-only trading strategy combines WaveTrend (WT), 
// Connors RSI (CRSI), and a Linear Regression Slope (LSDD) trend filter.
// Signals are generated only when all three indicators align within a defined window.
// Exits occur when all indicators turn bearish.
// Backtested on BTC with 15-minute timeframe.

strategy("WT + CRSI + Linear Regression Long-only © alescha13", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30, 
     pyramiding=1, 
     calc_on_every_tick=false, 
     process_orders_on_close=true)

// =====================
// Inputs
// =====================
wtLength        = input.int(10, "WT Length")
wtOversold      = input.int(-48, "WT Oversold Level")
wtOverbought    = input.int(48, "WT Overbought Level")

crsiRSILength   = input.int(6,  "CRSI RSI Length")
crsiOversold    = input.int(20, "CRSI Oversold Level")
crsiOverbought  = input.int(80, "CRSI Overbought Level")

lsddLen         = input.int(20, "Linear Regression Length")

windowSize      = input.int(2, "Window size (bars) for all signals", minval=1)

// =====================
// Helper: CRSI Function
// =====================
updown(s) =>
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1]) + 1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1]) - 1)
    ud

crsiFunc(src, lenrsi) =>
    lenupdown = 2
    lenroc = 100
    rsi = ta.rsi(src, lenrsi)
    updownrsi = ta.rsi(updown(src), lenupdown)
    percentrank = ta.percentrank(ta.roc(src, 1), lenroc)
    math.avg(rsi, updownrsi, percentrank)

// =====================
// WaveTrend (WT) Calculation
// =====================
ap  = (high + low + close) / 3.0
esa = ta.ema(ap, wtLength)
d   = ta.ema(math.abs(ap - esa), wtLength)
ci  = (ap - esa) / (0.015 * d)
wt  = ta.ema(ci, 3)

wtBull = ta.crossover(wt, wtOversold)
wtBear = wt > wtOverbought

// =====================
// CRSI Calculation
// =====================
crsiValue = crsiFunc(close, crsiRSILength)
crsiBull  = crsiValue < crsiOversold
crsiBear  = crsiValue > crsiOverbought

// =====================
// Linear Regression LSDD Calculation
// =====================
slope = ta.linreg(close, lsddLen, 0)
lsdd = close - slope
lsddBull = ta.crossover(lsdd, 0)
lsddBear = lsdd < 0

// =====================
// Window Logic (Synchronize Signals)
// =====================
var int wtBarIndex   = na
var int crsiBarIndex = na
var int lsddBarIndex = na

if wtBull
    wtBarIndex := bar_index
if crsiBull
    crsiBarIndex := bar_index
if lsddBull
    lsddBarIndex := bar_index

buySignal = false
if not na(wtBarIndex) and not na(crsiBarIndex) and not na(lsddBarIndex)
    maxBar = math.max(wtBarIndex, crsiBarIndex, lsddBarIndex)
    minBar = math.min(wtBarIndex, crsiBarIndex, lsddBarIndex)
    if (maxBar - minBar) <= windowSize
        buySignal := true
        wtBarIndex := na
        crsiBarIndex := na
        lsddBarIndex := na

finalLong = buySignal

// =====================
// Exit Logic
// =====================
sellSignal = wtBear and crsiBear and lsddBear

// =====================
// Entries / Exits
// =====================
if finalLong
    strategy.entry("Long", strategy.long, comment="Long Entry")

if sellSignal
    strategy.close("Long", comment="Long Exit")

// =====================
// Background Color for Signals
// =====================
bgcolor(finalLong ? color.new(color.green, 85) : na)
bgcolor(sellSignal ? color.new(color.red, 85) : na)

// =====================
// Plots
// =====================
plot(wt, color=color.new(color.blue, 0), title="WT")
plot(crsiValue, color=color.new(color.purple, 0), title="CRSI")
plot(lsdd, color=color.new(color.orange, 0), title="LSDD")

plotshape(finalLong, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// =====================
// Alerts
// =====================
alertcondition(finalLong, title="Long Alert", message="WT + CRSI + LSDD Long Signal")
alertcondition(sellSignal, title="Exit Alert", message="WT + CRSI + LSDD Exit Signal")