Stratégie de sortie de lustre améliorée ZLSMA et détection d'impulsions de volume

ZLSMA ATR RVOL
Date de création: 2024-06-17 15:41:45 Dernière modification: 2024-06-17 15:41:45
Copier: 0 Nombre de clics: 1206
1
Suivre
1617
Abonnés

Stratégie de sortie de lustre améliorée ZLSMA et détection d’impulsions de volume

Aperçu

Cette stratégie combine les sorties de chandelier, les moyennes mobiles à zéro retard (ZLSMA) et la détection des impulsions de volume relatif (RVOL) pour former un système de négociation complet. La sortie de chandelier modifie dynamiquement la position de stop loss en fonction de l’amplitude réelle des fluctuations (ATR), ce qui permet de mieux s’adapter aux changements de marché.

Principe de stratégie

  1. Calculer l’ATR et calculer la position de stop-loss sur les lots et les lots vides en fonction de l’ATR et du prix le plus élevé/le plus bas.
  2. Le ZLSMA est calculé pour déterminer la direction de la tendance.
  3. Calculer le RVOL et déterminer si le volume de trafic est en pulsation en comparant le RVOL et le seuil de réglage.
  4. Entrée multiple: ZLSMA sur le prix de clôture actuel, avec un RVOL supérieur à la marge, ouverture de plusieurs ordres, avec une position de stop-loss au plus bas de la période.
  5. Entrée à vide: ZLSMA au cours de la clôture actuelle, avec un RVOL supérieur à la marge, ouverture à vide, avec un stop loss au plus haut de la période récente.
  6. Le prix de clôture actuel du ZLSMA est le même que celui de la première partie de la saison.
  7. Le prix de clôture actuel est ZLSMA et le billet est vide.

Avantages stratégiques

  1. La règle de la sortie du phare permet d’ajuster dynamiquement la position de l’arrêt, ce qui réduit le risque d’arrêt fixe.
  2. Les ZLSMA sont capables de réagir rapidement aux variations de prix et de fournir des informations fiables sur les tendances des transactions.
  3. La détection des pulsations RVOL peut aider à éviter les marchés de liquidation à faible volatilité et à améliorer la qualité des transactions.
  4. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre.

Risque stratégique

  1. Dans les marchés où les tendances sont peu visibles ou où les fluctuations sont fréquentes, cette stratégie peut entraîner un plus grand nombre de transactions, ce qui augmente le coût des commissions.
  2. Les paramètres d’une stratégie (par exemple, le cycle ATR, le cycle ZLSMA, le seuil RVOL, etc.) ont une grande influence sur la performance de la stratégie. Des paramètres inappropriés peuvent entraîner une mauvaise performance de la stratégie.
  3. La stratégie ne prend pas en compte la gestion des positions et le contrôle des risques, et nécessite une application pratique combinant les principes de la gestion des fonds.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’indicateurs de confirmation de tendance, tels que le système de ligne moyenne ou l’indicateur de dynamique, améliore encore la précision des jugements de tendance.
  2. Optimiser la logique de détection des impulsions RVOL, par exemple en prenant en compte plusieurs impulsions RVOL en séquence avant de négocier, afin d’améliorer encore la qualité du signal.
  3. L’ajout d’une logique de stop-loss dans les conditions de sortie, qui permet de fermer la position si un certain objectif de profit est atteint, afin de bloquer les bénéfices déjà réalisés.
  4. Optimiser les paramètres stratégiques en fonction des caractéristiques du marché et de la variété de transactions afin de trouver la meilleure combinaison de paramètres.
  5. L’amélioration des stratégies, combinée aux principes de gestion des positions et de contrôle des risques, améliore la solidité et la fiabilité des stratégies.

Résumer

La stratégie ZLSMA est une stratégie de suivi de tendance qui permet de contrôler le risque de négociation tout en saisissant les opportunités de tendance. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre, mais elle doit encore être optimisée et améliorée en fonction des caractéristiques spécifiques du marché et de la variété de transactions.

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

//@version=5
strategy("Chandelier Exit Strategy with ZLSMA and Volume Spike Detection", shorttitle="CES with ZLSMA and Volume", overlay=true, process_orders_on_close=true, calc_on_every_tick=false)
// Chandelier Exit Inputs
lengthAtr = input.int(title='ATR Period', defval=1)
mult = input.float(title='ATR Multiplier', step=0.1, defval=2.0)
useClose = input.bool(title='Use Close Price for Extremums', defval=true)
// Calculate ATR
atr = mult * ta.atr(lengthAtr)
// Calculate Long and Short Stops
longStop = (useClose ? ta.highest(close, lengthAtr) : ta.highest(high, lengthAtr)) - atr
shortStop = (useClose ? ta.lowest(close, lengthAtr) : ta.lowest(low, lengthAtr)) + atr
// Update stops based on previous values
longStop := na(longStop[1]) ? longStop : close[1] > longStop[1] ? math.max(longStop, longStop[1]) : longStop
shortStop := na(shortStop[1]) ? shortStop : close[1] < shortStop[1] ? math.min(shortStop, shortStop[1]) : shortStop
// Determine Direction
var int dir = na
dir := na(dir[1]) ? (close > shortStop ? 1 : close < longStop ? -1 : na) : close > shortStop[1] ? 1 : close < longStop[1] ? -1 : dir[1]
// ZLSMA Inputs
lengthZLSMA = input.int(title="ZLSMA Length", defval=50)
offsetZLSMA = input.int(title="ZLSMA Offset", defval=0)
srcZLSMA = input.source(close, title="ZLSMA Source")
// ZLSMA Calculation
lsma = ta.linreg(srcZLSMA, lengthZLSMA, offsetZLSMA)
lsma2 = ta.linreg(lsma, lengthZLSMA, offsetZLSMA)
eq = lsma - lsma2
zlsma = lsma + eq
// Plot ZLSMA
plot(zlsma, title="ZLSMA", color=color.purple, linewidth=3)
// Swing High/Low Calculation
swingHigh = ta.highest(high, 5)
swingLow = ta.lowest(low, 5)
// Relative Volume (RVOL) Calculation
rvolLength = input.int(20, title="RVOL Length")
rvolThreshold = input.float(1.5, title="RVOL Threshold")
avgVolume = ta.sma(volume, rvolLength)
rvol = volume / avgVolume
// Define buy and sell signals based on ZLSMA and Volume Spike
buySignal = (dir == 1 and dir[1] == -1 and close > zlsma and rvol > rvolThreshold)
sellSignal = (dir == -1 and dir[1] == 1 and close < zlsma and rvol > rvolThreshold)
// Define exit conditions based on ZLSMA
exitLongSignal = (close < zlsma)
exitShortSignal = (close > zlsma)
// Strategy Entries and Exits
if (buySignal)
    strategy.entry("Long", strategy.long, stop=swingLow)
if (sellSignal)
    strategy.entry("Short", strategy.short, stop=swingHigh)
if (exitLongSignal)
    strategy.close("Long")
if (exitShortSignal)
    strategy.close("Short")
// Alerts
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')