Stratégie de trading de régression équilibrée basée sur la méthode du nombre d'or des bandes de Bollinger


Date de création: 2023-11-16 16:52:55 Dernière modification: 2023-11-16 16:52:55
Copier: 0 Nombre de clics: 774
1
Suivre
1617
Abonnés

Stratégie de trading de régression équilibrée basée sur la méthode du nombre d’or des bandes de Bollinger

Aperçu

Cette stratégie utilise la ligne de séparation dorée de la ceinture de Brin pour effectuer des transactions de régression combinées à un jugement de forme uniforme. Lorsqu’un prix touche la ligne de séparation dorée de la ceinture de Brin, il est considéré comme un signal d’achat et profite de la caractéristique de régression équilibrée du prix.

Principe de stratégie

  1. Calcul de la moyenne, de la haute et de la basse division en or de la bande de Brin
  • Moyenne mobile pondérée à n périodes (vwma)
  • En haut de la trajectoire: la différence standard de la trajectoire moyenne + k * n cycles
  • Le déclin de l’or en bas de l’orbite: orbite moyenne - différence standard de 0,618 * n cycles
  1. La forme du jugement
  • La ligne de 50 jours sur la ligne de 200 jours correspond à la tendance à la hausse
  • Les prix touchent ou sont en dessous de la trajectoire de rupture de l’or, comme signal d’achat
  1. Je me retire.
  • Le prix de l’acier a quitté la trajectoire descendante et est retourné à la trajectoire descendante.
  1. Arrêt des pertes
  • Définissez un pourcentage fixe de stop loss, par exemple 5%.

Avantages stratégiques

  1. L’utilisation de vWMA plutôt que de SMA comme voie médiane de la courbe de Brin permet de mieux refléter les tendances de déplacement des prix

  2. La division en or est une zone de support/résistance importante, qui fournit une base pour la reprise

  3. La ligne moyenne est composée de plusieurs têtes pour assurer une tendance à la hausse.

  4. Le stop-loss fixe assure le contrôle des pertes individuelles

Risque stratégique

  1. La ligne de partage de l’or n’est pas un support bien défini, le prix pourrait tomber directement

  2. Les arrêts fixes peuvent être trop arbitraires et doivent être adaptés en fonction des fluctuations du marché.

  3. La mise en place d’un alignement en ligne moyenne peut aussi être une fausse percée, et doit être jugée en combinant plus d’indicateurs

  4. La longueur du retour est incertaine, il faut définir un point de départ raisonnable.

Direction d’optimisation

  1. On peut tester différentes combinaisons de paramètres, comme le cycle de la bande de Bryn, le multiple de l’écart-type, le pourcentage de stop-loss fixe, etc.

  2. Des indicateurs supplémentaires peuvent être ajoutés pour déterminer les tendances du marché et la probabilité de reprise, comme le MACD, le KD, etc.

  3. Les stop-loss dynamiques peuvent être considérés, selon le stop-loss ATR ou le stop-loss suivi

  4. Optimiser les stratégies de freinage, telles que les freins mobiles ou les freins par lots

Résumer

Cette stratégie utilise la ligne de fractionnement de l’or de Brin pour effectuer des transactions de régression équilibrées, avec des avantages tels que la clarté de la logique de négociation, la simplicité de la définition des paramètres et la possibilité de revenir en arrière. Cependant, il existe un certain risque.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="Bollinger Band with Fib Golden Ratio (0.618)",  shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  

length = input(50,title="BB Length" , minval=1)
src1 = input(hlc3, title="Source")
//mult1 = input(1.33, minval=0.001, maxval=50)
mult = input(1.5,title="multplier", minval=0.001, maxval=50)

stopLoss=input(5,title="Stop Loss",minval=1)

basis = vwma(src1, length)
dev = mult * stdev(src1, length)

//dev3 = mult3 * stdev(src, length)

upper_618= basis + (0.618*dev)
lower_618= basis - (0.618*dev)

//lower_618_dev3= basis - (0.618*dev3)



plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618")
plot(basis, color=color.purple,style=plot.style_circles,  linewidth=2)

plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry")
//plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop")

//plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry")

ema200=ema(close,200)
ema50=ema(close,50)

plot (ema200, title="ema200", color=color.orange, linewidth=2)
plot (ema50, title="ema50", color=color.blue , linewidth=2)


longCondition= ema50 > ema200

strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618  or  low <= lower_618)  )

strategy.close(id="BB_Fib618",  comment="points="+tostring(close - strategy.position_avg_price,  "###.##") , when = strategy.position_size >= 1  and crossover(close,upper_618 )) 

//stoploss exit
stopLossVal = strategy.position_size>=1 ?  strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00
strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )