이동평균에 기초한 전략을 따르는 경향

저자:차오장, 날짜: 2023-11-27 15:57:15
태그:

img

전반적인 설명

이것은 이동 평균에 기반한 트렌드를 따르는 전략입니다. 트렌드 방향을 결정하기 위해 이치모쿠 클라우드 지표를 사용하여 200일 이동 평균과 결합하여 신호를 필터하여 트렌드를 추적합니다.

전략 원칙

이 전략은 주로 트렌드 방향을 판단하기 위해 이치모쿠 클라우드의 전환선과 기본선을 사용합니다. 전환선은 9일 중간 가격 평균이며 기본선은 26일 중간 가격 평균입니다. 전환선이 기본선 위에 넘어가면 구매 신호가 생성되며 밑에 넘어가면 판매 신호가 생성됩니다.

이 전략은 또한 200일 이동 평균을 사용하여 신호를 필터합니다. 폐쇄 가격이 200일 라인 이상일 때만 구매 신호가 발생합니다. 이것은 대부분의 잘못된 신호를 필터합니다.

출구 쪽에서는 전환선을 기본선 아래로 가로 지르는 것을 종료 신호로 사용합니다.

이점 분석

이 전략은 트렌드 판단 지표 Ichimoku Cloud와 장기 트렌드 필터링 지표 200일 라인을 결합하여 트렌드를 효과적으로 추적하고 대부분의 잘못된 신호를 필터링 할 수 있습니다. 중위 가격 평균을 사용하면 이동 평균에 대한 가격 변동의 영향을 줄입니다.

이동 평균만을 사용하는 것과 비교하면 이 전략은 트렌드 전환점을 더 잘 파악하고 적시에 위치를 조정할 수 있습니다. 이것이 가장 큰 강점입니다.

위험 분석

이 전략은 주로 이치모쿠 클라우드에 의존하여 트렌드 방향을 결정하는데, 이는 또한 잘못된 신호를 생성할 수 있다. 판단이 정확하지 않으면 전략은 손실로 이어질 수 있다.

또한, 잘못된 매개 변수 설정은 또한 나쁜 전략 성능으로 이어질 수 있습니다. 변환 라인 매개 변수가 너무 짧으면 잘못된 신호가 쉽게 형성됩니다. 기본 라인 매개 변수가 너무 길다면 추적 효과가 악화됩니다. 균형을 위해 매개 변수 조정이 필요합니다.

최적화 방향

신호 품질을 향상시키기 위해 다른 지표를 통합하는 것을 고려하십시오. 예를 들어 KDJ 지표로 과잉 구매 / 과잉 판매 영역에서 신호를 필터하십시오. 또는 ATR 지표를 사용하여 스톱 로스를 설정하십시오.

매개 변수 측면에서는 더 민감한 거래 신호를 위해 변환 라인 매개 변수를 5 또는 7 일로 조정하는 것과 같은 더 많은 조합을 테스트하십시오. 또한 균형 추적을 위해 기본 라인 매개 변수를 약 20 일로 수정하여 테스트하십시오.

또한, 야생 변동의 영향을 피하기 위해 특정 변동성 환경에서 전략을 비활성화하는 것을 고려하십시오.

결론

이 전략은 트렌드 판단과 중장기 트렌드를 효과적으로 추적할 수 있는 장기적 필터링 지표의 장점을 통합한다. 한편, 매개 변수 설정과 위험 관리 조치는 또한 잘못된 신호와 변동의 영향을 줄이기 위해 지속적인 최적화가 필요하다. 전반적으로, 이 전략은 실질적인 거래에 적합한 성과와 실용적인 가치를 가지고 있다.


/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="TK Cross > EMA200 Strat",  overlay=true)

ema200 = ema(close, 200)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3)
plot(baseLine, color=#991515, title="Base Line", linewidth=3)
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

plot(ema200, color=purple, linewidth=4,title='ema200')
strategy.initial_capital = 50000

strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200)
strategy.close('tkcross', when=conversionLine<baseLine)


start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01")
increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" )
maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10")
sus = input(true, "Show Up Trending Parabolic Sar")
sds = input(true, "Show Down Trending Parabolic Sar")
disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2")
//"------Step Setting Definition------"
//"A higher step moves SAR closer to the price action, which makes a reversal more likely."
//"The indicator will reverse too often if the step is set too high."

//"------Maximum Step Definition-----")
//"The sensitivity of the indicator can also be adjusted using the Maximum Step."
//"While the Maximum Step can influence sensitivity, the Step carries more weight"
//"because it sets the incremental rate-of-increase as the trend develops"

startCalc = start * .01
incrementCalc = increment * .01
maximumCalc = maximum * .10

sarUp = sar(startCalc, incrementCalc, maximumCalc)
sarDown = sar(startCalc, incrementCalc, maximumCalc)

colUp = close >= sarDown ? lime : na
colDown = close <= sarUp ? red : na

plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp)
plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)





더 많은