Les ressources ont été chargées... Je charge...

Stratégie optimisée de suivi des tendances à double T3

Auteur:ChaoZhang est là., Date: 2025-01-17 14h29 et 51 min
Les étiquettes:T3Tout le mondeLe taux d'intérêtOTTIndice de résistance

 Optimized Dual T3 Trend Tracking Strategy

Résumé

Cette stratégie est un système de suivi des tendances basé sur l'indicateur Tillson T3 et le Twin Optimized Trend Tracker (TOTT). Elle optimise la génération de signaux commerciaux en incorporant l'oscillateur de momentum Williams %R. La stratégie utilise des paramètres d'achat et de vente séparés, permettant un ajustement flexible de la sensibilité pour différentes conditions du marché.

Principes de stratégie

La stratégie est composée de trois éléments essentiels: Indicateur Tillson T3 - Une variante optimisée de la moyenne mobile exponentielle (EMA) qui produit une ligne de tendance plus lisse grâce à plusieurs calculs pondérés de l'EMA. Twin Optimized Trend Tracker (TOTT) - Un outil de suivi de tendance adaptatif qui s'ajuste en fonction de l'action des prix et du coefficient de volatilité, calculant les bandes supérieures et inférieures pour les conditions d'achat et de vente. Indicateur Williams %R - Oscillateur de dynamique utilisé pour identifier les conditions de surachat et de survente.

La logique de génération du signal: - Condition d'achat: lorsque la ligne T3 dépasse la bande supérieure de TOTT et que Williams % R est supérieure à -20 (survente) - Condition de vente: lorsque la ligne T3 traverse la bande inférieure de TOTT et que le Williams % R est supérieur à -70

Les avantages de la stratégie

  1. Forte stabilité du signal - Réduit efficacement les risques de fausse rupture grâce à l'assouplissement multiple de T3
  2. Bonne adaptabilité - Les paramètres d'achat/vente séparés permettent une optimisation indépendante pour différentes conditions de marché
  3. Contrôle complet des risques - intégration de Williams %R comme confirmation secondaire
  4. Visualisation claire - Prend en charge la visualisation complète des graphiques

Risques stratégiques

  1. Décalage de l'inversion de tendance - Lissage multiple de T3 peut entraîner des retards de signal
  2. Ne convient pas aux marchés à courants - Peut générer des signaux excessifs lors de la consolidation
  3. Sensibilité élevée aux paramètres - nécessite un ajustement fréquent pour les différents environnements de marché

Suggestions de contrôle des risques: - Mettre en œuvre des mécanismes de stop-loss - Définir des limites de volume de négociation - Ajouter des filtres de confirmation de tendance

Directions d'optimisation

  1. Optimisation dynamique des paramètres - Développer des mécanismes d'ajustement adaptatif des paramètres
  2. Reconnaissance renforcée de l'environnement du marché - Introduction d'indicateurs de force de tendance
  3. Amélioration de la gestion des risques - Ajout d'un stop-loss et d'un take-profit dynamiques
  4. Filtrage amélioré des signaux - Intégration d'indicateurs techniques supplémentaires

Résumé

Il s'agit d'une tendance bien structurée qui suit une stratégie avec une logique claire. Grâce à la combinaison de l'indicateur T3 et du TOTT, couplée au filtrage Williams %R, il se débrouille excellemment sur les marchés en tendance.


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


Relationnée

Plus de