Kama et tendance basée sur la moyenne mobile suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-02-06 09:53:22 Je suis désolé
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est d'identifier les tendances du marché en combinant les indicateurs de moyenne mobile Kama et de moyenne mobile pour atteindre le suivi de la tendance.

La logique de la stratégie

  1. La moyenne mobile Kama est un indicateur de tendance qui est plus sensible au bruit du marché et peut être utilisé pour déterminer les tendances des prix.

  2. Calculez les moyennes mobiles. Deux moyennes mobiles sont calculées ici, l'une est une moyenne mobile exponentielle double plus rapide, l'autre est une moyenne mobile pondérée normale.

  3. Lorsque la ligne rapide traverse la ligne lente depuis le bas, allez long. Lorsque la ligne rapide traverse la ligne lente depuis le haut, allez court. Ainsi le jugement de la tendance et le suivi sont terminés.

  4. Après avoir pris des positions, sortez lorsque le prix franchit la ligne Kama pour atteindre la tendance après la sortie.

Les avantages

  1. La stratégie combine les indicateurs de la moyenne mobile Kama et de la moyenne mobile pour faire des jugements relativement précis sur les tendances du marché et atteindre un suivi de la tendance avec une forte capacité de contrôle du prélèvement.

  2. La moyenne mobile Kama est plus sensible au bruit du marché et peut détecter les points d'inversion de tendance à l'avance.

  3. Le jugement de la combinaison des moyennes mobiles est clair et facile à comprendre.

  4. La stratégie dispose d'un grand espace d'optimisation des paramètres et les paramètres peuvent être ajustés et optimisés pour différentes variétés et instruments de trading.

Analyse des risques

  1. Il existe encore une possibilité d'erreur de jugement lorsque Kama moyenne mobile et la combinaison moyenne mobile jugent la tendance du marché.

  2. L'absence de réglage de stop loss peut entraîner des pertes plus importantes dans des conditions de marché extrêmes.

  3. Les paramètres doivent être ajustés en fonction des différentes variétés.

Suggestions d'optimisation

  1. Considérez l'ajout d'un indicateur ATR pour le réglage du stop loss.

  2. Testez l'impact des différentes valeurs de paramètres sur le rendement de la stratégie pour trouver les paramètres optimaux.

  3. Considérez l'ajout d'autres indicateurs de vérification, tels que l'indicateur d'oscillateur, pour améliorer la précision du jugement.

  4. Construire un cadre d'optimisation dynamique et auto-adaptatif pour l'optimisation automatique des paramètres.

Résumé

L'idée générale de cette stratégie est claire, en utilisant Kama moyenne mobile et moyenne mobile croix d'or et croix de la mort pour déterminer et suivre les tendances avec une forte capacité de contrôle de la baisse. Grâce au réglage et à l'optimisation des paramètres, de bons résultats peuvent être obtenus. Mais il y a encore place à l'amélioration. En ajoutant plus d'indicateurs de vérification et de modules de stop-loss, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//synapticex.com
kamaPeriod = input(8, minval=1) 
ROCLength=input(4, minval=1) 

kama(length)=>
    volatility = sum(abs(close-close[1]), length)
    change = abs(close-close[length-1])
    er = iff(volatility != 0, change/volatility, 0)
    sc = pow((er*(0.666666-0.064516))+0.064516, 2)
    k = nz(k[1])+(sc*(hl2-nz(k[1])))
    

n=input(title="period",defval=7)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?lime:red
ma=plot(n1,color=c, linewidth = 3)
plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5)
    
kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod))

plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line)


strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true)

buyEntry =  n1 > n2
sellEntry = close < kamaEntry and n1 < n2 

buyExit = close < kamaEntry and n1 < n2
sellExit = n1 > n2 
if (buyEntry)
    strategy.entry("KAMAL", strategy.long, comment="KAMAL")
else
    strategy.close("KAMAL", when=buyExit)

if (sellEntry)
    strategy.entry("KAMAS", strategy.short, comment="KAMAS")
else
    strategy.close("KAMAS", when = sellExit)



Plus de