모멘텀 후속 포물선 정지-반전 전략


생성 날짜: 2023-12-22 14:45:12 마지막으로 수정됨: 2023-12-22 14:45:12
복사: 0 클릭수: 696
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

모멘텀 후속 포물선 정지-반전 전략

개요

이 전략은 낙선선 슬라이드 포인트 값 ((Parabolic SAR) 과 K선과 교차하여 동력을 추적하고 손실을 막는 스윙 거래 전략이다. 이 전략은 부진과 부진 상황에서 상장 및 상장 포지션을 구축하고, 가격이 반전될 때 이러한 포지션 스톱 손실을 평행한다.

전략 원칙

이 전략은 주로 패러볼릭 라인 지표 ((Parabolic SAR) 에 의존하여 현재 가격이 상승 추세 또는 하향 추세인지 판단한다. Parabolic SAR 지표가 K 라인 아래에 있을 때, 현재 가격 상승 상태임을 나타낸다. 이 때 전략은 K 라인 종료 시에 Parabolic SAR 값이 K 라인 최저 가격을 통과했는지 여부를 검사한다. 만약 상향 추세가 계속된다면, 전략은 다중 포지션을 구축한다.

이러한 작동 원리를 통해, 이 전략은 확인된 가격 트렌드 아래 순차적으로 포지션을 구축할 수 있으며, 첫 번째 시간에 상실을 멈추어 수익을 잠금 할 수 있다. 동시에, 동력 지표로서의 패러폴리 라인은 트렌드가 반전되는지 여부를 더 정확하게 판단할 수 있으며, 이는 상실을 더 정확하게 만든다.

전략적 이점

  1. 파란선으로 추세와 역점을 판단하는 것은 비교적 진보하고 정확한 기술 지표로 판단의 정확도를 높일 수 있습니다.
  2. 동력 추적 및 역 손실 중지 방식을 사용하여 가격 추세에 대한 기회를 최대한 활용합니다.
  3. 리버스 중지 규칙이 엄격하고, 위험 관리 능력이 강하다
  4. 이 전략의 매개 변수는 GBP/JPY에 적용하기 위해 최적화되었습니다. GBP/JPY는 강력한 추세를 보이고 있습니다.

전략적 위험

  1. 어떤 다른 단일 지표 전략과 마찬가지로, 이 전략은 낙선 선이 가격 추세와 역점을 잘못 판단하는 상황이 발생할 수 있습니다. 지표가 실패하면 불필요한 손실이 발생할 수 있습니다.
  2. 이 전략은 완전히 패러블 라인의 지시에 의존하여 작동하며, 지표 매개 변수가 잘못 설정되어 있고, 정지점이 너무 느슨하게 설정되면 위험을 효과적으로 제어 할 수 없습니다.
  3. 어떤 단일 전략도 시장 구조나 환경의 변화로 인해 점차적으로 실패할 수 있으며, 적절한 시기에 테스트 및 최적화 전략이 필요합니다.

전략의 강도를 높이는 방법은 다음과 같습니다. 스톱포인트 설정을 최적화하여 충분히 엄격하게; 다른 지표 판단과 결합하여 확인; 지표 매개 변수를 시장 환경 변화에 맞게 조정; 다른 품종에 따라 최적의 매개 변수 조합을 선택하십시오.

전략 최적화 방향

  1. 이 전략은 더 나은 지표 성능을 얻기 위해 패러블 라인의 파라미터 조합을 테스트하고 최적화 할 수 있습니다.
  2. MACD, KD 등과 같은 다른 판단 지표와 결합하여 다중 지표 확인 시스템을 형성하여 작동 신호의 신뢰성을 향상시킬 수 있습니다.
  3. 다른 손해 방지 방법을 테스트할 수 있습니다. 예를 들어, 차 손해 방지, 시간 손해 방지, 가격 손해 방지
  4. 다양한 품종 특성에 따라 최적화 매개 변수, 전략이 다양한 품종에서 좋은 수익을 얻을 수 있도록

요약하다

낙선선 스윙 전략은 전체적으로 효과가 좋은 단선 운영 전략이다. 낙선선 지표를 사용하여 트렌드 방향과 가격의 동력 변화를 판단하고, 스윙 거래 방식과 함께, 품종의 상승과 하락 단계에서 반복적으로 장점과 적폐 포지션을 구축한다. 엄격한 손해 방지 장치는 이 전략의 위험 제어 능력을 강하게 만든다. 그러나 단일 지표 전략으로서 낙선선의 실패는 전략에 큰 영향을 미칩니다.

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