Stratégie d'inversion de tendance suivant un stop


Date de création: 2024-02-01 14:54:09 Dernière modification: 2024-02-01 14:54:09
Copier: 0 Nombre de clics: 829
1
Suivre
1617
Abonnés

Stratégie d’inversion de tendance suivant un stop

Aperçu

La stratégie de stop loss inversion de suivi de tendance est une stratégie qui utilise l’indicateur Parabolic SAR pour identifier la tendance et entrer dans une position inverse lorsque la tendance est inversée. Cette stratégie combine à la fois des mécanismes de stop loss et de stop loss pour contrôler le risque.

Principe de stratégie

La stratégie utilise l’indicateur Parabolic SAR pour juger de la tendance actuelle du marché. Le nom complet de Parabolic SAR est Parabolic Stop and Reverse, qui indique que la ligne de parallèle s’arrête et se retourne.

Quand le SAR est en baisse et au-dessous du prix, il représente une tendance haussière; quand le SAR est en hausse et au-dessus du prix, il représente une tendance baissière. La stratégie consiste à déterminer la direction de la tendance actuelle en fonction de la position du SAR.

Plus précisément, lorsque le point SAR est en hausse et au-dessus du prix, la stratégie prend une position ouverte; lorsque le point SAR est en baisse et au-dessous du prix, la stratégie prend une position multiple. C’est-à-dire que lorsque le point SAR montre un renversement de tendance, une position inversée est entrée.

En outre, la stratégie dispose également d’un mécanisme de stop-loss et d’arrêt. En cas de surenchère, il est possible de définir un prix de stop-loss pour limiter les pertes. Il est également possible de définir un prix de stop-loss pour liquider une position après que le prix a atteint un certain objectif de profit.

Analyse des avantages

Cette stratégie, combinée à des indicateurs de tendance et à des mécanismes de stop-loss/stop-loss, présente les principaux avantages suivants:

  1. Il est possible de saisir en temps opportun les opportunités d’inversion de tendance et d’effectuer des opérations inversées.
  2. Les paramètres Stop Loss et Stop Stop permettent de contrôler activement les risques et les bénéfices.
  3. Le SAR parabolique est un indicateur de renversement de tendance assez courant et plus efficace.
  4. Les règles de la stratégie sont simples, claires, faciles à comprendre et à mettre en œuvre.

Analyse des risques

Cette stratégie comporte également des risques à prendre en compte:

  1. L’indicateur Parabolic SAR n’est pas parfait et peut parfois émettre des signaux erronés.
  2. Le prix d’arrêt ou de perte doit être raisonnable, sinon il peut être prématuré.
  3. Les frais de transaction peuvent aussi avoir une incidence sur le bénéfice final.
  4. La nouvelle tendance à la longévité peut être de courte durée.

Ces risques peuvent être résolus en ajustant les paramètres d’optimisation ou en les combinant avec d’autres indicateurs filtrés.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimiser les paramètres de Parabolic SAR pour trouver la meilleure combinaison de paramètres
  2. Essayez différentes stratégies de stop-loss, telles que le stop de suivi.
  3. Ajout d’indicateurs ou de conditions pour filtrer les signaux de retournement.
  4. Ajout de contrôles de position pour augmenter ou réduire la position en fonction de la situation du marché.
  5. Paramètres d’ajustement pour les différentes variétés de transactions.

Résumer

Cette stratégie de suivi de la tendance est une stratégie de trading classique. Elle permet de reconnaître les retours de tendance, tout en contrôlant les risques par des mesures de freinage et d’arrêt. Elle peut être optimisée pour devenir une stratégie qui vaut le détour.

Code source de la stratégie
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)
	if barstate.isconfirmed
		if uptrend
			strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
			strategy.cancel("ParLE")
		else
			strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
			strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//Stop Loss Inputs
use_short_stop_loss = input(false, title="Short Stop Loss", group="Stop Loss and Take Profit", inline="Short_SL")
short_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1, 
     defval=5, group="Stop Loss and Take Profit", inline="Short_SL") * 0.01
use_long_stop_loss = input(false, title="Long Stop Loss", group="Stop Loss and Take Profit", inline="Long_SL")
long_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1, 
     defval=5, group="Stop Loss and Take Profit", inline="Long_SL") * 0.01

//Take Profit Inputs     
use_short_take_profit = input(false, title="Short Take Profit", group="Stop Loss and Take Profit", inline="Short_TP")
short_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
     defval = 20, group="Stop Loss and Take Profit", inline="Short_TP") * .01
use_long_take_profit = input(false, title="Long Take Profit", group="Stop Loss and Take Profit", inline="Long_TP")
long_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
     defval = 20, group="Stop Loss and Take Profit", inline="Long_TP") * .01


longStopPrice  = strategy.position_avg_price * (1 - long_stop_loss)
shortStopPrice = strategy.position_avg_price * (1 + short_stop_loss)
longLimitPrice = strategy.position_avg_price * (1 + long_take_profit)
shortLimitPrice = strategy.position_avg_price * (1 - short_take_profit)


if (strategy.position_size > 0.0)
    if (use_long_stop_loss and not use_long_take_profit)
        strategy.exit("Long", stop = longStopPrice)
    if (use_long_take_profit and not use_long_stop_loss)
        strategy.exit("Long", limit = longLimitPrice)
    if (use_long_take_profit and use_long_stop_loss)
        strategy.exit("Long", stop = longStopPrice, limit=longLimitPrice)
if (strategy.position_size < 0.0)
    if (use_short_stop_loss and not use_short_take_profit)
        strategy.exit("Short", stop = shortStopPrice)
    if (use_short_take_profit and not use_short_stop_loss)
        strategy.exit("Short", limit = shortLimitPrice)
    if (use_short_take_profit and use_short_stop_loss)
        strategy.exit("Short", stop = shortStopPrice, limit = shortLimitPrice)

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