Stratégie d'inversion de pivot améliorée de SuperTrend

Auteur:ChaoZhang est là., Date: 2023-10-25 à 11h15h40
Les étiquettes:

img

Résumé

L'inversion de pivot améliorée de SuperTrend est une approche de trading unique qui combine la précision des points d'inversion de pivot et la puissance de suivi de tendance de l'indicateur SuperTrend.

Contrairement aux stratégies traditionnelles d'inversion de pivot, cette approche utilise l'indicateur SuperTrend comme un filtre. Cela signifie qu'elle ne prend que des transactions alignées sur la tendance globale, telle que déterminée par l'indicateur SuperTrend. Cela peut aider à réduire les faux signaux et améliorer la rentabilité globale de la stratégie.

La stratégie d'inversion de pivot améliorée est particulièrement bien adaptée au marché de la crypto-monnaie en raison de la forte volatilité. Cela permet des changements rapides de prix en courtes périodes, ce qui permet de réaliser des profits rapidement.

La logique de la stratégie

La stratégie fonctionne en identifiant les points d'inversion du pivot, qui sont des points sur le graphique des prix où le prix est susceptible de s'inverser. Ces points sont identifiés à l'aide d'une combinaison des fonctions ta.pivothigh et ta.pivotlow pour localiser les points de prix les plus élevés et les plus bas au cours d'une période donnée.

Une fois qu'un point d'inversion de pivot est identifié, la stratégie vérifie la direction de l'indicateur SuperTrend. Si la SuperTrend est positive (indiquant une tendance haussière), la stratégie ne prendra que des transactions longues. Si la SuperTrend est négative (indiquant une tendance baissière), elle ne prendra que des transactions courtes.

La stratégie comprend également un niveau de stop loss, défini en pourcentage du prix d'entrée, afin de limiter les pertes potentielles si le prix évolue à l'encontre du commerce.

La direction du commerce peut être réglée sur Long, Short ou Both, ce qui permet au trader de n'effectuer que des transactions longues, courtes ou à la fois longues et courtes en fonction de sa vision du marché et de son appétit pour le risque.

Les avantages

Le principal avantage de cette stratégie est qu'elle combine la précision des stratégies d'inversion de pivot avec la capacité de filtrage des tendances de l'indicateur SuperTrend.

L'approche de l'inversion pivot identifie les niveaux de support et de résistance clés et capture les ruptures rapides.

Un autre avantage est l'adaptabilité de la stratégie. Les paramètres peuvent être ajustés pour s'adapter aux différentes conditions du marché. Par exemple, la période ATR peut être ajustée pour une volatilité variable, un stop loss ajusté pour contrôler le risque et une direction commerciale limitée à long ou court.

L'ajout du filtre SuperTrend améliore également les performances sur les marchés en tendance.

Les risques

Le principal risque est que les points de renversement du pivot puissent avoir de fausses ruptures, où le prix revient rapidement après avoir atteint des niveaux clés.

Un autre risque est l'échec de l'inversion de tendance. Parfois, les prix continuent la tendance après avoir brisé les points pivots, plutôt que d'inverser.

L'utilisation de SuperTrend comme filtre a ses avantages et ses inconvénients. Des signaux de SuperTrend incorrects pourraient entraîner des renversements valables manquants. Les paramètres peuvent nécessiter un ajustement pour différentes conditions de marché.

Dans l'ensemble, des niveaux de stop loss appropriés, une dimensionnement des positions et un réglage dynamique des paramètres peuvent contrôler efficacement les risques.

Des possibilités d'amélioration

La stratégie peut être améliorée par:

  1. J'ajoute une analyse multi-temporelle pour éviter les problèmes.

  2. Incorporer des indicateurs de volume pour confirmer les écarts.

  3. Optimisation des mécanismes de stop loss comme les trailing stops et l'augmentation des post-profit stops.

  4. Ajout d'apprentissage automatique pour une capacité d'adaptation, comme le réglage automatique des paramètres et les arrêts dynamiques.

  5. Mise en œuvre de négociations intertemporelles avec des délais d'entrée et d'arrêt/objectif distincts.

  6. Test d'indicateurs de filtres alternatifs pour améliorer potentiellement les performances par rapport à SuperTrend.

  7. Optimisation du portefeuille par la combinaison avec des stratégies à faible corrélation pour améliorer la stabilité.

Ces améliorations peuvent améliorer de manière significative les performances, rendant la stratégie plus robuste dans divers environnements de marché et produisant des rendements supérieurs.

Conclusion

La stratégie d'inversion de pivot améliorée de SuperTrend est une approche très efficace. Elle combine la précision des points de pivot et le fort suivi de tendance de SuperTrend pour filtrer le bruit et augmenter la probabilité de succès. Les paramètres adaptables s'adaptent à diverses conditions de marché. Les risques existent mais peuvent être contrôlés via une taille de position et des arrêts appropriés.


/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

//@version=5
strategy("SuperTrend Enhanced Pivot Reversal - Strategy [PresentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
 commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
  currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Pivot Reversal parameters
leftBars = input(6)
rightBars = input(3)
swh = ta.pivothigh(leftBars, rightBars)
swl = ta.pivotlow(leftBars, rightBars)

// SuperTrend parameters
atrPeriod = input(5, "ATR Length")
factor = input.float(2.618, "Factor", step = 0.01)

[superTrend, direction] = ta.supertrend(factor, atrPeriod)

// Plot the SuperTrend
plot(superTrend, title="SuperTrend", color=color.blue)


// Trade Direction parameter
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])

// Stop Loss Level (in %)
stopLossLevel = input(20, title="Stop Loss Level (%)")

// Convert the stop loss level to a price difference
stopLossPrice = stopLossLevel / 100


// Long entry
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
if (le and direction > 0 and (tradeDirection == "Long" or tradeDirection == "Both"))
    strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick)
    strategy.exit("Exit Long", "PivRevLE", stop = hprice * (1 - stopLossPrice))

// Short entry
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
if (se and direction < 0 and (tradeDirection == "Short" or tradeDirection == "Both"))
    strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)
    strategy.exit("Exit Short", "PivRevSE", stop = lprice * (1 + stopLossPrice))


// Closing positions when the tradeDirection is one-sided or when SuperTrend direction changes
if ((tradeDirection == "Long" and se and direction < 0) or (tradeDirection == "Long" and direction < 0))
    strategy.close("PivRevLE")
if ((tradeDirection == "Short" and le and direction > 0) or (tradeDirection == "Short" and direction > 0))
    strategy.close("PivRevSE")

// Plot pivot highs and lows
plotshape(swh_cond, title="Pivot Highs", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(swl_cond, title="Pivot Lows", location=location.abovebar, color=color.red, style=shape.triangledown)

// Closing positions when the tradeDirection is one-sided
if (tradeDirection == "Long" and se and direction < 0)
    strategy.close("PivRevLE")
if (tradeDirection == "Short" and le and direction > 0)
    strategy.close("PivRevSE")



Plus de