La stratégie Parabolic SAR est une stratégie de trading basée sur l’indicateur Parabolic SAR. La stratégie vise à identifier les points de revers de la tendance et à se retirer de la position en cas de revers de tendance.
L’indicateur SAR parabolique est capable d’identifier la tendance des prix et de donner un signal de revers potentiel. Le passage de la ligne K au point SAR représente le passage de la tête blanche à la tête blanche; le passage de la ligne K au point SAR au point bas représente le passage de la tête blanche à la tête blanche.
La stratégie s’appuie sur cette caractéristique de l’indicateur Parabolic SAR, qui identifie un renversement de tendance lorsque le point SAR traverse la ligne K et effectue des opérations de plus ou de moins en conséquence. Plus précisément, la logique de la stratégie est la suivante:
Calculer la valeur du SAR parabolique
Déterminez s’il y a un signal de renversement de tendance. Si le point SAR passe du haut vers le bas de la ligne K, représentant un signal de tête vide, faites le vide. Si le point SAR passe du bas vers le haut de la ligne K, représentant un signal de tête multiple, faites le plus.
Il ouvre la position au moment de la traversée et la ferme au moment où elle traverse à nouveau la ligne K avec le point SAR inversé.
Utilisez l’indicateur Parabolic SAR pour identifier les points d’inversion de tendance et éviter les opérations inversées dans la tendance.
Il s’agit d’un changement de tendance qui se produit rapidement et qui est suivi d’un changement de tendance.
En définissant le point d’arrêt de la SAR qui traverse à nouveau la ligne K, on peut arrêter rapidement la perte et contrôler les pertes en temps opportun.
La stratégie est simple, claire et facile à mettre en œuvre.
L’indicateur Parabolic SAR peut générer de nombreux faux signaux, entraînant des transactions inutiles. Les paramètres du SAR peuvent être ajustés de manière appropriée pour réduire le taux de faux signaux.
Il est facile de se faire piéger dans les marchés qui changent rapidement. Il est possible d’envisager d’ajouter des conditions de filtrage pour éviter les périodes de forte volatilité.
Un arrêt trop proche du point de rupture peut entraîner un arrêt trop fréquent. Il est possible d’alléger la zone de rupture de manière appropriée, donnant au prix une certaine marge de manœuvre.
Si un seul indicateur est susceptible d’être limité par un marché particulier, il peut être envisagé d’ajouter d’autres indicateurs ou des conditions de filtrage pour améliorer l’adéquation.
La stratégie est simple, claire et facile à maîtriser. Cependant, le fait de s’appuyer uniquement sur un seul indicateur de Parabolic SAR présente certaines limites. L’application réelle nécessite une prise en compte globale de l’environnement du marché, un ajustement approprié des paramètres et une collaboration avec d’autres indicateurs techniques.
/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Parabolic SAR Strategy (on close) [QuantNomad]", shorttitle="SAR Strategy [QN]", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = 0.0 // PSAR
af = 0.0 // Acceleration Factor
trend_dir = 0 // Current direction of PSAR
ep = 0.0 // Extreme point
sar_long_to_short = trend_dir[1] == 1 and close <= psar[1] // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long
trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long
// Calculate trend direction
trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 :
barstate.isfirst[1] and close[1] <= open[1] ? -1 :
sar_long_to_short ? -1 :
sar_short_to_long ? 1 : nz(trend_dir[1])
// Calculate Acceleration Factor
af := trend_change ? start :
(trend_dir == 1 and high > ep[1]) or
(trend_dir == -1 and low < ep[1]) ?
min(maximum, af[1] + increment) :
af[1]
// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high :
trend_change and trend_dir == -1 ? low :
trend_dir == 1 ? max(ep[1], high) :
min(ep[1], low)
// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] :
barstate.isfirst[1] and close[1] <= open[1] ? high[1] :
trend_change ? ep[1] :
trend_dir == 1 ? psar[1] + af * (ep - psar[1]) : psar[1] - af * (psar[1] - ep)
plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red, linewidth = 2)
// Strategy
strategy.entry("Long", true, when = sar_short_to_long)
strategy.entry("Short", false, when = sar_long_to_short)