Stratégie de négociation de choc de tendance de Bollinger

Auteur:ChaoZhang est là., Date: 23 janvier 2023 à 10h48
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur Bollinger Bands pour déterminer la direction de la tendance du marché, et prend des transactions contre-tendance lorsque l'inversion de tendance se produit. Il va long lorsque le prix dépasse la bande inférieure dans une tendance haussière; et court lorsque le prix dépasse la bande supérieure dans une tendance baissière.

Principe de stratégie

Cette stratégie utilise la bande moyenne, la bande supérieure et la bande inférieure des bandes de Bollinger pour déterminer la direction de la tendance du marché. La bande moyenne est la moyenne mobile exponentielle de n périodes, tandis que la bande supérieure et la bande inférieure sont respectivement la bande moyenne +2,3 écart type et la bande moyenne -2,3 écart type. Lorsque le prix dépasse la bande inférieure, cela indique une tendance haussière actuelle. Lorsque le prix dépasse la bande supérieure, cela indique une tendance baissière actuelle.

En outre, la stratégie définit une moyenne mobile simple de 200 périodes (SMA) comme référence pour le jugement de la tendance à long terme. Les signaux de négociation ne sont déclenchés que lorsque les indicateurs BB et SMA s'accordent sur la même direction. Cela peut filtrer efficacement certaines fausses ruptures.

La logique de négociation spécifique est la suivante:

  1. Déterminer la tendance à la hausse: BB bande supérieure > sma, bande moyenne > sma, bande inférieure >= sma
  2. Déterminer la tendance à la baisse: BB bande supérieure < sma, bande moyenne < sma, bande inférieure <= sma
  3. Condition longue: tendance haussière + bris de prix BB bande inférieure
  4. Condition de sortie: les prix dépassent la bande supérieure BB
  5. Condition courte: tendance à la baisse + rupture des prix BB bande supérieure
  6. Condition de sortie: les prix dépassent la fourchette moyenne BB ou rebondissent au-dessus de l'AM de 230 périodes

Analyse des avantages

  1. BB évalue efficacement la direction de la tendance et capte les opportunités de négociation de rupture
  2. L'ajout d'un filtre MA à long terme réduit les risques associés aux fausses fuites
  3. Une logique claire, longue et courte, facile à comprendre et à suivre
  4. Des critères stricts pour une sortie courte permettent de limiter les pertes

Analyse des risques

  1. Déplacement potentiel important lorsque BB et MA émettent des signaux de négociation
  2. Les conditions de vente à découvert trop strictes entraînent un bénéfice marginal à découvert limité
  3. Une régulation incorrecte des paramètres peut entraîner une fréquence de négociation trop élevée/faible
  4. Les stratégies de rupture sont sujettes à d' énormes pertes

Améliorations:

  1. Optimiser les paramètres BB pour réduire la fréquence des transactions
  2. Définir un stop loss pour éviter des pertes énormes par transaction
  3. Ajouter un filtre de volume pour assurer la validité de la rupture

Résumé

Dans l'ensemble, il s'agit d'une stratégie simple et facile à comprendre, en utilisant BB pour déterminer les tendances et prendre des contrats contre tendance aux points tournants.


/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
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/
// © Aayonga

//@version=5
strategy("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 )
bollL=input.int(20,minval=1,title = "长度")
bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差")
basis=ta.ema(close,bollL)
dev=bollmult*ta.stdev(close,bollL)
upper=basis+dev
lower=basis-dev
smaL=input.int(200,minval=1,step=1,title = "趋势分界线")
sma=ta.sma(close,smaL)
//多头趋势
longT=upper>sma and basis>sma and lower>=sma
//空头趋势
shortT=upper<sma and basis<sma and lower<=sma

//入场位
longE=ta.crossover(close,lower)
shortE=ta.crossover(close,upper)
//出场位

longEXIT=ta.crossover(high,upper) 
shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) 

if longT and longE
    strategy.entry("多",strategy.long)

if longEXIT
    strategy.close("多",comment = "多出场")

if shortE and shortT
    strategy.entry("空",strategy.short)

if shortEXIT
    strategy.close("空",comment = "空出场")

Plus de