카마 및 이동 평균 기반 트렌드 전략

저자:차오장, 날짜: 2024-02-06 09:53:22
태그:

img

전반적인 설명

이 전략의 핵심 아이디어는 카마 이동 평균과 이동 평균 지표를 결합하여 트렌드 추세를 달성하여 시장 트렌드를 식별하는 것입니다. 카마 이동 평균과 이동 평균이 황금색 십자가를 가지고있을 때 상승 추세가 시작되어 긴 지위가 결정됩니다. 카마 이동 평균과 이동 평균이 죽음의 십자가를 가지고있을 때 하락 추세가 시작되어 짧은 지위가 결정됩니다.

전략 논리

  1. 가마 이동 평균을 계산하십시오. 가마 이동 평균은 시장 소음에 더 민감하고 가격 추세를 결정하는 트렌드를 따르는 지표입니다.

  2. 이동평균을 계산합니다. 두 개의 이동평균이 계산됩니다. 하나는 더 빠른 이중 지수 이동평균이고 다른 하나는 정상적인 가중화 이동평균입니다.

  3. 빠른 선이 아래쪽에서 느린 선을 통과하면 길게 이동합니다. 빠른 선이 위에서 느린 선을 통과하면 짧게 이동합니다. 따라서 트렌드 판단과 추적이 완료됩니다.

  4. 포지션을 취한 후, 가격이 카마 라인을 넘어서면 출입 후 트렌드를 달성합니다.

장점

  1. 이 전략은 카마 이동 평균과 이동 평균 지표를 결합하여 시장 트렌드에 대해 비교적 정확한 판단을 내리고 강력한 마감 통제 능력으로 트렌드를 따라가는 것을 달성합니다.

  2. 카마 이동 평균은 시장 소음에 더 민감하며 트렌드 반전 지점을 사전에 감지 할 수 있습니다.

  3. 이동 평균 조합 판단은 명확하고 이해하기 쉽습니다.

  4. 이 전략은 큰 매개 변수 최적화 공간을 가지고 있으며 매개 변수들은 다양한 품종과 거래 도구에 맞게 조정되고 최적화 될 수 있습니다.

위험 분석

  1. 카마 이동 평균과 이동 평균 조합이 시장 트렌드를 판단 할 때 여전히 판단 오류가 발생할 수 있습니다. 확인하려면 다른 지표가 필요합니다.

  2. 스톱 로스 설정이 없는 경우 극한 시장 조건에서 더 큰 손실을 초래할 수 있습니다.

  3. 부적절 한 매개 변수 설정 은 또한 판단 에 오류 를 일으킬 수 있다. 매개 변수 는 서로 다른 품종 에 따라 조정 해야 한다.

최적화 제안

  1. 스톱 손실 설정에 ATR 표시기를 추가하는 것을 고려하십시오.

  2. 최적의 매개 변수를 찾기 위해 전략 수익에 다른 매개 변수 값의 영향을 테스트합니다.

  3. 판단의 정확성을 향상시키기 위해 오시레이터 지표와 같은 확인을 위한 다른 지표를 추가하는 것을 고려하십시오.

  4. 자동 매개 변수 최적화를 위한 매개 변수 자기 적응 및 동적 최적화 프레임워크를 구축합니다.

요약

이 전략의 전반적인 아이디어는 명확하다. 카마 이동 평균과 이동 평균 황금 십자가와 죽음의 십자가를 사용하여 강력한 드라우다운 제어 능력을 가진 트렌드를 결정하고 따라갈 수 있다. 매개 변수 조정 및 최적화를 통해 좋은 결과를 얻을 수 있다. 그러나 여전히 개선할 여지가 있다. 더 많은 확인 지표와 스톱 로스 모듈을 추가함으로써 전략의 안정성과 수익성이 더욱 향상될 수 있다.


/*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)



더 많은