Stratégie de négociation de réversion moyenne basée sur les bandes de Bollinger et le ratio d'or

Auteur:ChaoZhang est là., Date: 2023-11-16 16h52:55
Les étiquettes:

img

Résumé

Cette stratégie utilise la ligne du ratio d'or des bandes de Bollinger combinée à des formations moyennes mobiles pour négocier des réversions de la moyenne.

La logique de la stratégie

  1. Calculer les bandes de Bollinger en bande moyenne, en bande supérieure et en bande inférieure du ratio d'or
  • Bande moyenne: vwma de n périodes
  • bande supérieure: bande moyenne + déviation type de k * n périodes
  • Bandes inférieures du ratio d'or: bandes moyennes - 0,618 * déviation type de n périodes
  1. Formation des juges
  • L'indicateur de volatilité de 50 jours au-dessus de l'indicateur de volatilité de 200 jours indique une tendance à la hausse
  • Les prix touchent ou sont inférieurs à la bande inférieure du ratio d'or, comme signal d'achat
  1. Sortie
  • Lorsque le prix dépasse la fourchette supérieure BB, le prix est considéré comme s'étant éloigné de la fourchette inférieure, position close
  1. Arrêt des pertes
  • Définir un pourcentage fixe d'arrêt des pertes, par exemple 5%

Les avantages

  1. L'utilisation de vwma au lieu de sma pour la ligne médiane de BB reflète mieux le mouvement des prix

  2. Le rapport or est un support/résistance important, fournit une base pour la réversion

  3. L'AM dans la tendance à la hausse assure une tendance globale à la hausse

  4. L'établissement de crédit est un établissement de crédit qui ne détient pas de titres.

Les risques

  1. La ligne du ratio d'or n'est pas un support garanti, le prix pourrait se briser.

  2. L'établissement de la banque doit être tenu informé de l'évolution de la volatilité de la banque.

  3. La tendance haussière de MA peut être une fausse rupture, devrait vérifier plus d'indicateurs

  4. Pas sûr de la longueur de la réversion, besoin d'un profit raisonnable en sortant

Amélioration

  1. Testez différentes combinaisons de paramètres tels que la période BB, le multiplicateur SD, le pourcentage de perte fixe, etc.

  2. Ajouter plus d'indicateurs pour déterminer la tendance du marché et la probabilité d'inversion, par exemple MACD, KD, etc.

  3. Considérez les arrêts dynamiques, tels que les arrêts ATR ou trailing

  4. Optimiser la prise de bénéfices comme le déplacement de l'arrêt des bénéfices, la prise partielle des bénéfices, etc.

Résumé

Cette stratégie consiste à effectuer des opérations de renversement en utilisant la ligne de ratio d'or BB, avec une logique claire, des paramètres simples et un retrait contrôlable. Mais elle comporte également des risques, nécessite des tests et une optimisation supplémentaires, l'ajout d'indicateurs techniques pour la tendance et de meilleurs arrêts/sorties avant l'utilisation réelle.


/*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 )


Plus de