패러볼릭 SAR 및 EMA 트렌드 추적 전략

저자:차오장, 날짜: 2023-12-22 13:04:55
태그:

img

전반적인 설명

이 전략의 주요 아이디어는 트렌드 방향과 시장 진입 시기를 식별하기 위해 파라볼릭 SAR와 EMA 지표를 모두 사용하는 것입니다. 파라볼릭 SAR는 현재 트렌드 방향을 결정하는 데 사용되며 EMA는 시장 진입의 특정 타이밍을 결정하는 데 도움을줍니다. SAR가 가격보다 높을 때 곰 시장입니다. SAR가 가격보다 낮을 때 황소 시장입니다. 시장에 진출 할 때 트렌드가 형성되는 것으로 간주되기 전에 EMA를 통과하는 가격도 필요합니다. 이 시점에서 시장 진입을 위해 트렌드 방향을 따르십시오.

전략 원칙

이 전략의 핵심 지표는 가격 추적 및 트렌드 반전을 판단 할 수있는 기술적 분석 도구 인 파라볼릭 SAR입니다. 계산 공식은 더 복잡하지만 원리는 간단하고 직관적입니다. SAR 지표는 항상 가격 뒤에 머물기 위해 지속적으로 위치를 조정합니다. 가격이 반전되면 즉시 가격의 다른 쪽으로 위치를 조정합니다. 따라서 현재 방향 트렌드를 판단하기 위해 가격에 대한 SAR 지표의 위치를 관찰하십시오.

이 전략을 돕는 또 다른 지표는 EMA이다. SAR와 달리, EMA는 트렌드의 지속 가능성을 판단하는 데 더 적합하다. 시장에 진입하기 전에 EMA를 통과하도록 가격을 요구함으로써 약간의 소음을 효과적으로 필터링 할 수 있다. 그리고 EMA는 반전 신호를 확인하는 데도 사용될 수 있다. 예를 들어, 가격이 상승 트렌드 EMA를 통과할 때, 그것은 트렌드 반전의 신호일 가능성이 있다.

요약하자면 이 전략의 구체적인 거래 규칙은 다음과 같습니다.

  1. 트렌드 방향을 결정하기 위해 SAR를 사용하십시오. 가격 이상의 SAR는 하향 시장이고 가격 이하의 시장은 상승 시장입니다.
  2. 가격이 황금 시장에서 EMA보다 높을 때 길게; 가격이 곰 시장에서 EMA보다 낮을 때 짧게
  3. 리스크를 제어하기 위해 SAR 값으로 Stop Loss를 설정합니다.

파라볼릭 SAR를 통해 주요 트렌드를 결정하고 EMA를 통해 잘못된 신호를 필터링함으로써 위험을 제어하고 효과적인 트렌드 추적을 달성하는 동시에 트렌드를 잠금 할 수 있습니다.

이점 분석

이 전략은 다음과 같은 주요 장점을 가지고 있습니다.

  1. 강한 트렌드 추적 능력. SAR는 트렌드 반전을 판단하는 데 매우 민감하며 트렌드 방향을 효과적으로 잠그게 할 수 있습니다.
  2. 높은 정확성, EMA는 소음을 필터링하고 함정을 피합니다.
  3. 적절한 리스크 제어, SAR로 스톱 로스를 설정하면 단일 로스를 제어할 수 있습니다.
  4. 실행하기 쉽습니다. 전략 규칙은 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.

일반적으로 이 전략은 여러 지표의 장점을 통합하고, 추세를 파악하면서도 효과적인 위험 통제를 달성하며, 안정적인 추세 추적 전략으로 쉽게 마스터 할 수 있습니다.

위험 분석

이 전략은 많은 장점을 가지고 있지만 실제 운영 중에 보호해야 할 특정 위험이 있습니다. 주요 위험은 다음과 같습니다.

  1. 트렌드 역전 위험. 트렌드 역전 발생하면 전략은 손실을 시간 내에 멈출 수 없으며 더 큰 손실을 초래할 수 있습니다.
  2. 범위를 제한하는 시장 위험. 범위를 제한하는 시장에서 전략은 여러 개의 작은 손실을 발생시킬 것입니다.
  3. 매개 변수 최적화 위험: SAR와 EMA의 매개 변수 설정은 전략 성능에 영향을 미치며 최적 매개 변수를 찾기 위해 반복적으로 테스트해야합니다.

