포물선 지표와 이동평균선을 기반으로 한 장단기 추세 판단 전략


생성 날짜: 2024-03-27 17:59:11 마지막으로 수정됨: 2024-03-27 17:59:11
복사: 0 클릭수: 618
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

포물선 지표와 이동평균선을 기반으로 한 장단기 추세 판단 전략

개요

EPTS 전략은 패러볼릭 라인 지표 ((Parabolic SAR) 와 두 개의 서로 다른 주기 이동 평균 ((EMA) 를 기반으로 한 트렌드 추적 전략이다. 이 전략은 패러볼릭 라인 지표를 사용하여 현재 시장의 트렌드 방향을 판단하고, 두 가지 이동 평균의 상대적인 위치 관계를 결합하여 시그널 포지션을 생성한다. 전략의 주요 아이디어는 “트렌드 추적”이다. 즉, 상승 추세에서 더 많이하고, 하향 추세에서 공백을 해 안정적인 수익을 기대한다.

전략 원칙

  1. 패러볼릭 라인 지표 (Parabolic SAR) 는 현재 시장 추세의 방향을 판단하는 데 사용됩니다. 패러볼릭 라인이 K선 위에 있을 때, 시장은 하향 추세에 있습니다. 패러볼릭 라인이 K선 아래에 있을 때, 시장은 상승 추세에 있습니다.

  2. 2개의 다른 주기들의 지수 이동 평균 ((EMA) 이 트렌드를 확인하고 포지션 개시 신호를 생성하기 위해 사용된다. 이 전략은 5일 EMA와 20일 EMA를 사용한다. 5일 EMA가 20일 EMA 위에 있을 때, 시장은 상승 추세에 있다고 여겨진다. 반대로 시장은 하락 추세에 있다고 여겨진다.

  3. 포지션 개시 조건: 패러블라인과 EMA가 상승세를 보인다면, 다중 신호를 생성한다. 패러블라인과 EMA가 하향세를 보인다면, 다중 신호를 생성한다.

  4. 평준상위 조건: 패러블 라인이 K 라인을 돌파할 때, 현재 포지션을 평준화하고 다음 포지션 개시 신호를 기다립니다.

  5. 스톱로스: 포지션을 개시할 때, 스톱로스 가격을 현재 패러폴리 라인의 위치로 설정한다. 패러폴리 라인이 이동함에 따라 스톱로스 위치를 동적으로 조정하여 이동 스톱로스를 실현한다.

패러폴리 라인 지표와 EMA의 결합을 통해 EPTS 전략은 시장의 추세를 더 잘 포착하고, 추세가 반전될 때 적시에 포지션을 청산하여 위험을 통제할 수 있습니다. 동적 상쇄의 설정은 전략의 회수 위험을 더 낮출 수 있습니다.

우위 분석

  1. 트렌드 추적: EPTS 전략은 트렌드 추적에 기반하여 시장의 주요 트렌드를 효과적으로 포착하여 안정적인 수익을 얻을 수 있습니다.

  2. 동적 스톱: 전략은 패러블 라인을 동적 스톱 위치로 사용하며, 트렌드가 진행됨에 따라 스톱 위치를 계속 조정하여 위험을 효과적으로 제어합니다.

  3. 이중 확인: 패러블라인과 EMA의 이중 확인을 통해 포지션 개설 신호의 신뢰성을 높이고, 가짜 신호를 줄인다.

  4. 간단하고 사용하기 쉬운: 전략 논리가 명확하고, 매개 변수 설정이 간단하며, 이해하기 쉽고 구현하기 쉽다.

위험 분석

  1. 흔들림 시장: 흔들림 시장에서, 추세는 분명하지 않으며, 더 많은 가짜 신호를 생성할 수 있으며, 이로 인해 거래가 빈번하고 더 많은 철회가 발생할 수 있다.

  2. 트렌드 반전: 시장의 트렌드가 갑자기 반전될 때, 전략은 평형을 지연하여 손실을 감수할 수 있다.

  3. 매개 변수 설정: 전략의 성능은 매개 변수 설정에 영향을 받으며, 다른 매개 변수는 다른 결과를 초래할 수 있다.

최적화 방향

  1. 더 많은 지표를 도입: 기존의 패러블라인과 EMA를 기반으로, MACD, ADX 등과 같은 다른 트렌드급 지표를 도입하여 트렌드 판단의 정확성을 향상시킨다.

  2. 최적화된 입시 조건: 입시 조건에 대한 최적화, 예를 들어 가격과 EMA의 거리, 거래량과 같은 요소를 고려하여 입시 신호의 품질을 향상시킵니다.

  3. 동적 파라미터 최적화: 시장 상황의 변화에 따라, 동적으로 조정 전략 파라미터, 예를 들어, 패러블 라인의 걸음 길이, EMA의 주기 등, 다른 시장 환경에 적응하기 위해.

  4. 포지션 관리에 참여: 시장 추세의 강도와 계정 리스크에 따라 포지션 크기를 동적으로 조정하여 위험을 통제하면서 수익을 높인다.

요약하다

EPTS 전략은 패러폴리 라인 지표와 이동 평균을 기반으로 한 트렌드 추적 전략으로 시장의 주요 트렌드를 포착하고 위험을 통제하기 위해 적시에 청산하여 안정적인 수익을 얻습니다. 이 전략은 논리적으로 명확하고 실행하기 쉽고 트렌드가 명백한 시장 환경에 적합합니다. 그러나 불안한 시장에서 전략은 더 큰 회수 위험에 직면 할 수 있으며, 전략의 적응성과 안정성을 높이기 위해 다른 지표와 최적화 방법을 결합해야합니다. 또한 합리적인 매개 변수 설정과 포지션 관리는 전략의 성공적인 운영의 핵심입니다.

전략 소스 코드
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("febin2024", overlay=true)

// Parabolic SAR Parameters
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)

// EMA Parameters
ema20_length = input(20, title="EMA 20 Length")
ema5_length = input(5, title="EMA 5 Length")

// Calculate EMAs
ema20 = ta.ema(close, ema20_length)
ema5 = ta.ema(close, ema5_length)

// Parabolic SAR Logic
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 := math.max(EP, high)
            EP := low
            AF := start
    else
        if SAR < high
            firstTrendBar := true
            uptrend := true
            SAR := math.min(EP, low)
            EP := high
            AF := start
    if not firstTrendBar
        if uptrend
            if high > EP
                EP := high
                AF := math.min(AF + increment, maximum)
        else
            if low < EP
                EP := low
                AF := math.min(AF + increment, maximum)
    if uptrend
        SAR := math.min(SAR, low[1])
        if bar_index > 1
            SAR := math.min(SAR, low[2])
    else
        SAR := math.max(SAR, high[1])
        if bar_index > 1
            SAR := math.max(SAR, high[2])
    nextBarSAR := SAR + AF * (EP - SAR)
    if barstate.isconfirmed
        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 Parabolic SAR
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)

// Plot EMAs
plot(ema20, color=color.blue, linewidth=2, title="EMA 20")
plot(ema5, color=color.red, linewidth=2, title="EMA 5")

// Equity Plot
plot(strategy.equity, title="Equity", color=color.green, linewidth=2)