Stratégie de croisement des moyennes mobiles à bande de Bollinger

Auteur:ChaoZhang est là., Date: 2024-01-30 16h37 et 47 min
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading basée sur le croisement des bandes de Bollinger et des moyennes mobiles pour prendre des décisions d'achat et de vente. Il utilise principalement l'indicateur des bandes de Bollinger sur la période de 5 minutes pour déterminer la fourchette de fluctuation des prix, combiné avec des moyennes mobiles pour déterminer la direction de la tendance, et forme une stratégie de trading en fonction des situations de croisement des bandes supérieures, inférieures et moyennes des bandes de Bollinger. Cette stratégie convient à la paire de devises AUD/NZD.

Principe de stratégie

  1. Utilisez l'indicateur Bollinger Bands pour déterminer les limites supérieures et inférieures des prix. La bande du milieu de Bollinger Bands est une moyenne mobile simple de 20 périodes, la bande supérieure est la bande du milieu plus deux écarts types et la bande inférieure est la bande du milieu moins deux écarts types.

  2. Lorsque le prix de clôture franchit la bande inférieure vers le haut, cela indique que le prix commence à monter, donc nous faisons une entrée longue ici.

  3. Lorsque le prix de clôture dépasse la bande moyenne des bandes de Bollinger, cela signifie que le prix a augmenté au-dessus de la bande moyenne, donc nous sortons de la position ici pour terminer cette ronde de négociation.

  4. Lorsque le prix de clôture franchit la bande supérieure vers le bas, cela signifie que le prix commence à descendre, donc nous faisons une entrée courte ici.

  5. Lorsque le prix de clôture dépasse la bande moyenne des bandes de Bollinger, cela signifie que le prix est tombé en dessous de la bande moyenne, donc nous sortons de la position ici pour terminer cette ronde de négociation.

Analyse des avantages

  1. Évitez de manquer des signaux d'inversion. Cette stratégie utilise pleinement les caractéristiques des bandes de Bollinger pour capturer les sauts de prix de la bande inférieure et les baisses de la bande supérieure en temps opportun, en évitant les pertes causées par des opportunités d'inversion manquées.

  2. En effectuant des entrées d'achat et de vente à des points clés et en définissant un stop-loss raisonnable, il peut rapidement changer de direction pendant la transformation entre le marché haussier et l'ours pour obtenir de meilleurs rendements.

  3. Formation de signaux de trading basés sur un délai de 5 minutes, capables de capturer les tendances à court terme sans négocier trop fréquemment pour augmenter les coûts de transaction.

Analyse des risques

  1. Risque de convergence trop rapide des bandes de Bollinger. Lorsque les prix du marché fluctuent violemment, les bandes supérieures et inférieures des bandes de Bollinger convergent trop rapidement, ce qui peut facilement former de fausses ruptures et donner de mauvais signaux. Nous devons ajuster les paramètres ou suspendre la négociation à ce stade.

  2. Le risque de stop loss. Un stop loss trop petit peut facilement être brisé tandis qu'un stop loss trop grand peut entraîner d'énormes pertes. Nous devons ajuster correctement le prix du stop loss.

  3. Si la fréquence de négociation est trop élevée, les coûts de transaction augmenteront également de manière significative.

Optimisation

  1. Nous pouvons tester différentes combinaisons de paramètres de cycle et de paramètres d'écart type pour trouver l'ensemble de paramètres qui correspond le mieux à la plage de volatilité de ce produit particulier.

  2. Ajouter d'autres indicateurs pour filtrer les faux signaux. Des indicateurs tels que KDJ et MACD peuvent être introduits pour éviter les problèmes causés par la seule confiance en Bollinger Bands.

  3. Optimiser la stratégie de stop loss. Nous pouvons définir un stop loss plus précis en suivant les changements de prix en temps réel. D'autres stratégies comme la ligne d'action peuvent également être utilisées.

Conclusion

Cette stratégie est relativement stable dans l'ensemble avec une certaine rentabilité. En optimisant les paramètres et les stratégies de stop loss, les risques de trading peuvent être encore réduits pour obtenir de bons rendements dans des conditions de marché volatiles. Cette stratégie mérite d'être testée et optimisée et a de très bonnes perspectives d'application pratique.


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

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © theTradeAI

strategy('TradeAI - 5min AUDNZD Strategy', overlay=true)

//////////////////////////////
//////// STOP ORDERS DETECTING
//////////////////////////////

length = input(1)

h = ta.highest(high, length)
l = ta.lowest(low, length)

//////////////////////////////
//////// EMAS
//////////////////////////////

emaLenght = input.int(200)

ema200 = ta.ema(close,emaLenght)

//////////////////////////////
//////// BOLLINGER BANDS
//////////////////////////////

length1 = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length1, _type) => 
    switch _type
        "SMA" => ta.sma(source, length1)
        "EMA" => ta.ema(source, length1)
        "SMMA (RMA)" => ta.rma(source, length1)
        "WMA" => ta.wma(source, length1)
        "VWMA" => ta.vwma(source, length1)

basis = ma(src, length1, maType)
dev = mult * ta.stdev(src, length1)
upperr = basis + dev
lowerr = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)


//////////////////////////////
//////// ENTRY & EXIT
//////////////////////////////

// Buy entry
if ta.crossover(lowerr, close)
    strategy.entry('long', strategy.long, stop=h)

// Buy entry CANCEL
if close > lowerr
    strategy.cancel('long')

// Buy exit
if close > basis
    strategy.close('long')

// Sell entry
if ta.crossunder(upperr, close)
    strategy.entry('short', strategy.short, stop=l)

// Sell entry CANCEL
if close < upperr
    strategy.cancel('short')

// Sell exit
if close < basis
    strategy.close('short')



Plus de