이동평균 범위에 기반한 역전 거래 전략

저자:차오장, 날짜: 2024-01-25 14:16:28
태그:

img

전반적인 설명

이 전략은 이동 평균 범위 반전 (Moving Average Range Reversal) 이라고 불립니다. 이 전략은 서로 다른 시간 프레임의 이동 평균 사이의 교차를 계산하여 시장 반전 기회를 식별하고 적절한 장기/단기 포지션을 취합니다.

전략 논리

이 전략은 동시다발적으로 3개의 이동평균을 계산합니다.

  1. 빠른 MA (장): 최신 가격 변화를 반영합니다.
  2. 느린 MA (장도): 중장기 가격 동향을 반영합니다.
  3. 가장 느린 MA (slength): 장기 가격 경향을 반영합니다.

빠른 MA가 느린 MA를 넘을 때, 이는 단기적인 트렌드 반전으로 상승세를 나타냅니다. 빠른 MA가 느린 MA를 넘을 때, 그것은 단기적인 반전으로 하락세를 나타냅니다.

거짓 신호를 피하기 위해, 4번째 MA는 장기 필터 (tlength) 로 도입된다. 이 필터의 위쪽에서만 긴 신호가 고려된다. 이 필터의 아래쪽에서만 짧은 신호가 고려된다.

구체적인 거래 규칙은 다음과 같습니다.

  1. 빠른 MA가 느린 MA를 넘어서고 느린 MA가 가장 느린 MA (단기 상승) 을 넘어서고 가격이 장기 필터보다 높을 때, 길게 이동합니다. 빠른 MA가 느린 MA를 넘어서면 긴 포지션을 닫습니다.

  2. 빠른 MA가 느린 MA보다 낮을 때, 느린 MA가 가장 느린 MA (단기 하향) 보다 낮을 때, 가격이 장기 필터보다 낮을 때, 짧은 지점에 가십시오. 빠른 MA가 느린 MA보다 높을 때, 짧은 지점을 닫습니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 트렌드 변화를 더 정확하게 파악하고 잘못된 신호를 줄이기 위해 여러 시간 프레임을 이용합니다.
  2. 장기적 필터는 큰 트렌드 전환 전에 잘못된 트레이드를 피합니다.
  3. 간단하고 명확한 규칙, 이해하기 쉽고 자동화됩니다.
  4. 반전 전략은 수익과 이익의 긍정적 편차로부터 이익을 얻습니다.
  5. 좋은 백테스트 결과는 수익과 이윤 요인에 대한 시뮬레이션 라이브 거래입니다.

위험 분석

이 전략의 위험은 다음과 같습니다.

  1. MA 전략은 매개 변수에 민감합니다. 다른 매개 변수는 다른 결과를 가져옵니다.
  2. 반전 신호가 잘못 발사되면 손실이 발생할 수 있습니다.
  3. 길게 변하면 반복적인 반전으로 인한 수익이 무효가 될 수 있습니다.
  4. 가격이 역전되고 강세를 가속화할 수 있습니다.

해결책:

  1. 가장 좋은 조합을 찾기 위해 매개 변수를 최적화하세요.
  2. 거짓 신호를 피하기 위해 신호 확인 시간을 늘려
  3. 손실을 조절할 수 있는 스톱 로스 범위를 확장합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 최적 값을 찾기 위해 더 많은 매개 변수 집합을 테스트합니다.
  2. 소음량 조건에서 잘못된 신호를 피하기 위해 볼륨 필터를 추가합니다.
  3. 입력 신호를 확인하기 위해 다른 지표를 포함합니다.
  4. 더 나은 출구 통제를 위해 스톱 손실의 동적 조절을 구현하십시오.
  5. 보다 엄격한 위험 통제를 위해 위험 관리 최적화

결론

이 전략은 MA 크로스오버에 의해 식별된 시장 역전을 거래하며, 장기 필터로부터 방향 지침을 제공합니다. 전환점에서의 기회를 효과적으로 포착합니다. 긍정적 인 백테스트 결과는 실시간 응용에 대한 좋은 수익성을 보여줍니다. 매개 변수, 신호 필터링, 스톱 로스 등에 대한 추가 최적화는 전략을 실용적으로 사용하기 위해 더 견고하게 만들 수 있습니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("Moving Average Trap", overlay=true)

flenght = input.int(title="Fast MA Period", minval=1, maxval=2000, defval=3)
llenght = input.int(title="Slower MA Period", minval=1, maxval=2000, defval=5)
sslenght = input.int(title="Slowest MA Period", minval=1, maxval=2000, defval=8)
tlenght = input.int(title="Trend Filter MA Period", minval=1, maxval=2000, defval=200)

ssma = ta.sma(close, sslenght)
fma = ta.sma(close, flenght)
sma = ta.sma(close, llenght)
tma = ta.sma(close, tlenght)

plot(fma, color=color.red)
plot(sma, color=color.white)
plot(ssma, color=color.green)
plot(tma, color=color.maroon, linewidth=2)

short =  (fma > sma and sma > ssma) and close < tma
long = (fma < sma and sma < ssma) and close > tma
closeshort = fma < sma and sma < ssma
closelong = fma > sma and sma > ssma

if long
	strategy.entry("long", strategy.long)
if closelong
	strategy.close("long")
if short
	strategy.entry("short", strategy.short)
if closeshort
	strategy.close("short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

더 많은