Stratégie de sortie du lustre


Date de création: 2024-01-05 15:57:51 Dernière modification: 2024-01-05 15:57:51
Copier: 2 Nombre de clics: 1214
1
Suivre
1664
Abonnés

Stratégie de sortie du lustre

Aperçu

Cette stratégie utilise les indicateurs de la lampe suspendue pour déterminer la direction et la force de la rupture de prix, générant ainsi des signaux d’achat et de vente. Elle ne fait que des opérations d’achat et de vente.

Principe de stratégie

Cette stratégie est basée sur l’indicateur de la lampe suspendue, qui consiste à définir une ligne de stop en fonction du prix le plus élevé, du prix le plus bas et de l’amplitude réelle moyenne des fluctuations. Plus précisément, la stratégie calcule l’amplitude réelle moyenne des fluctuations du 22e jour et la multiplie par un facteur (défaut 3). Ensuite, en fonction de cette valeur, elle définit une ligne de stop longue et une ligne de stop courte.

Cette stratégie ne fait que faire des opérations d’achat et de vente. Plus précisément, elle génère un signal d’achat lorsque le prix franchit la dernière ligne de rupture de la longue ligne de rupture.

Analyse des avantages

  • L’utilisation d’indicateurs de suspension pour régler dynamiquement les lignes de perte d’arrêt permet de contrôler efficacement les risques
  • Les signaux de transaction sont générés par la rupture de prix et permettent de saisir la tendance des prix.
  • La stratégie consistant à ne faire que des achats et des ventes permet d’éviter les inversions
  • Alerte déclenchée par plusieurs conditions pour surveiller l’état de la stratégie en temps réel

Analyse des risques

  • L’indicateur de suspension est plus sensible aux fluctuations et peut donner de faux signaux en cas de fluctuation anormale des prix.
  • Aucun arrêt de perte après achat, aucun contrôle efficace sur le risque de perte
  • Il n’y a pas de suivi des stops, pas de prise de bénéfices.

Comment gérer les risques:

  1. Combinaison avec d’autres indicateurs pour filtrer les signaux et éviter les fausses informations
  2. Il est possible de mettre en place des lignes de stop-loss pour limiter les pertes maximales.
  3. Ajout d’un mécanisme de suivi et d’arrêt, permettant d’envisager un ajustement dynamique des soldes ou des arrêts partiels

Direction d’optimisation

  1. Il est possible de tester différents paramètres pour optimiser le moment d’achat et de vente.
  2. La confirmation peut être ajoutée à d’autres indicateurs pour éviter de faux signaux.
  3. On peut envisager d’acheter et de vendre en même temps.
  4. Il est possible de configurer des mécanismes d’arrêt et d’arrêt

Résumer

Cette stratégie utilise les paramètres dynamiques des stop-loss pour identifier les opportunités de reprise des prix. Elle n’achète que lorsque les prix franchissent la longue ligne de stop-loss vers le haut et ne vend que lorsque les prix franchissent la courte ligne de stop-loss.

Code source de la stratégie
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy", overlay=true)

length = input(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
showLabels = input(title='Show Buy/Sell Labels ?', defval=true)
useClose = input(title='Use Close Price for Extremums ?', defval=true)
highlightState = input(title='Highlight State ?', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

var color longColor = color.green
var color shortColor = color.red

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0))
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0))
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0))

shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0))
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0))
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0))

changeCond = dir != dir[1]
alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!')
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')

// Define initial capital
initial_capital =25

// Trigger buy order and close buy order on sell signal
if buySignal
    strategy.entry("Buy", strategy.long, qty = initial_capital / close)

if sellSignal
    strategy.close("Buy")