La stratégie de négociation à plusieurs délais de la CCI Supertrend

Auteur:ChaoZhang est là., Date: 2024-01-18 15:09:33 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie intègre l'indicateur Supertrend et l'indice de canal de marchandises (CCI) pour réaliser un suivi de tendance sur plusieurs délais et générer des signaux de trading.

La logique de la stratégie

Indicateur CCI pour l'évolution à court terme

L'indicateur CCI peut identifier les scénarios de surachat et de survente. Un croisement ascendant de la ligne 0 est un signal haussier tandis qu'un descendant est un signal baissier. Cette stratégie utilise cette caractéristique pour déterminer la direction de la tendance à court terme.

cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)  
ML = input(0, "CCI Mid Line pivot")

Le code ci-dessus définit la période CCI et la position intermédiaire.

TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn  

Ce code vérifie si cci traverse au-dessus/en dessous de la ligne 0 pour mettre à jour la bande supérieure/inférieure de Supertrend.

Supertrend pour la tendance à moyen et long terme

L'indicateur Supertrend combine l'ATR avec le prix pour déterminer les tendances à moyen et long terme.

La supertendance est calculée comme suit:

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd)) 

où Facteur et Pd sont des paramètres réglables.

La variable tendance détermine la direction actuelle de la Supertendance:

Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)  

Intégrer le CCI et le Supertrend

En intégrant CCI et Supertrend, cette stratégie réalise un jugement de tendance sur plusieurs délais.

Lorsque les directions s'accordent, des signaux commerciaux plus fiables sont générés.

isLong = st_trend == 1 
isShort = st_trend == -1

Entrez lorsque les courts et moyens termes s'alignent, sortez lorsque les directions ne sont pas d'accord.

Les avantages

Jugement sur plusieurs périodes

Il intègre des indicateurs à court et à moyen terme pour des signaux plus fiables.

Paramètres personnalisables

Le facteur de supertrend et la période CCI peuvent être ajustés en fonction des conditions du marché.

Simples et clairs

Une logique simple et facile à comprendre, parfaite pour les débutants.

Large portée

Applicable aux actions, aux devises, aux cryptos par réglage de paramètres.

Risques et solutions

Le prix de la Whipsaw

Beaucoup de faux signaux peuvent se produire lorsque les prix fluctuent violemment.

Un retard dans les mouvements

Combinez les indicateurs de dynamique pour suivre les tendances en accélération.

Aucune perte

L'exposition au risque est calculée sur la base de l'exposition au risque.

Directions d'optimisation

Corrélation sur le marché

Ajustez les paramètres pour différents marchés.

Combinaison de l' élan

Combinez avec le MACD, KDJ, etc. pour capter les mouvements d'élan forts.

Apprentissage automatique

Utiliser l'IA et les méthodes d'ensemble pour optimiser les paramètres et les règles.

Conclusion

Cette stratégie combine avec succès Supertrend et CCI pour le suivi des tendances sur plusieurs délais. Logique simple, bon potentiel de récompense et personnalisabilité. Peut être améliorée par le biais de l'ajustement des paramètres, du stop loss et de l'apprentissage automatique pour devenir un système de trading solide.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author=Daveatt

StrategyName = "Best Supertrend CCI Strategy"
ShortStrategyName = "Best Supertrend CCI Strategy"

strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true )

//////////////////////////
//* COLOR CONSTANTS *//
//////////////////////////

AQUA = #00FFFFFF
BLUE = #0000FFFF
RED  = #FF0000FF
LIME = #00FF00FF
GRAY = #808080FF
DARKRED   = #8B0000FF
DARKGREEN = #006400FF
GOLD = #FFD700
WHITE = color.white

// Plots
GREEN_LIGHT     = color.new(color.green, 40)
RED_LIGHT       = color.new(color.red, 40) 
BLUE_LIGHT      = color.new(color.aqua, 40)
PURPLE_LIGHT    = color.new(color.purple, 40) 

source = input(close)

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// CCI /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
//UL = input(80, "Upper level")
//LL = input(20, "Lower Level")
ML = input(0, "CCI Mid Line pivot")

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////// SUPERTREND /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float)
Pd=input(3, title="[ST] PD", minval=1,maxval = 100)

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////// SUPERTREND DETECTION //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

f_supertrend(Factor, Pd) =>

    Up=hl2-(Factor*atr(Pd))
    Dn=hl2+(Factor*atr(Pd))
    
    TrendUp = 0.0
    TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
    TrendDown = 0.0
    TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
    Trend = 0.0
    Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
    Tsl = Trend==1? TrendUp: TrendDown

    [Trend, Tsl]

[st_trend, st_tsl] = f_supertrend(Factor, Pd)

// Plot the ST
linecolor = close >= st_tsl ? color.green : color.red
plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0)

isLong  = st_trend == 1
isShort = st_trend == -1

longClose   = isLong[1] and isShort
shortClose  = isShort[1] and isLong

strategy.entry("Long", 1, when=isLong)
strategy.close("Long", when=longClose )

strategy.entry("Short", 0,  when=isShort)
strategy.close("Short", when=shortClose )


Plus de