파라볼리 SAR 모멘텀 역전 전략

저자:차오장, 날짜: 2023-12-22 14:45:12
태그:

img

전반적인 설명

이 전략은 스윙 트레이딩을 위해 모멘텀 추적 및 스톱 손실을 달성하기 위해 파라볼릭 SAR 슬라이딩 가치와 촛불 사이 크로스오버 작업을 활용합니다. 이 전략은 가격이 상승하고 떨어질 때 긴 및 짧은 포지션을 설정합니다. 가격이 역전되면 이러한 포지션을 닫아 손실을 멈추게합니다.

전략 논리

이 전략의 핵심은 현재 가격이 상승 추세인지 하락 추세인지 결정하기 위해 파라볼릭 SAR 지표에 의존합니다. 파라볼릭 SAR 지표가 촛불 밑에 있을 때, 가격은 현재 상승하고 있음을 의미합니다. 이 경우, 전략은 각각의 촛불의 종료 시 파라볼릭 SAR 값이 촛불의 최하위치를 넘어서는지 여부를 확인합니다. 그렇지 않으면 상승 추세가 계속되고 전략이 긴 포지션을 설정한다는 것을 의미합니다. 파라볼릭 SAR가 최하위치를 넘어서면 상승 추세가 하향을 뒤집는 것을 의미하며 전략은 손실을 중지하기 위해 긴 포지션을 닫을 것입니다.

반대로, 파라볼릭 SAR가 촛불 위에 있을 때, 가격은 현재 하락하고 있음을 의미합니다. 이 경우, 전략은 각각의 촛불의 종료 시 파라볼릭 SAR가 촛불의 최고치 아래로 넘어가는지 여부를 확인합니다. 그렇지 않으면, 짧은 포지션을 설정합니다. 파라볼릭 SAR가 최고치를 넘어가면, 하락 추세가 상향으로 뒤집어지고, 전략은 손실을 막기 위해 짧은 포지션을 닫을 것입니다.

이 논리를 통해 전략은 가격 트렌드를 따라 포지션을 설정하고 트렌드가 역전되는 첫 번째 시점에 스톱 로스를 실현하여 이익을 잠금 할 수 있습니다. 한편, 동력 지표로서의 파라볼릭 SAR는 트렌드가 역전되는지 더 정확하게 결정할 수 있으며, 스톱 로스를 더 정확하게 만듭니다.

장점

  1. 패러볼리 SAR는 추세와 역전 지점을 결정하는 첨단하고 정확한 기술 지표로 판단 정확도를 향상시킵니다.
  2. 모멘텀 추적 및 역전 스톱 로스 방법을 활용하면 트렌드 기회를 최대한 활용할 수 있습니다.
  3. 엄격한 스톱 로즈 규칙은 좋은 리스크 제어 능력을 의미합니다.
  4. 최적화된 매개 변수 때문에 이 전략은 GBP/JPY의 강력한 트렌드에 특히 적합합니다.

위험성

  1. 모든 단일 지표 전략과 마찬가지로 이 전략은 트렌드 및 반전에 대한 Parabolic SAR의 잘못된 판단으로 고통받을 수 있습니다. 유효하지 않은 신호는 불필요한 손실로 이어질 수 있습니다.
  2. 전략은 입구와 출구에 Parabolic SAR에 전적으로 의존합니다. 잘못된 매개 변수 설정 및 느슨한 스톱 손실 포인트는 위험을 효과적으로 제어하지 못할 수 있습니다.
  3. 어떤 단일 전략도 변화하는 시장 구조와 환경으로 인해 점차 악화 될 수 있습니다. 정기적인 백테스트와 최적화가 필요합니다.

견고성을 높이기 위한 방법에는 다음과 같은 것들이 포함됩니다: 충분한 엄격성을 갖기 위해 스톱 로스 포인트를 최적화; 확인을 위해 다른 지표를 결합; 변화하는 환경에 적응하기 위해 매개 변수를 조정; 다양한 제품에 최적의 매개 변수 세트를 선택 등.

최적화 방향

  1. 더 나은 성능을 위해 Parabolic SAR 매개 변수의 조합을 테스트하고 최적화합니다.
  2. MACD, KD와 같은 다른 지표를 결합하여 다중 지표 확인 시스템을 형성하여 신호 신뢰성을 향상시킵니다.
  3. 트레일 스톱 손실, 시간 스톱 손실, 가격 스톱 손실 등과 같은 다른 스톱 손실 방법의 테스트 효과
  4. 다양한 제품 특성에 기반한 매개 변수를 최적화하여 전략이 제품 전반에 걸쳐 좋은 수익을 얻을 수 있습니다.

결론

일반적으로, 이 파라볼릭 SAR 스윙 전략은 상당히 효과적인 단기 거래 전략이다. 트렌드 방향과 동력 변화를 결정하기 위해 파라볼릭 SAR의 장점을 활용하고, 스윙 거래 방법과 함께 상승과 하락 트렌드 동안 장기 및 단기 포지션을 반복적으로 설정한다. 엄격한 스톱 로스 메커니즘은 또한 이 전략에 괜찮은 리스크 제어 능력을 제공한다. 그러나 단일 지표 전략으로서, 파라볼릭 SAR의 무효성은 상당한 영향을 미칠 것이다. 따라서 이것은 약간의 힘과 잠재력을 가진 전략이지만, 또한 약간의 위험이 있다. 라이브 트레이딩에서 안정적인 초과 수익을 창출하기 위해 백테스트, 최적화 및 향상이 필요하다.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.05)
increment = input(0.075)
maximum = input(1)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)
	if barstate.isconfirmed and time_cond
		if uptrend
			strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
			strategy.cancel("ParLE")
		else
			strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
			strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

더 많은