Stratégies d'achat et de vente basées sur les cassures et les retracements séquentiels TD


Date de création: 2024-04-01 11:23:26 Dernière modification: 2024-04-01 11:23:26
Copier: 3 Nombre de clics: 755
1
Suivre
1617
Abonnés

Stratégies d’achat et de vente basées sur les cassures et les retracements séquentiels TD

Aperçu

La stratégie est une stratégie de points de vente et de vente basée sur la rupture et la rétraction de la séquence TD. Elle identifie les points de retournement de tendance potentiels en identifiant les lignes K de la 8e et de la 9e racine de la séquence TD.

Principe de stratégie

  1. Calculer la séquence TD: en comparant le prix de clôture actuel avec le prix de clôture précédant les 4 lignes K, pour déterminer si une ligne K de 8 ou 9 lignes consécutives a augmenté (c’est-à-dire baissé).
  2. Déterminer les points de vente et d’achat: Lorsque 8 ou 9 lignes K de hausse ou de baisse se succèdent, marquez le point de vente potentiel (ou le point d’achat) sur la 8e ou 9e ligne K.
  3. Considérer la retraite: Observer si la retraite a eu lieu après la rupture de la série TD. Si la rupture est toujours maintenue sur les lignes K 13, 14, 15 ou 16, la rupture est considérée comme valide, sinon elle est considérée comme invalide.
  4. Détermination de la tendance: utilisation de la relation entre les moyennes mobiles à 10 et 20 jours pour déterminer la direction de la tendance actuelle, comme référence pour les décisions d’achat et de vente.

Avantages stratégiques

  1. Les points d’entrée de retraite après la rupture de la séquence TD sont souvent mieux adaptés aux risques que pour les gains, en particulier dans les tendances fortes.
  2. En tenant compte du retrait après la rupture de la séquence TD, il est possible de filtrer efficacement certains signaux faux et d’améliorer la précision des points d’entrée.
  3. L’utilisation d’une moyenne mobile peut aider à déterminer la direction de la tendance actuelle, rendant la stratégie plus efficace pour les opérations en cours.

Risque stratégique

  1. Dans les marchés en choc, les séquences TD peuvent avoir un plus grand nombre de faux signaux, entraînant des transactions fréquentes et des pertes de fonds.
  2. La stratégie est sensible au choix des paramètres, qui peuvent nécessiter une optimisation et une adaptation dans différents environnements de marché.
  3. Les stratégies qui ne disposent pas d’un mécanisme de stop-loss clair peuvent être exposées à un risque de retrait plus élevé en cas de forte volatilité du marché.

Orientation de l’optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques, tels que le RSI, le MACD, etc., pour améliorer la fiabilité du signal et l’efficacité du filtrage.
  2. Pour les retraits après une rupture de la séquence TD, on peut envisager d’introduire des critères de jugement plus flexibles, tels que l’utilisation d’indicateurs tels que l’ATR pour ajuster dynamiquement la tolérance au retrait.
  3. En ce qui concerne les jugements de tendance, on peut essayer d’utiliser plus de combinaisons de périodes de temps, telles que les relations des moyennes mobiles à court, moyen et long terme, pour obtenir des jugements de tendance plus complets.
  4. L’introduction de mécanismes de stop-loss explicites, tels que le stop-loss dynamique basé sur l’ATR, pour contrôler la perte maximale d’une seule transaction.

Résumer

La stratégie est capable d’identifier efficacement les points de retournement de tendance potentiels grâce à la combinaison de la séquence TD et des moyennes mobiles et d’améliorer la précision des points d’entrée en tenant compte des retraits. Malgré certains risques et limitations de la stratégie, des mesures d’optimisation telles que l’introduction de plus d’indicateurs techniques, l’optimisation des méthodes de jugement des tendances et la mise en place d’un mécanisme de stop-loss explicite peuvent améliorer encore la robustesse et la rentabilité de la stratégie.

Code source de la stratégie
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Dipak Shankarrao Chavhan", shorttitle="Dipak Chavhan", overlay=true, pyramiding=0, default_qty_value=10)
Numbers = input(true)
SR = input(true)

var int TD = 0
var int TS = 0
var int TDUp = 0
var int TDDn = 0

TD := close > close[4] ? TD[1] + 1 : 0
TS := close < close[4] ? TS[1] + 1 : 0
TDUp := TD - valuewhen(TD < TD[1], TD, 1)
TDDn := TS - valuewhen(TS < TS[1], TS, 1)

plotshape(Numbers ? (TDUp == 8 ? true : na) : na, style=shape.triangleup, text="8", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDUp == 9 ? true : na) : na, style=shape.triangleup, text="9", color=color.new(color.green, 0), location=location.belowbar)
plotshape(Numbers ? (TDDn == 8 ? true : na) : na, style=shape.triangledown, text="8", color=color.new(color.red, 0), location=location.abovebar)
plotshape(Numbers ? (TDDn == 9 ? true : na) : na, style=shape.triangledown, text="9", color=color.new(color.red, 0), location=location.abovebar)

priceflip = barssince(close < close[4])
sellsetup = close > close[4] and priceflip
sell = sellsetup and barssince(priceflip != 9)
sellovershoot = sellsetup and barssince(priceflip != 13)
sellovershoot1 = sellsetup and barssince(priceflip != 14)
sellovershoot2 = sellsetup and barssince(priceflip != 15)
sellovershoot3 = sellsetup and barssince(priceflip != 16)
priceflip1 = barssince(close > close[4])
buysetup = close < close[4] and priceflip1
buy = buysetup and barssince(priceflip1 != 9)
buyovershoot = buysetup and barssince(priceflip1 != 13)
buyovershoot1 = buysetup and barssince(priceflip1 != 14)
buyovershoot2 = buysetup and barssince(priceflip1 != 15)
buyovershoot3 = buysetup and barssince(priceflip1 != 16)
TDbuyh = valuewhen(buy, high, 0)
TDbuyl = valuewhen(buy, low, 0)
TDsellh = valuewhen(sell, high, 0)
TDselll = valuewhen(sell, low, 0)
plot(SR ? (TDbuyh ? TDbuyl : na) : na, style=plot.style_circles, linewidth=2, color=color.red)
plot(SR ? (TDselll ? TDsellh : na) : na, style=plot.style_circles, linewidth=2, color=color.lime)

sma1 = sma(close, 10)
sma2 = sma(close, 20)



if TDbuyh
    strategy.entry("Enter Long", strategy.long)
else if TDselll
    strategy.entry("Enter Short", strategy.short)