Stratégie de cassure du canal ascendant et descendant


Date de création: 2024-02-28 18:12:47 Dernière modification: 2024-02-28 18:12:47
Copier: 1 Nombre de clics: 695
1
Suivre
1617
Abonnés

Stratégie de cassure du canal ascendant et descendant

Aperçu

Cette stratégie utilise les canaux de montée et de descente formés par les indicateurs de la moyenne réelle et les prix calculés pour générer des signaux de négociation lorsque les prix franchissent les canaux. La stratégie possède une capacité de suivi de tendance exceptionnelle.

Principe de stratégie

Cette stratégie commence par calculer l’indicateur ATR comme mesure de la fluctuation des prix, puis combine les valeurs moyennes des prix les plus élevés, les plus bas et les prix de clôture pour calculer les hausses et les baisses. Lorsque les prix sont élevés, ils génèrent un signal d’achat; lorsque les prix sont baissés, ils génèrent un signal de vente.

Après l’entrée en bourse, la stratégie définit un nombre de points de profit et de points de perte cibles, s’arrêtant lorsque le prix atteint le nombre de points cibles et s’arrêtant si le retrait atteint le nombre de points de perte.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans son excellente capacité à suivre les tendances. La voie de levage peut s’adapter et capturer les changements de tendance des prix.

Analyse des risques

Un des principaux risques de cette stratégie est qu’elle est susceptible de générer de nombreuses périodes de positions vides. Lorsque les prix sont en mouvement, il est fréquent que les canaux ascendants et descendants soient fréquemment déclenchés, ce qui entraîne de nombreuses transactions inefficaces. De plus, la configuration du nombre de points d’arrêt peut avoir un impact direct sur les gains finaux.

Pour réduire ces risques, il est possible d’optimiser les paramètres ATR ou d’ajuster la largeur du canal pour qu’il soit plus proche de la tendance réelle. De plus, le filtrage des délais de mise sur le marché peut être combiné avec d’autres indicateurs.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimiser les paramètres ATR. Vous pouvez tester différents paramètres périodiques pour que l’ATR reflète mieux les fluctuations réelles.

  2. Optimisation de la largeur des canaux. Différentes valeurs de multiplication peuvent être testées pour déterminer le paramètre optimal.

  3. L’ajout de filtres sur d’autres indicateurs, par exemple en combinant l’indicateur MACD pour déterminer les points d’achat et de vente, peut réduire dans une certaine mesure les transactions invalides.

  4. Optimisation du nombre de points d’arrêt et de points d’arrêt. Test de l’impact des différents paramètres sur le taux de rendement final.

  5. Considérer le Sharpe ratio ou le ratio de profit/perte comme objectif d’optimisation. Pour évaluer plus globalement la qualité de la stratégie.

Résumer

Cette stratégie permet un excellent suivi des tendances grâce à des voies d’ascension adaptatives et à des principes de rupture. Elle dispose également d’une logique de stop-loss relativement claire. Par l’optimisation de certains paramètres et règles, il est prévu d’améliorer encore les performances de suivi dynamique de la stratégie, ce qui la rend applicable à un environnement de marché plus large.

Code source de la stratégie
/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)