
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.
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:
Ainsi, il a mis en place une stratégie de retour en arrière basée sur une percée de pivot.
Il s’agit d’une stratégie de retour très simple qui présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Ces risques peuvent être maîtrisés en ajustant les paramètres et en définissant des stratégies de sortie.
Il y a encore beaucoup à optimiser dans cette stratégie:
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.
/*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)