En la carga de los recursos... Cargando...

Estrategia optimizada de seguimiento de tendencias de doble T3

El autor:¿ Qué pasa?, fecha: 2025-01-17 14:29:51
Las etiquetas:T3En el caso de losEl EMAOTTIndicador de riesgo

 Optimized Dual T3 Trend Tracking Strategy

Resumen general

Esta estrategia es un sistema de seguimiento de tendencias basado en el indicador Tillson T3 y Twin Optimized Trend Tracker (TOTT). Optimiza la generación de señales comerciales mediante la incorporación del oscilador de momento Williams %R. La estrategia emplea configuraciones de parámetros de compra y venta separadas, lo que permite un ajuste flexible de la sensibilidad para diferentes condiciones del mercado.

Principios de estrategia

La estrategia consta de tres componentes principales: Indicador Tillson T3 - Una variante optimizada del promedio móvil exponencial (EMA) que produce una línea de tendencia más suave a través de múltiples cálculos de EMA ponderados. 2. Twin Optimized Trend Tracker (TOTT) - Una herramienta de seguimiento de tendencias adaptativa que se ajusta en función de la acción del precio y el coeficiente de volatilidad, calculando las bandas superior e inferior para las condiciones de compra y venta. Indicador Williams %R - Oscilador de impulso utilizado para identificar las condiciones de sobrecompra y sobreventa.

La lógica de generación de señal: - Condición de compra: Cuando la línea T3 cruza por encima de la banda superior de TOTT y el Williams % R está por encima de -20 (sobreventa) - Condición de venta: Cuando la línea T3 cruza por debajo de la banda inferior de TOTT y Williams % R está por encima de -70

Ventajas estratégicas

  1. Una fuerte estabilidad de la señal - Reduce eficazmente los riesgos de ruptura falsa mediante el suavizado múltiple de T3
  2. Buena adaptabilidad - Los parámetros de compra/venta separados permiten una optimización independiente para las diferentes condiciones del mercado
  3. Control de riesgos completo - integra el Williams %R como confirmación secundaria
  4. Visualización clara - Proporciona soporte completo para visualización de gráficos

Riesgos estratégicos

  1. Retraso en la inversión de tendencia - La suavización múltiple de T3 puede causar retrasos en la señal
  2. No adecuado para mercados variados - Puede generar señales excesivas durante la consolidación
  3. Alta sensibilidad a los parámetros - Requiere ajustes frecuentes para diferentes entornos de mercado

Sugerencias para el control de riesgos: - Implementar mecanismos de stop-loss - Establecer límites de volumen de operaciones - Añadir filtros de confirmación de tendencia

Direcciones de optimización

  1. Optimización de parámetros dinámicos - Desarrollo de mecanismos de ajuste de parámetros adaptativos
  2. Reconocimiento mejorado del entorno de mercado - Introducción de indicadores de fuerza de tendencia
  3. Mejora de la gestión del riesgo - Añadir un stop-loss y un take-profit dinámicos
  4. Filtración mejorada de señales - Integración de indicadores técnicos adicionales

Resumen de las actividades

Esta es una tendencia bien estructurada siguiendo una estrategia con lógica clara. A través de la combinación del indicador T3 y TOTT, junto con el filtrado Williams %R, tiene un excelente rendimiento en los mercados de tendencia.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("FON60DK by leventsah", overlay=true)

// Girdi AL
t3_length = input.int(5, title="Tillson Per AL", minval=1)
t3_opt = input.float(0.1, title="Tillson Opt AL", step=0.1, minval=0)
tott_length = input.int(5, title="TOTT Per AL", minval=1)
tott_opt = input.float(0.1, title="TOTT Opt AL", step=0.1, minval=0)
tott_coeff = input.float(0.006, title="TOTT Coeff AL", step=0.001, minval=0)

//GİRDİ SAT
t3_lengthSAT = input.int(5, title="Tillson Per SAT", minval=1)
t3_optSAT = input.float(0.1, title="Tillson Opt SAT", step=0.1, minval=0)
tott_lengthSAT = input.int(5, title="TOTT Per SAT", minval=1)
tott_opt_SAT = input.float(0.1, title="TOTT Opt SAT", step=0.1, minval=0)
tott_coeff_SAT = input.float(0.006, title="TOTT Coeff SAT", step=0.001, minval=0)

