슈퍼트렌드 추적 전략

저자:차오장, 날짜: 2024-01-23 15:36:27
태그:

img

전반적인 설명

이 전략은 슈퍼트렌드 추적 전략이라고 불립니다. 그것은 슈퍼트렌드 지표에 기반한 장기 및 단위 양쪽 모두에 대한 자동 거래 시스템을 개발하며 트렌드 방향을 자동으로 식별하고 RSI 및 ADX 지표와 결합한 입출을 수행 할 수 있습니다.

원칙

이 전략의 핵심은 현재 가격 트렌드를 결정하기 위해 슈퍼트렌드 지표를 사용하는 것입니다. 슈퍼트렌드는 이동 평균과 ATR을 결합하여 가격 트렌드의 방향을 판단하는 데 효과적입니다. 슈퍼트렌드의 방향이 반전되면 가격 트렌드가 변화하고 있음을 신호합니다.

특히,이 전략은 먼저 슈퍼 트렌드 방향, RSI 및 ADX를 계산합니다. 슈퍼 트렌드가 하락하고 RSI가 상승 추세가 사라지고 있음을 보여주면, 짧은 입력을합니다. 슈퍼 트렌드가 다시 나타나면, 짧은 위치를 닫습니다.

장점

이 전략의 가장 큰 장점은 자동으로 가격 트렌드를 식별하고 수동 판단없이 트렌드를 기반으로 입출을 할 수 있다는 것입니다. 또한 RSI와 ADX를 필터로 사용하면 잘못된 브레이크를 효과적으로 방지하고 수익성을 향상시킬 수 있습니다.

위험성

가장 큰 위험은 슈퍼트렌드 자체가 가격 추세를 판단하는 데 매우 정확하지 않기 때문에 잘못된 신호를 생성 할 수 있다는 것입니다. 또한 스톱 로스가 설정되어 있지 않으므로 거래당 손실은 상당한 수 있습니다.

최적화는 슈퍼 트렌드 매개 변수를 조정하고 위험을 줄이기 위해 후속 스톱 손실을 추가하여 수행 할 수 있습니다.

최적화

이 전략의 몇 가지 측면은 최적화 될 수 있습니다.

  1. 정확도를 높이기 위해 Supertrend 매개 변수를 최적화

  2. 트레이딩 스톱 손실을 거래 손실 당 제어에 추가합니다.

  3. 수익성을 높이기 위해 볼링거 밴드, KDJ 같은 필터를 추가합니다.

  4. 전략의 완성도를 높이기 위해 비슷한 장기 입출입 규칙을 개발

결론

결론적으로, 이것은 슈퍼트렌드를 기반으로 트렌드를 판단하는 자동화 된 거래 전략입니다. 장점은 높은 수준의 자동화 및 자동 트렌드 탐지입니다. 단점은 슈퍼트렌드의 저 정확성과 스톱 손실이 없습니다. 매개 변수 조정, 필터 추가 및 스톱 손실은 수익성 및 위험 통제를 향상시킬 수 있습니다.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx

sig = adx(dilen, adxlen)

if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
    strategy.entry("My Long Entry Id", strategy.long)

if ta.change(direction) > 0
    strategy.close("My Long Entry Id")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


더 많은