이중 이동평균선 구간 돌파 전략 기반


생성 날짜: 2023-12-20 13:59:38 마지막으로 수정됨: 2023-12-20 13:59:38
복사: 0 클릭수: 716
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

이중 이동평균선 구간 돌파 전략 기반

개요

이 전략은 다른 주기들의 평균선을 계산하여 가격의 핵심 평균선을 돌파하는 것을 판단하여 낮은 위험 트렌드 추적을 가능하게 한다.

전략 원칙

10일 평균선에서 200일 평균선을 통과하고, 20일 평균선에서 50일 평균선을 통과하면, 더 많이 한다. 10일 평균선에서 200일 평균선을 통과하고, 20일 평균선에서 50일 평균선을 통과하면, 공백을 만든다. 여기서 이중 평균선으로 판단하면, 가짜 돌파구를 효과적으로 필터링할 수 있다.

전략은 먼저 10일, 20일, 50일, 200일 4개의 다른 주기들의 지수 이동 평균 (EMA) 을 계산한다. 그 중 10일선은 단기 트렌드를, 20일선은 중기 트렌드를, 50일선은 중기 트렌드를, 200일선은 장기 트렌드를 나타낸다. 단기 트렌드 라인 상에서 가로질러나 내려가면 가격이 큰 상향 또는 하향 돌파구가 발생할 수 있음을 나타낸다. 그러나 단지 한 개의 라인 평균의 돌파구에 의존하면 가짜 돌파구가 발생할 수 있다. 그래서 전략은 이중 라인 평균을 사용한다. 즉, 10일선과 200일선은 단기 트렌드 관계를 판단하는 첫 번째 통로이며, 20일선과 50일선은 중기 트렌드 관계를 판단하는 두 번째 통로이다.

이중 일률적인 필터링을 통해 가짜 돌파의 확률을 효과적으로 줄일 수 있으며, 생성된 거래 신호를 더 신뢰할 수 있습니다.

전략적 이점

  1. 이중평평선 판단을 사용하여, 가짜 돌파구를 효과적으로 필터링하고, 신호를 더 신뢰할 수 있다.
  2. 더 많은 시간 주기를 참여하고, 판단 과정이 더 포괄적이고 신중합니다.
  3. 간단하고 이해하기 쉽고 사용할 수 있는 파라미터 설정

전략적 위험

  1. 트렌드를 따라갈 수 있지만, 역전 기회를 잡지 못하고 있습니다.
  2. 트렌드가 변할 때, 더 큰 손실이 발생할 수 있습니다.
  3. 더 긴 역사 데이터의 뒷받침이 필요하며, 새로운 주식이나 데이터가 부족할 경우 효과가 좋지 않을 수 있습니다.

적절한 완화를 통해 평균선 돌파의 크기를 개선하거나 거래량 확인과 같은 다른 지표를 추가하여 최적화 할 수 있습니다.

전략 최적화 방향

  1. 거래량을 증가시켜 확인한다. 거래량은 가격의 돌파구를 검증할 수 있고, 낮은 양의 가짜 돌파구 아래 입시를 방지한다.
  2. MACD, KDJ 등과 같은 다른 지표와 결합하여 보조한다. 더 많은 지표는 시스템 안정성을 향상시킬 수 있다.
  3. 자동 최적화 매개 변수. 유전 알고리즘을 통해 최적화 10일, 20일 등 평균선 매개 변수 설정을 통해 다양한 시장 환경에 적응한다.

요약하자면, 이 전략은 전체적으로 쌍평균선으로 이루어져 있으며, 변수 최적화, 거래량 및 기타 지표가 보조되어 안정적인 트렌드 추적 시스템을 효과적으로 구축 할 수 있습니다.

요약하다

이 전략은 전반적으로 간단하고 실용적인 트렌드 추적 전략이다. 이중 평균선을 주요 거래 판단 근거로 사용하며, 이중 필터링을 통해 가짜 돌파의 확률을 줄이고, 생성 된 신호는 더 신뢰할 수 있다. 동시에, 파라미터를 설정하는 것은 간단하고 사용하기 쉽습니다.

전략 소스 코드
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Advancing Our Basic Strategy", overlay=true)

ema10 = ema(close, 10)
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

long = ema10 > ema200 and ema20 > ema50
short = ema10 < ema200 and ema20 < ema50
longcondition = long and long[10] and not long[11]
shortcondition = short and short[10] and not short[11]

closelong = ema10 < ema200 or ema20 < ema50 and not long[11]
closeshort = ema10 > ema200 or ema20 > ema50 and not short[11]

plot(ema10, title="10", color=green, linewidth=2)
plot(ema20, title="20", color=red, linewidth=3)
plot(ema50, title="50", color=purple, linewidth=2)
plot(ema200, title="200", color=blue, linewidth=3)

testPeriodStart = timestamp(2018,8,1,0,0)
testPeriodStop = timestamp(2038,8,30,0,0)

if time >= testPeriodStart and time <= testPeriodStop
    strategy.entry("Long", strategy.long, 1, when=longcondition)
    strategy.entry("Short", strategy.short, 1, when=shortcondition)
    

strategy.close("Long", when = closelong)
strategy.close("Short", when = closeshort)