동적 PSAR 주식 변동 추적 전략

저자:차오장, 날짜: 2024-02-05 10:40:12
태그:

img

전반적인 설명

이 전략은 단순하고 효율적인 주식 변동 추적 및 자동 취득 / 중지 손실 전략을 Parabolic SAR 지표에 기초로 구현합니다. 그것은 동적으로 주식 가격의 상승 추세와 하락 추세를 추적하고 자동으로 설정 할 수 있습니다.

전략 원칙

이 전략은 주식 가격 변동의 트렌드 방향을 결정하기 위해 파라볼릭 SAR 지표를 사용합니다. PSAR 지표가 K 라인 아래에있을 때 상승 추세를 나타냅니다. PSAR 지표가 K 라인 위에있을 때 하락 추세를 나타냅니다. 전략은 트렌드 변화를 결정하기 위해 실시간으로 PSAR 값의 변화를 추적합니다.

상승 추세가 확인되면 전략은 다음 BAR의 PSAR 지점에서 손해를 멈추는 지점을 설정합니다. 하락 추세가 확인되면 전략은 다음 BAR의 PSAR 지점에서 수익을 취하는 지점을 설정합니다. 이것은 주가가 역전될 때 자동으로 수익을 취하고 손실을 멈추는 기능을 달성합니다.

동시에 전략은 PSAR 지표의 감수성을 조정하기 위해 시작값, 단계값 및 최대값과 같은 매개 변수를 내장하고 있으며, 이로 인해 수익/손실 중단 효과를 최적화합니다.

이점 분석

이 전략의 가장 큰 장점은 주식 변동 추적 및 자동 취득 / 중지 손실의 완전한 자동화를 실현한다는 것입니다. 이윤은 수동 거래의 시간과 에너지 비용을 크게 줄이는 시장 추세에 대한 수동 판단없이 실현 될 수 있습니다.

전통적인 스톱 로스/프로프트 취업 전략과 비교하면 이 전략의 스톱 로스/프로프트 취업 포인트는 변하며, 가격 변화와 기회를 더 빠르게 파악할 수 있습니다. 또한 잘못된 판단의 가능성을 줄이고 수익 잠재력을 증가시킵니다.

매개 변수 최적화 후, 이 전략은 주요 트렌드에서 지속적으로 수익을 얻을 수 있으며, 역전 시 자동으로 손실을 중지하여 원본을 보호할 수 있습니다.

위험 분석

이 전략의 가장 큰 위험은 PSAR 지표가 트렌드 방향을 잘못 판단할 가능성이 있다. 주가가 단기 조정과 변동을 겪을 때, PSAR 지표는 잘못된 신호를 줄 수 있다. 이 시점에서 판단의 정확성을 향상시키기 위해 PSAR의 매개 변수를 합리적으로 최적화하는 것이 필요하다.

또 다른 위험 지점은 수익/손실 중지 지점이 현재 가격에 너무 가깝다는 것입니다. 이것은 중단 손실 지점이 깨질 확률을 증가시킬 수 있으며, 원금에 더 큰 영향을 줄 수 있습니다. 이 시점에서 충분한 버퍼 공간을 보장하기 위해 수익/손실 중지 범위를 적절히 완화하십시오.

전략 최적화

이 전략의 최적화 잠재력은 주로 PSAR 지표 자체의 매개 변수를 조정하는 데 초점을 맞추고 있습니다. 다른 주식을 테스트하고 시작 값, 단계 값 및 최대 값의 설정을 최적화함으로써 PSAR 지표는 판단 정확성을 보장하면서 가격 변동에 더 민감 할 수 있습니다. 이것은 많은 백테스팅과 분석 작업을 필요로합니다.

또 다른 최적화 방향은 이윤/손실 중지 범위를 설정하는 것입니다. 다른 주식의 내일 변동 범위를 연구하고 이를 기반으로 합리적인 이윤/손실 비율 요구 사항을 설정해야합니다. 이것은 자본 손실의 가능성을 더욱 줄일 수 있습니다.

요약

이 전략은 완전 자동화 된 주식 추적 및 자동 취득 / 중지 손실 거래 전략을 실현하기 위해 파라볼릭 SAR 지표를 활용합니다. 가장 큰 장점은 수동 개입이 필요하지 않아 시간과 에너지 비용을 줄일 수 있다는 것입니다. 주요 위험은 매개 변수 최적화를 통해 감소 할 수있는 지표의 잘못된 판단에서 발생합니다. 일반적으로이 전략은 주식의 양적 거래에 효율적이고 신뢰할 수있는 솔루션을 제공합니다.


/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Swing Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
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
		if uptrend
			strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
			strategy.cancel("long")
		else
			strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
			strategy.cancel("short")
			
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)


더 많은