
La stratégie de trading sous pression inverse du canal de Tang-Shou est une stratégie de trading quantitative basée sur l’indicateur du canal de Tang-Shou. Cette stratégie combine la suspension des pertes et le suivi des pertes pour la gestion du risque.
Lorsque le prix touche la limite supérieure et inférieure du canal de Tangshou, ouvrez une position et effectuez un plus de couverture, tout en définissant un stop loss et un stop stop. Si un stop loss se produit, la position ne peut être ouverte qu’après un certain temps. Pendant la tenue de la position, verrouillez les bénéfices en suivant le stop loss.
Cette stratégie utilise l’indicateur de passage Tangshou à 20 jours, comprenant les voies supérieure, inférieure et moyenne.
Il y a des positions surchargées lorsque le prix touche le bas; des positions vides lorsque le prix touche le haut.
Si vous avez déjà subi un stop loss, vous devez suspendre un certain cycle (par exemple, 3 lignes K) pour éviter de suivre le dragon.
Chaque fois que vous ouvrez une position, définissez un stop loss à taux fixe et un take profit ajusté dynamiquement.
Le take profit est calculé sur la base du ratio de gain au risque (par exemple 2) et du pourcentage de perte d’arrêt (par exemple 22%).
Activer le suivi des pertes pendant la phase de détention:
Lors d’une position à plusieurs, si le prix franchit la ligne médiane, ajustez le stop loss au point médian entre le prix d’entrée et le prix de la ligne médiane.
Il s’adapte également à la ligne médiane en position vide.
L’utilisation de l’indicateur de passage Tangshou a une certaine capacité à saisir les situations de rupture.
La position est sous pression et correspond à la logique de l’opération inverse.
Le stop-loss est une suspension qui évite la chasse aux dragons, suit le stop-loss pour bloquer les bénéfices, et a une bonne gestion des risques.
Les règles de la stratégie sont claires, faciles à comprendre et à mettre en œuvre.
Le canal Tangshou est un indicateur de tendance qui peut entraîner des pertes en cas de fausse rupture lors de la consolidation.
Le stop-loss fixe est sujet à la prise et doit être ajusté de manière appropriée.
La fréquence d’ajustement de l’arrêt de suivi est plus facile à atteindre, et doit être équilibrée.
Une mauvaise configuration des paramètres peut également affecter les performances de la stratégie.
La longueur du canal de Tangshou peut être optimisée pour rechercher la meilleure combinaison de paramètres.
Ajout de modules de gestion de position, tels que la réinitialisation périodique des périodes de suspension.
Il est possible de comparer les tendances avec d’autres indicateurs afin d’éviter les fausses ruptures tendancielles.
Activer le stop dynamique et ajuster la position de stop en temps réel.
Les stratégies de trading en contre-courant du canal Tang-Shou intègrent plusieurs fonctions, telles que le jugement de tendance, la gestion des risques, etc. Les principes fondamentaux sont complets. Grâce à l’optimisation continue des paramètres et à la combinaison avec d’autres indicateurs ou modèles, il est possible d’améliorer encore la robustesse de la stratégie et d’améliorer le rendement.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Contrarian Donchian Channel Strategy - Touch Entry with Post-SL Pause and Trailing Stop", overlay=true, default_qty_value=0.01, default_qty_type=strategy.percent_of_equity)
// Inputs
length = input(20, minval=1, title="Donchian Channel Length")
riskRewardRatio = input(2, title="Risk/Reward Ratio")
stopLossPercent = input(0.22, title="Stop Loss (%)") / 100
pauseCandles = input(3, minval=1, title="Pause After SL (Candles)")
// Donchian Channel Calculation
upper = highest(high, length)
lower = lowest(low, length)
centerline = (upper + lower) / 2 // Calculating the Centerline
// Plotting Donchian Channel and Centerline
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
plot(centerline, color=color.blue, title="Centerline")
// Tracking Stop Loss Hits and Pause
var longSLHitBar = 0
var shortSLHitBar = 0
var int lastTradeDirection = 0 // 1 for long, -1 for short, 0 for none
// Update SL Hit Bars
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
if (close[1] < strategy.position_avg_price[1])
longSLHitBar := bar_index
lastTradeDirection := 1
if (strategy.position_size[1] < 0 and strategy.position_size == 0)
if (close[1] > strategy.position_avg_price[1])
shortSLHitBar := bar_index
lastTradeDirection := -1
// Entry Conditions - Trigger on touch
longCondition = (low <= lower) and (bar_index - longSLHitBar > pauseCandles or lastTradeDirection != 1)
shortCondition = (high >= upper) and (bar_index - shortSLHitBar > pauseCandles or lastTradeDirection != -1)
// Trade Execution
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Initial Stop Loss and Take Profit Calculation
stopLoss = strategy.position_avg_price * (1 - stopLossPercent)
takeProfit = strategy.position_avg_price * (1 + stopLossPercent * riskRewardRatio)
// Trailing Stop Loss Logic
var float trailingStopLong = na
var float trailingStopShort = na
// Update Trailing Stop for Long Position
if (strategy.position_size > 0)
if (close > centerline)
trailingStopLong := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopLong) ? stopLoss : max(trailingStopLong, stopLoss)
// Update Trailing Stop for Short Position
if (strategy.position_size < 0)
if (close < centerline)
trailingStopShort := (strategy.position_avg_price + centerline) / 2
stopLoss := na(trailingStopShort) ? stopLoss : min(trailingStopShort, stopLoss)
// Setting Stop Loss and Take Profit for each trade
strategy.exit("SL_TP_Long", "Long", stop=stopLoss, limit=takeProfit)
strategy.exit("SL_TP_Short", "Short", stop=stopLoss, limit=takeProfit)