william_length = input.int(3, title="William %R Periyodu", minval=1)

// Tillson T3 AL
t3(src, length, opt) =>
    k = 2 / (length + 1)
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    ema3 = ta.ema(ema2, length)
    ema4 = ta.ema(ema3, length)
    c1 = -opt * opt * opt
    c2 = 3 * opt * opt + 3 * opt * opt * opt
    c3 = -6 * opt * opt - 3 * opt - 3 * opt * opt * opt
    c4 = 1 + 3 * opt + opt * opt * opt + 3 * opt * opt
    t3_val = c1 * ema4 + c2 * ema3 + c3 * ema2 + c4 * ema1
    t3_val

t3_value = t3(close, t3_length, t3_opt)
t3_valueSAT = t3(close, t3_lengthSAT, t3_optSAT)


// TOTT hesaplaması (Twin Optimized Trend Tracker)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = math.max(src - src[1], 0)
    vdd1 = math.max(src[1] - src, 0)
    vUD = math.sum(vud1, 9)
    vDD = math.sum(vdd1, 9)
    vCMO = (vUD - vDD) / (vUD + vDD)
    var float VAR = na
    VAR := valpha * math.abs(vCMO) * src + (1 - valpha * math.abs(vCMO)) * nz(VAR[1], src)
    VAR

VAR = Var_Func(close, tott_length)
VAR_SAT = Var_Func(close, tott_lengthSAT)

//LONG 
MAvg = VAR
fark = MAvg * tott_opt * 0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir == 1 ? longStop : shortStop
OTT = MAvg > MT ? MT * (200 + tott_opt) / 200 : MT * (200 - tott_opt) / 200
OTTup = OTT * (1 + tott_coeff)
OTTdn = OTT * (1 - tott_coeff)

//CLOSE
MAvgS = VAR_SAT
farkS = MAvgS * tott_opt_SAT * 0.01
longStopS = MAvgS - farkS
longStopPrevS = nz(longStopS[1], longStopS)
longStopS := MAvgS > longStopPrevS ? math.max(longStopS, longStopPrevS) : longStopS
shortStopS = MAvgS + farkS
shortStopPrevS = nz(shortStopS[1], shortStopS)
shortStopS := MAvgS < shortStopPrevS ? math.min(shortStopS, shortStopPrevS) : shortStopS
dirS = 1
dirS := nz(dirS[1], dirS)
dirS := dirS == -1 and MAvgS > shortStopPrevS ? 1 : dirS == 1 and MAvgS < longStopPrevS ? -1 : dirS
MTS = dirS == 1 ? longStopS : shortStopS
OTTS = MAvgS > MTS ? MTS * (200 + tott_opt_SAT) / 200 : MTS * (200 - tott_opt_SAT) / 200
OTTupS = OTTS * (1 + tott_coeff_SAT)
OTTdnS = OTTS * (1 - tott_coeff_SAT)

// Calculation of Williams %R
williamsR = -100 * (ta.highest(high, william_length) - close) / (ta.highest(high, william_length) - ta.lowest(low, william_length))

// Alım koşulu
longCondition = (t3_value > OTTup) and (williamsR > -20)

// Short koşulu (long pozisyonunu kapatmak için)
shortCondition = (t3_valueSAT < OTTdnS) and (williamsR > -70)

// Alım pozisyonu açma
if (longCondition)
    strategy.entry("Long", strategy.long)

// Short koşulu sağlandığında long pozisyonunu kapama
if (shortCondition)
    strategy.close("Long")


// Alım pozisyonu boyunca barları yeşil yapma
barcolor(strategy.position_size > 0 ? color.green : na)

// Grafikte göstergeleri çizme
plot(t3_value, color=color.blue, linewidth=1, title="Tillson AL")
plot(OTTup, color=color.green, linewidth=1, title="TOTT Up AL")
plot(OTTdn, color=color.red, linewidth=1, title="TOTT Down AL")

// Grafikte göstergeleri çizme
plot(t3_valueSAT, color=color.blue, linewidth=1, title="Tillson SAT")
plot(OTTupS, color=color.green, linewidth=1, title="TOTT Up SAT")
plot(OTTdnS, color=color.red, linewidth=1, title="TOTT Down SAT")


Relacionados

Más.