위의 위험을 줄이기 위해 최적화는 다음과 같은 측면에서 수행 할 수 있습니다.

  1. 다른 지표를 결합하여 트렌드 반전 시기를 결정하고 더 민감한 스톱 로스 포인트를 설정합니다.
  2. 변동성 있는 시장에서 빈번한 오픈을 피하기 위해 필터를 추가합니다.
  3. 유전 알고리즘과 다른 방법을 사용하여 매개 변수 조합을 최적화하고 최적의 매개 변수를 찾습니다.

최적화 방향

이 전략을 더 이상 최적화하려면 다음 측면을 고려하십시오.

  1. 매개 변수 설정을 최적화한다. 유전 알고리즘과 같은 방법을 사용하여 최적의 매개 변수 조합을 찾기 위해 EMA와 SAR의 매개 변수를 테스트하고 최적화할 수 있다.

  2. 트렌드 판단 도구를 추가하십시오. 트렌드를 확인하고 정확도를 향상시키기 위해 MACD 및 볼링거 밴드와 같은 다른 지표가 추가 될 수 있습니다.

  3. 동적 스톱 손실을 설정하십시오. 더 유연한 스톱 손실을 위해 ATR와 같은 지표에 기반한 동적 스톱 손실 지점을 설정하십시오.

  4. 거래 비용을 고려하십시오. 절대 수익률보다는 순이 이익을 최적화하기 위해 미끄러짐 및 수수료 매개 변수를 도입하십시오.

  5. 다단계 진입 및 출출: 더 복잡한 다단계 진입 및 출출 메커니즘을 설정하여 다른 트렌드 단계에서 포지션을 구축하거나 손실을 중지할 수 있습니다.

위의 최적화와 함께, 추세를 추적하면서 전략은 더 높은 안정성, 더 정확한 판단 및 더 강력한 위험 통제 능력을 얻을 것으로 예상할 수 있습니다. 따라서 더 나은 성과를 달성합니다.

요약

패러볼릭 SAR 및 EMA 트렌드 추적 전략은 트렌드 방향과 진입 시기를 판단하기 위해 여러 지표의 장점을 통합합니다. SAR를 스톱 로스 포인트로 설정하면 위험이 통제됩니다. 비교적 안정적인 수치 전략입니다. 이 전략은 높은 판단 정확성과 쉬운 마스터링과 같은 장점이 있습니다. 그러나 특정 위험도 있습니다. 더 나은 성과를 달성하기 위해 매개 변수 및 스톱 로스 방법의 추가 최적화가 필요합니다. 투자자의 참조와 학습에 가치가 있습니다.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Parabolic SAR Strategy w/ EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


emalength = input(100 , "EMA Length")
emaoffset = input(0.00, "EMA Offset %")
start = input(0.015)
increment = input(0.005)
maximum = input(0.2)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
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 = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

psar = sar(start, increment, maximum)
ema = ema(close, emalength)
offset = (emaoffset / 100) * ema

// Signals
psar_long  = high[1] < psar[2] and high > psar[1] 
psar_short = low[1]  > psar[2] and low  < psar[1] 

// Plot PSAR
plotshape(psar, location = location.absolute, style = shape.cross, size = size.tiny, color = low < psar[1] and not psar_long ? green : red)

//Plot EMA
plot(ema)

if(psar_long)
    strategy.close("Short")
    
if(psar_short)
    strategy.close("Long")

if (psar < low and time_cond and close > ema + offset)
    strategy.entry("Long", strategy.long, comment="Long", stop = psar)
   
if (psar > high and time_cond and close < ema - offset)
    strategy.entry("Short", strategy.short, comment="Short", stop = psar)

if (not time_cond)
    strategy.close_all()


더 많은