DAKELAX-XRPUSDT Stratégie de réversion moyenne de la bande de Bollinger

Auteur:ChaoZhang est là., Date: 2023-11-02 16:18:34 Je suis désolé
Les étiquettes:

img

Résumé

DAKELAX-XRPUSDT est une stratégie de trading bot pour XRPUSDT sur Binance.

La logique de la stratégie

La stratégie calcule d'abord la SMA à 20 périodes et les bandes de Bollinger supérieures/inférieures. La bande supérieure est la SMA + 1,5 écart type, et la bande inférieure est la SMA - 2,2 écart type. Elle calcule ensuite le taux de contraction des bandes. Les bandes sont remplies de noir si la contraction est > 1,3, de jaune si < 0,1, sinon de rouge.

Quand le prix de clôture est en dessous de la bande inférieure, il va long avec 20 pièces.

La stratégie calcule également la ligne rapide EMA à 7 périodes et la ligne lente EMA à 18 périodes.

Analyse des avantages

  • Les bandes de Bollinger et le taux de contraction identifient intuitivement les tendances et la volatilité
  • Combiné avec EMA crossover ajoute de la force aux signaux
  • Les résultats des tests antérieurs sont bons et relativement stables dans le commerce en direct

Analyse des risques

  • Probabilité élevée de défaillance en cas de rupture après contraction de la bande
  • Achats à un montant fixe sans risque de surtrading de taille de position
  • Trop de crossovers sur des marchés variés risquent des pertes
  • Ne prend en considération que les facteurs quotidiens, ne tient pas compte des tendances à plus long terme

Considérez la dimensionnement dynamique de la position ou le stop loss pour contrôler les risques. Optimisez la stratégie de croisement pour éviter les fléchettes sur les marchés variés. Ajoutez des indicateurs de tendance à plus long terme pour identifier les mouvements plus importants.

Directions d'optimisation

  • Ajustez le montant d'achat en fonction de la largeur de bande, moins lorsqu'il est contracté et plus lorsqu'il est élargi

  • Considérez l'accumulation de positions lorsque la contraction est observée mais que le signal n'est pas encore déclenché

  • Ajouter un indicateur de tendance sur une période plus longue pour déterminer la direction globale, mettre en pause la stratégie si elle n'est pas claire

  • Incorporer le stop loss pour contrôler le risque, peut être placé près des niveaux les plus bas récents des bandes

  • Optimiser les paramètres de croisement tels que les périodes EMA pour éviter de se retrouver piégé

Résumé

DAKELAX-XRPUSDT est une stratégie de trading robot utilisant la contraction de la bande de Bollinger avec un croisement EMA. Il est intuitif et présente de bons résultats de backtest mais contient certains risques. Ceux-ci peuvent être réduits grâce à la dimensionnement des positions, à la stratégie d'arrêt, à l'ajout de stop loss et à l'optimisation de la logique de croisement. Dans l'ensemble, il fournit un exemple clair d'une stratégie de bande de Bollinger, mais nécessite une optimisation spécifique à la paire pour des profits stables.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true)
strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true)

buyAmount = input(20, minval=1)

// SMA20
len2 = input(20, minval=1)
src2 = input(close)
out2 = sma(src2, len2)

// BB contraction value (medium tight)
contraction_value = 1.3
// BB contraction value (very tight)
contraction_value2 = 0.1

// 2xSTDEV BB calculation
dev = stdev(src2, len2)
upper_BB = out2  + 1.5*dev
lower_BB = out2  - 2.2*dev
x1 = plot(upper_BB, color=blue, linewidth = 2)
x2 = plot(lower_BB, color=blue, linewidth = 2)

contraction = (upper_BB-lower_BB)/out2

//fills the BBands according to the contraction value (threshold)

// Calculate values
fastMA  = ema(close, 7)
slowMA  = ema(close, 18)

// Determine alert setups
crossUp   = crossover(fastMA, slowMA)
crossDown = crossunder(fastMA, slowMA)

buySignal   = (crossUp or crossUp[1]) and (low > slowMA)
shortSignal = (crossDown or crossDown[1]) and (high < slowMA)

// Highlight alerts on the chart
bgColour =
     (buySignal and barstate.isrealtime) ? green :
     (shortSignal and barstate.isrealtime) ? red :
     na

signalBuy = (buySignal ) ? true : false
signalSell = (shortSignal ) ? true : false

test = true

test := not test[1]

closesBelowLowerBB = close < lower_BB
closesAboveUpperBB = close > upper_BB

tmptext = "blah"

// Plot values
plot(series=fastMA, color=teal)
plot(series=slowMA, color=orange)

plot(out2, color=black, linewidth = 1)
fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red)

isInRed = contraction < contraction_value and contraction >= contraction_value2
isInYellow = contraction < contraction_value and contraction < contraction_value2

if ( closesBelowLowerBB )
    strategy.order('Buy', strategy.long, buyAmount)

if ( closesAboveUpperBB )
    strategy.close_all()



Plus de