Suivre la stratégie basée sur la tendance de la vague et la tendance de la CMF

Auteur:ChaoZhang est là., Date: 2023-11-16 16h38:03
Les étiquettes:

img

Résumé

Cette stratégie combine l'indicateur WaveTrend et l'indicateur Chaikin Money Flow (CMF) pour identifier la direction de la tendance et suivre les tendances.

La logique de la stratégie

L'indicateur WaveTrend peut identifier efficacement la direction de tendance des prix. Il se compose de la ligne médiane du canal, de la moyenne du canal et de l'indice du canal. La ligne médiane du canal est une moyenne mobile exponentielle du prix, reflétant la tendance du prix.

L'indicateur CMF peut juger de l'afflux et de la sortie de fonds et confirmer les tendances. Cet indicateur est basé sur la ligne d'accumulation/distribution ajustée par volume, reflétant la comparaison du pouvoir d'achat et de vente. Une valeur autour de 0 indique un équilibre entre l'afflux et la sortie de fonds.

Cette stratégie s'exécute sur une période de 15 minutes. Elle utilise d'abord l'indicateur WaveTrend pour déterminer la direction de la tendance des prix, puis utilise l'indicateur CMF pour confirmer, afin de suivre les tendances. Plus précisément, lorsque l'indice du canal WaveTrend est inférieur à -60 et que le CMF est inférieur à -0,2, elle va long. Lorsque l'indice du canal WaveTrend est supérieur à 60 et que le CMF est supérieur à 0,2, elle va court. Les conditions de sortie sont principalement basées sur l'indicateur CMF - elle ferme la position longue lorsque le CMF est supérieur à 0,18, et ferme la position courte lorsque le CMF est inférieur à -0,18.

Analyse des avantages

  1. L'indicateur WaveTrend peut déterminer efficacement la direction de la tendance des prix.
  2. L'indicateur CMF peut confirmer l'orientation de la tendance et éviter les mauvaises transactions.
  3. La combinaison de WaveTrend et CMF permet d'obtenir une tendance à très court terme.
  4. Le délai de 15 minutes le rend plus approprié pour les transactions à court terme.

Analyse des risques

  1. WaveTrend peut générer des signaux erronés lors de la consolidation.
  2. Le CMF peut être en retard et manquer les points tournants de la tendance.
  3. La négociation sur une seule période comporte des risques plus élevés, devrait étendre la période de détention.
  4. Manque de stratégie de stop loss, incapable de contrôler une seule perte.

Les solutions:

  1. Ajouter d'autres indicateurs de confirmation pour éviter les signaux erronés.
  2. Ajustez les paramètres CMF pour une sensibilité plus élevée.
  3. Élargir la période de détention pour réduire les risques sur une seule période.
  4. Ajoutez un stop-loss en mouvement, un stop-breakeven, etc. pour contrôler les pertes.

Optimisation

  1. Ajoutez le dimensionnement des positions pour mieux suivre la tendance.
  2. Ajouter une stratégie de stop loss pour limiter les pertes uniques.
  3. Ajoutez des indicateurs comme la stochastique pour éviter les erreurs d'un seul indicateur.
  4. Testez différentes périodes de rétention pour trouver l'optimum.
  5. Optimisez les paramètres de la CMF pour trouver la meilleure combinaison.

Résumé

Cette stratégie utilise WaveTrend pour déterminer la tendance et CMF pour confirmer, pour le suivi de tendance à très court terme. Ses avantages résident dans une combinaison raisonnable d'indicateurs et un suivi de tendance efficace, avec un délai de 15 minutes le rendant approprié pour le trading à court terme. Mais il existe des risques tels que des signaux inexacts et une période de détention trop courte.


/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)

//Chaikin Money Flow

len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")

trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p  = if p
    50*cmf+50
else
    cmf
b = p ? 50 : 0


//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)
// 


longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
 
    strategy.entry("My Long Entry Id", strategy.long)
    
 
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
 
    strategy.entry("My Short Entry Id", strategy.short)
    
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
    
    
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))

Plus de