Stratégie de réversion de la moyenne de la bande de Bollinger avec indice d'intensité intradienne

Auteur:ChaoZhang est là., Date: 2024-02-20 15h07:59
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de réversion moyenne basée sur les bandes de Bollinger et l'indice d'intensité intraday. Elle utilise les écarts de prix des bandes de Bollinger supérieures et inférieures, combinés avec l'indicateur d'intensité intraday pour déterminer le moment d'entrée.

Principe de stratégie

La stratégie calcule d'abord la bande moyenne, la bande supérieure et la bande inférieure des bandes de Bollinger. La bande moyenne est la moyenne mobile simple ou la moyenne mobile exponentielle du prix de clôture. Les bandes supérieure et inférieure sont construites en ajoutant/soustrayant deux écarts standards sur la bande moyenne. Lorsque le prix franchit la bande inférieure, il est considéré comme une opportunité de réversion moyenne, en prenant une position longue. Lorsque le prix franchit la bande supérieure, il est considéré comme un écart excessif de la moyenne, en prenant une position courte.

L'indicateur d'intensité intradienne est un indicateur de l'intensité intradienne qui combine les informations sur le prix et le volume.

Pour les positions d'ouverture, la stratégie nécessite à la fois une rupture de prix de la bande de Bollinger et le jugement de l'indicateur de l'indice d'intensité intraday.

Analyse des avantages

Le plus grand avantage de cette stratégie est l'utilisation de la réversion moyenne des prix au profit. Lorsque les prix ont de grands écarts par rapport à la moyenne, selon les lois statistiques, la probabilité que les prix reviennent à la moyenne est relativement grande. Cela fournit la base théorique des opérations de la stratégie.

Un autre avantage est l'introduction de l'indicateur de volume - l'indice d'intensité intraday, pour filtrer les signaux de prix.

Analyse des risques

Bien que cette stratégie repose sur l'événement de probabilité des réversions de la moyenne des prix, le mouvement aléatoire des prix du marché peut toujours déclencher un stop loss, conduisant à des pertes.

Un autre risque majeur est que le processus de retour des prix à la moyenne lui-même est un cycle relativement long. Pour les investisseurs, le capital peut être détenu pendant une certaine période. Un tel risque temporel peut amener les investisseurs à manquer d'autres meilleures opportunités d'investissement.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres des bandes de Bollinger, ajuster les indicateurs de cycle et de déviation pour s'adapter à la volatilité des différents marchés

  2. Essayez d'autres types de moyennes mobiles, comme moyenne mobile pondérée pour augmenter la douceur

  3. Essayez d'autres types d'indicateurs de volume, à la recherche de meilleurs signaux de confirmation de volume-prix

  4. Ajouter des stratégies stop loss/profit taking, contrôler la perte maximale par ordre

Conclusion

En conclusion, cette stratégie est une stratégie de réversion moyenne typique. Elle profite des événements de probabilité, mais les risques sont également évidents. De meilleurs résultats peuvent être obtenus grâce à des ajustements de paramètres et des optimisations d'indicateurs. Mais pour les investisseurs, reconnaître correctement les attributs de cette stratégie est également la clé.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Bollinger Bands Strategy with Intraday Intensity Index
// by SparkyFlary

//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Bollinger Bands Strategy with Intraday Intensity Index", shorttitle="Bollinger Bands Strategy", overlay=true)

BBlength = input(20, title="Bollinger Bands length")
BBmaType = input("SMA", title="Bollinger Bands MA type", type=input.string, options=["SMA", "EMA"])
BBprice = input(close, title="source")
timeStop = input(10, title="Time-based stop length")
BBmult = input(2.0, title="Bollinger Bands Standard Deviation")
withIII = input(true, title="with Intraday Intensity Index?")
IIIlength = input(21, title="Intraday Intensity Index length")

//function for choosing moving averages
f_ma(type, src, len) =>
    float result = 0
    if type == "SMA"
        result := sma(src, len)
    if type == "EMA"
        result := ema(src, len)
    result

//Intraday Intensity Index
k1 = (2 * close - high - low) * volume
k2 = high != low ? high - low : 1
i = k1 / k2
iSum = sum(i, IIIlength)

//Bollinger Bands
BBbasis = f_ma(BBmaType, BBprice, BBlength)
BBdev = BBmult * stdev(BBprice, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

plot(BBupper, title="Bollinger Bands Upper Line")
plot(BBlower, title="Bollinger Bands Lower Line")
plot(BBbasis, title="Bollinger Bands Mid line", color=color.maroon)

//Strategy
buy = close[1]<BBlower[1] and close>BBlower and (withIII ? iSum>0 : 1)
sell = close>BBbasis or buy[timeStop] or (strategy.openprofit>0 and buy==0 and buy[1]==0 and buy[2]==0 and buy[3]==0)
short = close[1]>BBupper[1] and close<BBupper and (withIII ? iSum<0 : 1)
cover = close<BBbasis or short[timeStop] or (strategy.openprofit>0 and short==0 and short[1]==0 and short[2]==0 and short[3]==0)

strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)

Plus de