Stratégie de trading quantitatif de retournement de pivot simple


Date de création: 2024-01-17 15:37:33 Dernière modification: 2024-01-17 15:37:33
Copier: 0 Nombre de clics: 659
1
Suivre
1617
Abonnés

Stratégie de trading quantitatif de retournement de pivot simple

Aperçu

Cette stratégie est basée sur la rupture des points pivots pour effectuer des transactions de revers. Elle calcule les prix les plus élevés et les plus bas d’une période donnée pour déterminer les hauts et les bas de l’axe.

Principe de stratégie

La logique centrale de cette stratégie est de calculer les hauts et les bas de l’axe central. La formule de calcul des hauts et des bas de l’axe central est la suivante:

Hauteur de l’axe = somme des plus hautes valeurs de la plus récente ligne N1 de la racine K / N1

Le bas de l’axe = la somme des prix les plus bas de la plus récente ligne N2 de la racine K / N2

N1 et N2 sont les deux paramètres qui peuvent être définis pour représenter le nombre de lignes K nécessaires pour calculer le pivot.

Après avoir calculé les hauts et les bas de l’axe, la stratégie permet de négocier. Les règles de négociation spécifiques sont:

  1. Prenez une position libre lorsque le prix atteint le sommet de l’axe
  2. Prenez des positions supplémentaires lorsque le prix atteint le plus bas de l’axe
  3. Définition du stop loss après la tenue d’une position

Ainsi, il a mis en place une stratégie de retour en arrière basée sur une percée de pivot.

Analyse des avantages

Il s’agit d’une stratégie de retour très simple qui présente les avantages suivants:

  1. Les principes sont simples, faciles à comprendre et à mettre en œuvre
  2. Convient pour les transactions fréquentes sur les lignes courtes
  3. Le film a été réalisé à partir d’une série de vidéos sur le thème de l’évolution de l’environnement.
  4. Peut être optimisé en ajustant les paramètres

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Risque d’échec du renversement. Le renversement après la rupture du pivot n’est pas nécessairement un succès et il est possible que la tendance initiale se poursuive.
  2. Risque de rupture du stop loss. Le prix de stop loss peut être dépassé et entraîner une perte plus importante.
  3. Risques liés à des paramètres incorrects. Si les paramètres sont mal définis, cela affectera gravement l’efficacité de la stratégie.

Ces risques peuvent être maîtrisés en ajustant les paramètres et en définissant des stratégies de sortie.

Direction d’optimisation

Il y a encore beaucoup à optimiser dans cette stratégie:

  1. En combinaison avec d’autres indicateurs techniques, déterminer un moment d’entrée plus précis
  2. Ajout de conditions d’expiration, telles que le stop mobile, le stop post-gain, etc.
  3. Adaptation dynamique des paramètres pour une stratégie plus adaptative
  4. Optimiser les paramètres pour trouver la meilleure combinaison de paramètres

Résumer

Cette stratégie est une stratégie de retournement d’axe de courte ligne très simple. Ses avantages sont simples et faciles à comprendre, adaptés aux transactions fréquentes, capables de capturer les retournements. Mais il y a aussi un certain nombre de risques, qui doivent être optimisés davantage pour réduire les risques.

Code source de la stratégie
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075)

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

// backtesting date range
from_day = input(defval=1, title="From Day", minval=1, maxval=31)
from_month = input(defval=1, title="From Month", minval=1, maxval=12)
from_year = input(defval=2018, title="From Year", minval=1900)

to_day = input(defval=1, title="To Day", minval=1, maxval=31)
to_month = input(defval=1, title="To Month", minval=1, maxval=12)
to_year = input(defval=9999, title="To Year", minval=1900)

time_cond = true

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

middle = (swh+swl)/2

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

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