
Основная идея этой стратегии заключается в том, чтобы идентифицировать рыночные тенденции в сочетании с показателями средней линии Кама и показателями средней линии Кама, чтобы обеспечить отслеживание тенденций. Когда средняя линия Кама и средняя линия имеют золотой пересечение, оценивайте как входящий в восходящий тренд и делайте больше; когда средняя линия Кама и средняя линия имеют мертвый пересечение, оценивайте как входящий в нисходящий тренд и делайте нуль.
Общая идея этой стратегии ясна, использование кармических средних и средних показателей золотого креста и креста смерти для определения и отслеживания тенденций, сильная способность к контролю за отступлением, лучший эффект может быть получен с помощью корректировки и оптимизации параметров. Однако есть определенная возможность для улучшения, если добавить больше проверяемых показателей и модулей сдерживания убытков, можно еще больше повысить стабильность и доходность стратегии.
/*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)