L’idée centrale de cette stratégie est de combiner l’indicateur de la ligne moyenne de Kama et l’indicateur de la ligne moyenne pour identifier la tendance du marché et réaliser un suivi de la tendance. Lorsque la ligne moyenne de Kama et la ligne moyenne se croisent en or, jugez comme entrant dans une tendance à la hausse et faites plus; lorsque la ligne moyenne de Kama et la ligne moyenne se croisent en mort, jugez comme entrant dans une tendance à la baisse et faites zéro.
L’idée générale de cette stratégie est claire, l’utilisation de la moyenne karmique et de l’indicateur de la moyenne karmique de la croix d’or et de la croix de mort pour juger et suivre les tendances, la capacité de contrôle de rétraction est forte, et les meilleurs résultats peuvent être obtenus par l’ajustement et l’optimisation des paramètres. Cependant, il y a une certaine marge d’amélioration, la stabilité et la capacité de rendement de la stratégie peuvent être encore améliorées si plus d’indicateurs de vérification et de modules de stop-loss sont ajoutés.
/*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)