
Un système de trading à indicateurs à oscillation multiple est une stratégie de trading quantitative basée sur l’analyse technique, qui repose essentiellement sur l’identification des hauts et des bas en oscillation pour déterminer les changements de tendance du marché. La stratégie, en suivant les prix les plus élevés et les plus bas au cours des N derniers cycles, construit un niveau de stop-loss suivi dynamique (TSL) qui sert de frontière de décision pour le trading à oscillation multiple.
La logique de base de la stratégie s’articule autour du suivi des niveaux de stop loss (TSL) et se concrétise comme suit:
Niveau de prix clé dans le cycle de calcul:
ta.highest(high, no)Calculer le prix le plus élevé des no cycles précédents (res)ta.lowest(low, no)Calculer le prix le plus bas de la dernière période de noDéterminer la position du prix par rapport aux hauts et aux bas de la période précédente:
Construire un niveau de stop-loss de suivi (TSL):
Génération de signaux de négociation:
Opération de transaction effectuée:
Le système contient également des composants visuels, tels que des marqueurs de points de vente et d’achat, des lignes K et des arrière-plans qui changent de couleur, ainsi que des lignes horizontales affichant les prix d’ouverture en temps réel, améliorant l’expérience visuelle du processus de négociation.
Capture de tendances: grâce à des calculs dynamiques des prix les plus élevés et les plus bas, capture efficacement les changements de tendances du marché et s’adapte aux fluctuations des différents cycles du marché.
Haute automatisation: le système effectue automatiquement la reconnaissance des signaux d’achat et de vente et l’exécution des transactions, réduisant l’intervention humaine et l’influence émotionnelle.
Mécanisme de négociation bidirectionnel: il prend en charge à la fois les transactions à plusieurs titres et les transactions à zéro titres, ce qui permet d’obtenir des opportunités de gains dans les marchés à la hausse et à la baisse.
Gestion intégrée des risques: la conception de la traçabilité des niveaux de stop loss (TSL) contient essentiellement une fonction de stop loss, limitant la perte maximale d’une seule transaction.
Retour visuel des transactions: les signaux de négociation et les prix d’ouverture des positions sont clairement affichés via une interface graphique, permettant aux traders de surveiller et d’évaluer les performances de leur stratégie en temps réel.
Flexibilité des paramètres: en ajustant les paramètres des cycles de fluctuation ((no), il est possible d’adapter les caractéristiques du marché à différentes périodes de temps, de la courte ligne à la moyenne longue ligne.
Indications claires: le système fournit des signaux doubles textuels et visuels pour réduire le risque d’erreur.
Faible performance des marchés en secousse: dans les marchés en secousse horizontale, la stratégie peut générer de fréquents faux signaux, entraînant des pertes continues.
Points de glissement et risque de retard d’exécution: Dans les transactions en direct, il peut y avoir un décalage de temps entre la génération du signal et l’exécution de l’ordre, ce qui entraîne un écart du prix de transaction réel par rapport au prix idéal.
Limitation de la gestion des positions fixes: les stratégies actuelles utilisent des unités fixes ((qty=1) pour les transactions et manquent de mécanismes permettant d’ajuster la taille des positions en fonction de la volatilité du marché ou de la taille du compte.
Sensibilité aux paramètres: la performance de la stratégie est fortement dépendante de la configuration du paramètre de cycle de fluctuation ((no), qui peut nécessiter des valeurs de paramètres différentes dans différents environnements de marché.
Faible capacité d’adaptation aux urgences: les niveaux de stop loss peuvent ne pas s’ajuster suffisamment rapidement en cas de changement rapide des prix provoqué par une nouvelle majeure ou un événement de Black Swan, ce qui entraîne des pertes plus importantes.
Les méthodes de réduction de ces risques comprennent: la reconnaissance des signaux en combinaison avec d’autres indicateurs, la gestion dynamique des positions, la définition d’une limite maximale de perte, l’ajustement des paramètres en fonction de la volatilité et le suivi périodique et l’optimisation des paramètres de la stratégie.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Paramètres d’adaptation: paramètres de cycle d’oscillation ajustés en fonction de la dynamique de la volatilité du marché (no), utilisant des valeurs plus faibles dans un environnement à faible volatilité et plus élevées dans un environnement à forte volatilité.
Objectifs de profit additionnels: définir des objectifs de profit basés sur l’ATR ou les niveaux de support/résistance, et bloquer une partie des bénéfices lorsque le marché se déplace suffisamment loin dans une direction favorable.
Filtre temporel: ajouter des restrictions aux fenêtres de temps de négociation pour éviter les périodes de marché à faible liquidité ou inhabituelles.
Mécanisme de contrôle de retrait: mise en place d’un mécanisme de suspension des transactions basé sur le pourcentage de retrait des droits et intérêts sur les comptes, qui suspend les transactions lorsque les pertes consécutives atteignent le seuil prévu.
Confirmation de plusieurs cycles: en combinant la direction de la tendance des cycles de temps plus élevés, n’ouvrez des positions que dans la direction qui est cohérente avec la tendance des cycles plus élevés, améliorant ainsi le taux de victoire.
Ces orientations d’optimisation permettent d’améliorer considérablement la robustesse et l’adaptabilité des stratégies, en particulier en offrant de meilleurs rendements d’ajustement au risque lors de la transformation de différents environnements de marché.
Un système de trading à indices à oscillation multiple est une stratégie de trading automatisée basée sur l’analyse technique qui capture les changements de tendance du marché et exécute des transactions bidirectionnelles à plusieurs niveaux en suivant dynamiquement les niveaux de stop loss (TSL). Cette stratégie fonctionne bien dans les marchés où la tendance est claire et permet de suivre efficacement les mouvements de prix et de gérer automatiquement les positions.
Les principaux avantages de la stratégie résident dans son mécanisme de génération de signaux simple et efficace et ses fonctions de gestion du risque intégrées, particulièrement adaptées aux transactions sur des tendances à court et moyen terme. Cependant, la stratégie peut être confrontée à des défis de faux signaux fréquents dans des marchés instables et nécessite une optimisation supplémentaire pour améliorer son adaptabilité dans divers environnements de marché.
La stratégie peut améliorer encore son rendement et sa stabilité en ajustant son risque en appliquant des mesures d’optimisation telles que la gestion de position dynamique, la confirmation de signaux multi-indicateurs et l’ajustement des paramètres d’adaptation. Pour les traders quantifiés, ce système automatisé basé sur des règles claires fournit un cadre fiable permettant de réduire les perturbations émotionnelles et de maintenir la discipline de la négociation.
En fin de compte, la réussite de la stratégie dépend de l’ajustement minutieux des paramètres du trader et de sa compréhension des caractéristiques du marché. Il est recommandé de faire un retour d’expérience et une vérification des transactions simulées avant de l’appliquer sur le marché.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)