이동 평균 백분율 반전 전략


생성 날짜: 2023-09-14 14:53:53 마지막으로 수정됨: 2023-09-14 14:53:53
복사: 0 클릭수: 605
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

전략 원칙

이동 평균 비율 역전 전략은 가격과 이동 평균의 비율 차이를 계산하여 매매 시기를 판단한다. 가격과 이동 평균의 차이가 일정 비율에 도달했을 때 거래 신호를 낸다.

특히, 전략의 거래 논리는 다음과 같습니다.

  1. 가격과 길이 N의 이동 평균의 차이를 계산합니다.
  2. 이 차이는 가격으로 나누는 비율로 변환됩니다.
  3. 백분율 차이가 기본 상한 (예: 5%) 보다 크면 공백을 설정합니다.
  4. % 차이는 기본 하위값 (예: - 3%) 보다 작을 때, 더 많이 하세요.
  5. 선택적으로 반전 신호, 즉, 더 많은 반전 공백, 공백 반전 더 많은

만약 N이 14을 다면, 상한은 5%로, 하한은 -3%로 설정하면:

  • 14일 이동 평균보다 5% 높을 때 하락
  • 14일 이동 평균보다 가격이 3% 낮을 때 더 많이 하세요.

N, 상하의 한계 변수를 조정하여 전략의 민감도를 조절할 수 있다.

전략적 이점

  • 가격의 절대적인 값에 영향을 받지 않도록 백분율을 사용하십시오.
  • 시장에 따라 변수를 조정할 수 있으며, 다른 주기에도 적용됩니다.
  • BREAK 전략은 트렌드 전환을 더 빨리 잡을 수 있습니다.

전략적 위험

  • % 차이는 추세 방향을 결정하지 못합니다.
  • 잘못된 신호를 발산할 수 있고, 필터링이 필요합니다.
  • 이동 평균이 뒤떨어지고, 전환을 잡을 수 없습니다.

요약하다

이동 평균 비율 전략은 가격과 이동 평균의 비율 차이를 계산하여 매매 지점을 판단하고, BREAK 전략을 적용하여 트렌드의 전환점을 포착합니다. 파라미터를 조정함으로써 다양한 시장 환경에 적응 할 수 있습니다. 그러나 약간의 지연과 잘못된 정보의 위험이 있으며, 최적화 필터가 필요합니다.

전략 소스 코드
/*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")