Stratégie d'achat de retracement croisé CCI+Double Moving Average

CCI MA
Date de création: 2024-05-24 17:45:49 Dernière modification: 2024-05-24 17:45:49
Copier: 3 Nombre de clics: 680
1
Suivre
1617
Abonnés

Stratégie d’achat de retracement croisé CCI+Double Moving Average

Aperçu

La stratégie CCI+ est une stratégie de négociation quantitative qui utilise à la fois l’indicateur de progression ((CCI) et le signal de croisement bi-équilibré. La stratégie consiste à attendre que le prix revienne près de la ligne rapide et à acheter lorsque l’indicateur CCI est en survente, et à vendre lorsque l’indicateur CCI est en survente lorsque le prix rebondit près de la ligne rapide et à la fois lorsque l’indicateur CCI est en survente.

Principe de stratégie

  1. Calculer l’indicateur CCI, calculer la valeur CCI actuelle en fonction des paramètres CCI définis par l’utilisateur (données sources, période, type de moyenne mobile, seuil de survente).
  2. Pour juger si le CCI est trop acheté ou trop vendu, la couleur de fond est rouge lorsque le CCI est supérieur au seuil de survente et verte lorsque le seuil de survente est inférieur au seuil de survente.
  3. Calculer la moyenne rapide, en fonction des paramètres de la moyenne rapide définis par l’utilisateur (source, période, type de moyenne mobile) et calculer la valeur de la moyenne rapide actuelle.
  4. Pour déterminer le forfait doré, le signal de tête vide est dessiné lorsque le forfait doré se forme en traversant le forfait lent sur la ligne rapide et le signal de tête vide en traversant le forfait lent sous la ligne rapide.
  5. Pour prendre des décisions commerciales:
    • Entrée en position multiple: lorsque la ligne rapide est au-dessus de la ligne lente et que le prix de clôture de la ligne K précédente est au-dessous de la ligne rapide, la ligne K actuelle est la ligne négative et que le CCI est inférieur à la barre de vente au-dessus de la valeur
    • Entrée en position vide: lorsque la ligne rapide est en dessous de la ligne lente et que le prix de clôture de la ligne K précédente est au-dessus de la ligne rapide, la ligne K actuelle est négative et que la CCI est supérieure à la marge de vente

Avantages stratégiques

  1. Suivi des tendances: les signaux de croisement de deux lignes sont utilisés pour déterminer la direction des tendances et mieux suivre les tendances du marché.
  2. Entrée en contre-courant: après l’établissement de la tendance, attendre que le prix recule pour acheter ou vendre, ce qui permet d’obtenir un prix d’entrée relativement avantageux et d’améliorer le rapport risque/bénéfice.
  3. Réduction des faux signaux: la combinaison de l’indicateur CCI avec le signal de croisement de la moyenne permet de réduire efficacement les faux signaux générés par un seul indicateur.
  4. Flexibilité des paramètres: L’utilisateur peut définir les paramètres CCI et de la moyenne en fonction de ses préférences pour optimiser la performance de la stratégie.

Risque stratégique

  1. Risque de choc des marchés: dans les marchés en choc, des fourchettes d’or fréquentes peuvent entraîner une stratégie qui génère plus de pertes.
  2. Risques paramétriques: des paramètres mal définis peuvent entraîner une mauvaise performance de la stratégie, nécessitant un retour d’expérience et une analyse approfondie de la combinaison optimale de paramètres dans différentes conditions de marché.
  3. Risque de tendance: lorsque la tendance du marché est inversée, la stratégie peut retarder la sortie et prendre un plus grand risque de retrait.

Orientation de l’optimisation de la stratégie

  1. Introduction de la gestion des positions, qui modifie dynamiquement les positions de chaque transaction en fonction de l’intensité et de la volatilité des tendances du marché actuel, afin de mieux contrôler les risques.
  2. Optimiser les conditions d’entrée, comme l’ajout d’indicateurs de volume de transactions ou d’autres indicateurs de jugement auxiliaires, pour améliorer la fiabilité du signal d’entrée.
  3. Optimiser les conditions de sortie, comme la mise en place d’un stop mobile ou d’un stop temporel, pour réduire les pertes maximales d’une seule transaction.
  4. Optimisation des paramètres pour les différents marchés et variétés afin d’améliorer l’adaptabilité et la stabilité des stratégies.

Résumer

Le CCI+ est une stratégie de trading quantitative qui combine les avantages du suivi de la tendance et de l’entrée en position inverse. En capturant la direction de la tendance et en utilisant l’indicateur CCI pour délimiter les zones de survente et de survente, tout en attendant que les prix se retirent et rebondissent pour obtenir un meilleur prix d’entrée, il est possible d’améliorer le potentiel de profit et le rapport bénéfice-risque de la stratégie.

Code source de la stratégie
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)


ma(source, length, type) =>
  type == "SMA" ? ta.sma(source[1], length) :
  type == "EMA" ? ta.ema(source[1], length) :
  type == "SMMA (RMA)" ? ta.rma(source[1], length) :
  type == "WMA" ? ta.wma(source[1], length) :
  type == "VWMA" ? ta.vwma(source[1], length) :
  na

//CCI settings
cci_coloring  = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length    = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type   = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce    = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))

bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")

//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")

fastma_type   = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color  = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")

slowma_type   = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color  = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")

bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)

// // strategy
// if bullish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)

// else if bearish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
    strategy.entry("Long", strategy.long)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
    //     label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)

if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
    strategy.entry("Short", strategy.short)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
    //     label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)