Parabolic SAR 및 EMA를 기반으로 한 추세 추종 전략


생성 날짜: 2023-12-22 13:04:55 마지막으로 수정됨: 2023-12-22 13:04:55
복사: 1 클릭수: 636
1
집중하다
1179
수행원

Parabolic SAR 및 EMA를 기반으로 한 추세 추종 전략

개요

이 전략의 주요 아이디어는 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동

전략 원칙

이 전략의 핵심 지표는 Parabolic SAR이며, 가격을 추적하고 트렌드 반전을 판단할 수 있는 기술 분석 도구이다. 계산 공식은 더 복잡하지만 원칙은 더 간단하다. SAR 지표는 자신의 위치를 계속 조정하여 항상 가격의 뒤에서 유지하며, 가격이 반전되면 즉시 가격의 다른 쪽으로 위치를 조정한다. 따라서 SAR 지표의 가격에 대한 위치를 관찰하는 것 만으로 현재의 트렌드 방향을 판단 할 수 있습니다.

이 전략을 보조하는 또 다른 지표는 EMA이다. SAR와 달리 EMA는 트렌드의 지속성을 판단하는 데 더 적합하다. 가격이 EMA를 뚫고 나서야 진입할 수 있도록 요구함으로써 일부 잡음을 효과적으로 필터링 할 수 있다. 그리고 EMA는 역전 신호를 확인하는 데에도 사용될 수 있다. 예를 들어 가격이 상승 추세인 EMA를 넘어서는 것은 트렌드 역전 신호일 가능성이 높다.

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

  1. SAR를 사용하여 트렌드 방향을 판단합니다. SAR는 가격의 위쪽은 곰 시장이고 가격의 아래쪽은 황소 시장입니다.
  2. 불시장에서는 가격이 EMA보다 높을 때 더 많이 하고, 곰시장에서는 가격이 EMA보다 낮을 때 더 적게 합니다.
  3. 위험 조절을 위해 SAR 값으로 설정된 스톱포인트

패러볼릭 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. 계층적 입출장 ᅲᅲ 더 복잡한 다단계 입출장 ᅲᅲ 메커니즘을 설정할 수 있으며, 트렌드의 다양한 단계에서 배치된 입출장 ᅲᅲ 또는 중지 ᅲᅲ

위와 같은 몇 가지 최적화를 통해, 전략은 추세를 추적하면서 더 높은 안정성과 더 정확한 판단과 더 강력한 위험 제어 능력을 얻을 수 있으며, 따라서 더 나은 성과를 얻을 수 있습니다.

요약하다

Parabolic 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()