Cet article analysera en détail une stratégie de trading d'inversion basée sur des points pivots.
La stratégie repose principalement sur deux indicateurs: Pivot High et Pivot Low.pivothigh()
etpivotlow()
Lorsque l'on calcule les points de pivot, les périodes à gauche et à droite doivent être réglées; cette stratégie utilise 4 périodes à gauche et 2 périodes à droite.
Lorsque le prix le plus élevé de la dernière période est inférieur au pivot le plus élevé de la période précédente, cela indique une opportunité d'inversion. Si les positions précédentes étaient courtes, les positions longues doivent maintenant être considérées pour capitaliser sur l'inversion. De même, lorsque le prix le plus bas de la dernière période est supérieur au pivot le plus bas précédent, les positions longues existantes doivent envisager d'inverser en court.
Plus précisément, la logique principale est la suivante:
Le principal avantage de cette stratégie est l'identification de points de renversement de tendance potentiels, ce qui est crucial pour les traders de renversement.
En outre, la stratégie comporte des conditions pour les entrées longues et courtes, couvrant différentes situations de marché afin d'éviter de manquer des opportunités.
En résumé, c'est une stratégie d'inversion très pratique.
Malgré les efforts déployés pour réduire les faux signaux, toute stratégie basée sur la rupture est inévitablement confrontée à des problèmes tels que des signaux prématurés ou en retard.
En outre, les points pivots ne peuvent pas non plus garantir des niveaux de support / résistance parfaits. La malchance pourrait entraîner un stop loss juste avant le niveau de support réel. Une telle incertitude autour des zones clés ne peut pas être complètement évitée.
Optimisation de la période. Les périodes actuelles gauche/droite sont définies à 4 et 2.
Ajoutez des filtres avec d'autres indicateurs. Par exemple, combinez avec le volume pour ne considérer que les ruptures comme valables lorsqu'elles sont accompagnées d'un volume croissant. Cela aide à éviter les fausses ruptures.
La zone de tampon peut être ajustée dynamiquement en fonction de la volatilité du marché.
Opérer uniquement dans la direction de la tendance. Actuellement, les conditions longues / courtes sont en parallèle. Une optimisation est de long dans les tendances haussières et de court dans les tendances baissières basées sur un filtre de tendance.
En résumé, il s'agit d'une stratégie d'inversion simple mais pratique. Identifier les points pivots sur une période et surveiller les percées des prix constitue l'idée de base pour détecter les inversions de tendance potentielles.
La logique de la stratégie est simple et facile à mettre en œuvre. Les paramètres sont également intuitifs pour les débutants. Des optimisations supplémentaires peuvent améliorer les performances pour l'adoption.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Pivot Reversal Strategy", overlay=true) leftBars = input(4) rightBars = input(2) // backtesting date range from_day = input(defval = 1, title = "From Day", minval = 1) from_month = input(defval = 3, title = "From Month", minval = 1) from_year = input(defval = 2018, title = "From Year", minval = 1970) to_day = input(defval = 1, title = "To Day", minval = 1) to_month = input(defval = 1, title = "To Month", minval = 1) to_year = input(defval = 2100, title = "To Year", minval = 1970) time_cond = (time > timestamp(from_year, from_month, from_day, 00, 00)) and (time < timestamp(to_year, to_month, to_day, 23, 59)) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) 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 time_cond) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick) 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 time_cond) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)