Stratégie de croisement de moyennes mobiles CCI avec l'indicateur RSI des bandes de Bollinger


Date de création: 2023-12-20 16:24:49 Dernière modification: 2023-12-20 16:24:49
Copier: 0 Nombre de clics: 1107
1
Suivre
1621
Abonnés

Stratégie de croisement de moyennes mobiles CCI avec l’indicateur RSI des bandes de Bollinger

Aperçu

Cette stratégie utilise les bandes de Brin, l’indice de force relative (RSI) et l’indice de chemin de marchandises (CCI) pour rechercher les signaux de croisement et émettre des signaux d’achat et de vente. La stratégie vise à détecter les sur-achats et les sur-vente du marché et à entrer dans le marché aux points de basculement afin d’obtenir un meilleur retour sur investissement.

Principe de stratégie

La ceinture de Brin

Les bandes de Brin sont constituées d’un milieu, d’un haut et d’un bas. Le milieu est généralement représenté par une moyenne mobile de 20 jours. Le haut et le bas sont respectivement situés au-dessus et au-dessous du milieu.

Indicateur RSI

L’indicateur RSI reflète la variation de la vitesse à laquelle les prix de clôture augmentent et diminuent au cours d’une période de temps et sert à mesurer le rapport de force entre les prix d’achat et de vente. La valeur du RSI est une zone de survente de 0 à 30 et une zone de survente de 70 à 100. Elle peut servir de signal de vente lorsque le RSI descend de la zone de survente et de signal d’achat lorsque le RSI monte de la zone de survente.

Indicateur du CCI

L’indicateur CCI est utilisé pour mesurer la mesure dans laquelle le prix d’une action s’écarte de son prix moyen. +100 représente un prix bien supérieur au prix moyen, c’est-à-dire un surachat; -100 représente un prix bien inférieur au prix moyen, c’est-à-dire un survente.

Signal croisé stratégique

Cette stratégie utilise la courbe de Brin pour déterminer si le prix est sur-acheté ou sur-vendu à court terme, l’indicateur RSI pour déterminer l’équilibre de la force de vente et d’achat, et l’indicateur CCI pour déterminer le degré de déviation du prix. L’indicateur Brin, le RSI et le CCI émettent des instructions de négociation lorsque des signaux d’achat / de vente sont donnés simultanément.

Avantages stratégiques

  1. La combinaison de plusieurs indicateurs permet de réduire les faux signaux et d’améliorer l’exactitude des signaux.
  2. L’occasion de détecter les points de basculement et de saisir les retournements
  3. Les paramètres peuvent être personnalisés pour s’adapter à différents environnements de marché
  4. Filtrage CCI homogène pour réduire le bruit et améliorer la stabilité

Risques et solutions

  1. Les bandes de Brin, le RSI et le CCI peuvent générer des signaux erronés, ce qui entraîne des pertes de trading. Les paramètres peuvent être assouplis de manière appropriée, ou d’autres indicateurs peuvent être ajoutés pour vérifier.
  2. L’indicateur CCI est moins adapté à la courbure et peut être remplacé par un indicateur de moyenne ou de fluctuation.
  3. L’instruction de négociation est limitée à un stop loss et ne contient pas de stop. Un stop mobile peut être ajouté pour bloquer une partie des bénéfices.

Direction d’optimisation

  1. Il est possible de tester plus de combinaisons de paramètres pour trouver les meilleurs.
  2. L’ajout d’algorithmes d’apprentissage automatique pour optimiser les paramètres en temps réel;
  3. Il a ajouté: “Nous avons besoin d’une stratégie de contention accrue et de profits ciblés.
  4. La fiabilité du signal est évaluée en combinant plusieurs indicateurs, tels que MACD, KD, etc.

Résumer

Cette stratégie prend en compte l’état du marché à court, moyen et long terme. Elle utilise les signaux croisés des trois indicateurs Brin, RSI et CCI pour déterminer le moment du retournement du marché. Elle est une stratégie de suivi de retournement plus robuste.

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

//@version=5
strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true)
length = 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, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

//RSI
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

//cci
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, "CCI", color=#2962FF)
band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(0, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(cci, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)


longCBB= close < lower
shortCBB = close>upper
longBRSI = rsi < 33
shortBRSI = rsi > 70
longcci = cci < -215
shortcci = cci > 250

strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci)
strategy.exit("Exit ", profit = 600)
strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci)
strategy.exit("Exit ", profit = 600)