Stratégie de suivi des tendances à double

Auteur:ChaoZhang est là., Date: 2024-01-16 15h03:55 Le président de la République
Les étiquettes:

img

Résumé

La stratégie de suivi des tendances doubles est une stratégie composite combinant l'indicateur Supertrend, la moyenne mobile exponentielle double (DEMA) et les bandes de Bollinger.

La logique de la stratégie

La stratégie est composée de trois parties principales:

  1. Indicateur de supertrend: Calcule la ligne de rupture vers le haut et la ligne de rupture vers le bas pour déterminer la direction de la tendance actuelle. Il génère des signaux d'achat lorsque le prix se déplace vers le haut de la ligne de supertrend et des signaux de vente lorsque le prix se déplace vers le bas.

  2. Double moyenne mobile exponentielle (DEMA): Indicateur de suivi de tendance qui combine les caractéristiques d'une moyenne mobile simple et d'une moyenne mobile exponentielle, qui peut réagir plus rapidement aux changements de prix.

  3. Les bandes de Bollinger: représentent la gamme de fluctuation des prix. Une contraction ou une expansion anormale des bandes de Bollinger indique un renversement de tendance potentiel.

Lorsque l'indicateur Supertrend et le DEMA émettent tous deux des signaux d'achat/vente, la stratégie entre dans la position correspondante.

Les avantages

  1. La combinaison de plusieurs indicateurs réduit les faux signaux.

  2. L'indicateur Supertrend est insensible aux changements mineurs de prix et ne génère des signaux qu'à des points de basculement de la tendance, évitant ainsi une fréquence excessive de négociation.

  3. La courbe lisse de DEMA évalue avec précision et fiabilité les tendances à long terme.

  4. Les bandes de Bollinger aident à déterminer les points d'inversion de tendance.

Risques et solutions

  1. Les paramètres de supertrend trop sensibles peuvent générer plus de bruit.

  2. Une longue période de DEMA entraîne une faible tendance à suivre la capacité.

  3. Signals incohérents lors de la combinaison de jugements de plusieurs indicateurs.

Directions d'optimisation

  1. Testez différentes périodes ATR et paramètres de multiplicateur pour trouver la combinaison optimale pour l'indicateur de supertendance.

  2. Optimisez le paramètre de la période DEMA.

  3. Ajoutez d'autres indicateurs auxiliaires tels que KDJ, MACD, etc.

  4. Mettre en place des stratégies de stop loss.

Résumé

La stratégie de suivi des tendances doubles combine les atouts de Supertrend, DEMA et Bollinger Bands en utilisant plusieurs indicateurs, améliorant la qualité du signal tout en capturant les tendances.


/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend + DEMA + Bollinger Bands", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, precision=2)

// Input parameters for Supertrend
atrLength = input(title="ATR Period", type=input.integer, defval=12)
src = input(hl2, title="Source")
multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method?", type=input.bool, defval=true)
showSupertrend = input(title="Show Supertrend Indicator?", type=input.bool, defval=true)

// Input parameters for DEMA
demaLength = input(200, title="DEMA Period")
showDEMA = input(title="Show DEMA Indicator?", type=input.bool, defval=true)

// Calculate ATR for Supertrend
atr2 = sma(tr, atrLength)
atr = changeATR ? atr(atrLength) : atr2

// Calculate Supertrend
up = src - (multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Plot Supertrend
upPlot = plot(showSupertrend ? (trend == 1 ? up : na) : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))

dnPlot = plot(showSupertrend ? (trend == 1 ? na : dn) : na, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)

longFillColor = (trend == 1 ? color.new(color.green, 80) : color.new(color.white, 0))
shortFillColor = (trend == -1 ? color.new(color.red, 80) : color.new(color.white, 0))

fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

// Alert conditions
alertcondition(buySignal, title="Custom Supertrend Buy", message="Custom Supertrend Buy!")
alertcondition(sellSignal, title="Custom Supertrend Sell", message="Custom Supertrend Sell!")

// Calculate DEMA
ema1 = ema(close, demaLength)
dema = 2 * ema1 - ema(ema1, demaLength)

// Plot DEMA with white color
plot(showDEMA ? dema : na, color=color.new(color.white, 0), title="DEMA", linewidth=2)

// Add push notification on mobile if buy and sell occurred
if (buySignal)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell")
    alert("Buy Signal - Supertrend")

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover")
    alert("Sell Signal - Supertrend")


Plus de