이중 이동 평균 범주 파업 전략

저자:차오장, 날짜: 2023-12-20 13:59:38
태그:

img

전반적인 설명

이 전략은 다른 시간 프레임에 걸쳐 이동 평균을 계산하여 트렌드 브레이크를 식별합니다. 그것은 낮은 위험 트렌드를 추적 할 수 있습니다.

전략 논리

10일 EMA가 200일 EMA를 넘고 20일 EMA가 50일 EMA를 넘을 때 장거리 이동. 10일 EMA가 200일 EMA를 넘고 20일 EMA가 50일 EMA를 넘을 때 단거리 이동. 이중 이동 평균 설계는 잘못된 브레이크오프를 효과적으로 필터링합니다.

이 전략은 먼저 10일, 20일, 50일 및 200일 기간에 걸쳐 4개의 기하급수적인 이동 평균 (EMA) 을 계산한다. 10일 EMA는 단기 트렌드, 20일 중간, 50일 중기 및 200일 장기 트렌드를 나타낸다. 짧은 EMA가 더 긴 EMA를 넘을 때, 잠재적인 트렌드 반전을 신호한다. 그러나 하나의 EMA 크로스오버를 사용하면 쉽게 잘못된 신호를 생성한다.

신뢰성을 향상시키기 위해 전략은 두 개의 필터링 계층을 적용합니다: 10/200 EMA 크로스 가이즈는 장기/단기 트렌드 변동, 20/50 EMA 크로스 가이즈는 중장기/중장기 변동입니다. 두 EMA 쌍이 같은 방향으로 정렬 될 때만 거래가 시작됩니다.

이중 EMA 필터링은 잘못된 신호를 크게 줄여 더 신뢰할 수 있는 거래 항목을 생성합니다.

장점

  1. 이중 EMA 필터링은 잘못된 신호를 크게 감소시킵니다.
  2. 여러 시간 프레임이 안정성을 제공합니다.
  3. 간단한 매개 변수는 사용을 용이하게 합니다.

위험성

  1. 강한 트렌드 추종, 하지만 역전을 놓치고
  2. 트렌드가 변할 때 잠재적으로 큰 스톱
  3. 부적절한 역사 단점 새로운/외국적 자산

개선 사항은 브레이크아웃 기준을 완화하고, 볼륨 확인을 추가하고, 매개 변수를 최적화하는 것입니다.

더 나은 기회

  1. 부피 확인을 추가합니다. 부피는 파업이 실제인지 낮은 활동인지 확인합니다.
  2. MACD, KDJ와 같은 추가 지표를 포함시켜 더 안정성을 제공합니다.
  3. 변화하는 시장에 대한 10/20일 EMA 기간과 같은 매개 변수를 최적화합니다.

요약하자면, 최적화, 부피 및 더 많은 지표로 보완 된 이중 이동 평균 핵심은 안정적인 트렌드 추적 시스템을 구축 할 수 있습니다.

결론

단순하지만 실용적인 트렌드 다음 전략. 이중 EMA 코어는 품질 신호를 위해 거짓 브레이크우트를 안정적으로 필터합니다. 쉬운 매개 변수는 또한 채택을 촉진합니다. 위험 관리 및 최적화에 대한 추가 개선은 성능을 향상시킬 수 있습니다. 전반적으로 단순함으로 뒷받침되는 접근 가능한 도입량 전략.


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

더 많은