이동 평균 비율 역전 전략

저자:차오장, 날짜: 2023-09-14 14:53:53
태그:

전략 논리

이동 평균 비율 역전 전략은 가격과 이동 평균의 비율 차이를 계산하여 거래 신호를 생성합니다.

거래는 가격과 MA 사이의 비율 격차가 미리 설정된 수준에 도달하면 수행됩니다.

구체적으로, 논리는 다음과 같습니다.

  1. 가격과 N 기간 MA 사이의 절대적인 차이를 계산합니다.
  2. 이차를 비율로 변환, 즉 가격으로 나누기
  3. % 격차가 상단값을 초과할 때 (예를 들어 5%)
  4. % 격차가 낮은 기준 이하로 떨어지면 긴 경로 (예: -3%)
  5. 선택적으로 반전 신호 (롱스는 쇼트, 쇼트는 롱스)

예를 들어 N=14의 경우, 상한값=5%, 하한값=-3%:

  • 가격이 14일 마이너스 마이너스보다 5% 이상 높으면 쇼트
  • 코스가 14일 MA보다 <3% 낮을 때 긴 코스로 전환합니다.

매개 변수 N, 상부/하부 제한은 민감도를 조정할 수 있습니다.

장점

  • 비율 격차가 가격 수준 변화의 원인
  • 조정 가능한 매개 변수는 다른 주기에 적합합니다.
  • BREAK 전략은 트렌드 전환점을 조기에 파악하는 것을 목표로합니다.

위험성

  • 비율 격차만으로는 트렌드 방향을 확인 할 수 없습니다.
  • 잘못된 신호에 취약하고 추가 필터가 필요합니다.
  • MAs가 뒤쳐져서, 즉각적인 회귀를 잡지 못할 수도 있습니다.

요약

MA 비율 전략은 BREAK 접근법으로 잠재적인 전환점을 식별하기 위해 가격과 MA 사이의 비율 격차를 사용합니다. 조정 가능한 매개 변수는 다양한 시장 조건에 적응 할 수 있지만 지연 및 윙사우는 완화해야하는 위험입니다.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/07/2018
// Percent difference between price and MA
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent difference between price and MA Backtest")
Length = input(14, minval=1)
SellZone = input(0.54, minval=0.01, step = 0.01)
BuyZone = input(0.03, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xSMA = sma(close, Length)
nRes = abs(close - xSMA) * 100 / close
pos = iff(nRes < BuyZone, 1,
       iff(nRes > SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="PD MA")

더 많은