Stratégie d'inversion du pivot

Auteur:ChaoZhang est là., Date: le 26 septembre 2023 17:38:56
Les étiquettes:

Résumé

La stratégie d'inversion pivot est une stratégie de trading de rupture qui combine le concept de support et de résistance.

La logique de la stratégie

La stratégie calcule d'abord les prix les plus élevés et les plus bas au cours d'une période spécifiée (par exemple 4 barres) en tant que niveaux de résistance et de support du pivot. Elle surveille ensuite l'action des prix en temps réel et détermine si le prix franchit les niveaux du pivot. Plus précisément:

  1. Utilisez la fonction pivothigh() pour calculer le prix le plus élevé pour la résistance de pivot swh
  2. Utilisez la fonction pivotlow pour calculer le prix le plus bas pour le support pivot
  3. Passez à court (strategy.short) lorsque les prix dépassent la résistance de pivot
  4. Aller long (stratégie.long) lorsque les prix dépassent le support pivot

La logique de la stratégie est simple et claire: prendre des positions inversées lorsque les prix dépassent les niveaux pivots.

Analyse des avantages

La stratégie d'inversion du pivot présente plusieurs avantages:

  1. L'idée de stratégie est simple et facile à comprendre pour les débutants.
  2. L'utilisation de niveaux pivots pour déterminer l'inversion de tendance est robuste contre le bruit de marché à court terme.
  3. Seule la négociation sur les écarts pivots permet d'éviter des fréquences de négociation excessives.
  4. Le contrôle des heures de négociation permet d'éviter les risques du jour au lendemain.
  5. Le code concis est facile à optimiser.

Analyse des risques

Il y a aussi quelques risques à noter:

  1. Les niveaux pivots ne garantissent pas une prédiction de tendance parfaite et de fausses ruptures sont possibles.
  2. Les signaux pivots seuls peuvent entraîner une entrée prématurée.
  3. Il ne prend pas en compte le régime du marché et les caractéristiques individuelles des stocks, qui entraînent des risques systémiques.
  4. Un support et une résistance floues augmentent les chances d'échec des évasions.

Pour contrôler les risques, les optimisations recommandées comprennent l'utilisation d'un stop loss mobile pour suivre la tendance principale, l'appariement des actions avec les conditions du marché et la réduction des taux de faux écarts.

Directions d'optimisation

Compte tenu des risques, les optimisations futures peuvent se concentrer sur:

  1. Optimiser les paramètres de pivot comme augmenter la période de calcul pour améliorer le taux de réussite.

  2. Ajout d'un stop loss mobile pour suivre la tendance majeure et réduire les risques d'inversion.

  3. Incorporer d'autres indicateurs comme le MACD pour confirmer la tendance et éviter de fausses ruptures.

  4. Classification des stocks par caractéristiques et définition de paramètres uniques.

  5. Optimiser les heures de négociation pour différents marchés comme les actions américaines et hongkongais.

  6. Compte tenu de l'évolution globale du marché du commerce sélectif.

Conclusion

Dans l'ensemble, la stratégie d'inversion pivot est une excellente stratégie de rupture simple à apprendre pour les débutants. Elle identifie les niveaux d'inversion de manière propre en utilisant des points pivots.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Pivot Reversal Strategy", overlay=true)

// === BACKTEST RANGE ===
FromMonth = input(defval = 2, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)


leftBars = input(4)
rightBars = input(2)

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)
    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)
    strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de