
이 전략은 슈퍼 트렌드 채널 지표에 기반하여 개발되었다. 가격 움직임과 슈퍼 트렌드 채널의 방향을 결합하여 시장의 흐름을 판단하고 채널 방향이 변할 때 거래 신호를 발산한다.
가격이 슈퍼 트렌드 채널을 뚫을 때, 더 많이 구매합니다. 가격이 슈퍼 트렌드 채널을 넘어갈 때, 공짜로 판매합니다. 동시에, 그것은 트렌드 추적 스톱스 메커니즘을 가지고 있습니다.
슈퍼 트렌드 채널은 위 궤도, 아래 궤도로 이루어져 있다. 채널 내부는 평형 영역, 채널 외부는 트렌드 영역이다. 그것은 평균 실제 진동 범위를 곱한 한 배수를 사용하여 채널의 폭을 결정한다.
가격이 아래에서 경로를 돌파할 때, 구매 신호에 해당한다. 이는 새로운 상승 추세가 시작된다는 것을 의미한다. 가격이 위로부터 경로를 돌파할 때, 판매 신호에 해당한다. 이는 새로운 하향 추세가 시작된다는 것을 의미한다.
이 전략은 슈퍼 트렌드 채널 지표를 사용하여 주요 트렌드의 방향을 판단한다. 채널 방향이 전환되면, 즉 가격이 채널 궤도를 돌파 할 때 거래 신호를 발산합니다. 그 다음 트렌드를 사용하여 손실을 추적하여 수익을 고정합니다.
이것은 간단하고 직관적인 돌파구 전략입니다. 다음과 같은 장점이 있습니다:
슈퍼 트렌드 채널을 사용하여 주요 트렌드 방향을 판단하여 iB 잡음으로 돈을 버는 것을 피하십시오.
“가격과 통로의 관계에 따라 더 많은 공백 시간을 할애할 수 있습니다”.
뚜렷한 손해 방지 장치가 있어 위험을 효과적으로 통제할 수 있다.
트렌드를 추적하는 상쇄 방식은 상쇄를 통해 수익을 최대화 할 수 있습니다.
이 전략에는 다음과 같은 위험도 있습니다.
슈퍼 트렌드 채널의 매개 변수가 잘못 설정되어 잘못된 신호가 발생할 수 있습니다.
돌파 신호는 단기적인 반전 신호일 수 있으며, 이로 인해 손실이 발생한다.
트렌드 추적을 위한 상쇄 방식이 너무 일찍 상쇄될 수 있습니다.
이에 대응하는 개선책은 다음과 같습니다.
다른 시장의 데이터를 테스트하고, 최적화 매개 변수를 니다.
다른 지표와 함께 필터링 신호.
가격 구조와 결합하여, 돌파 신호의 신뢰성을 판단한다.
후기 손실을 증가시켜 위험을 더욱 제어합니다.
이 전략은 전체적으로 단순하고 직관적인 트렌드 추적 전략이다. 그것은 슈퍼 트렌드 채널을 사용하여 트렌드 방향을 명확하게 판단하고, 채널이 전환되면 신호를 발생시킨다. 그리고 트렌드 추적 스톱 로스를 사용하여 수익을 잠금한다.
다른 지표에 비해 슈퍼 트렌드 채널은 가격 변동에 대한 포용성이 더 좋다. 그러나 이 전략에도 약간의 수익 공간이 있으며, 신호 필터링 및 손실 중지 방식 등의 측면에서 최적화하여 안정성을 더욱 향상시킬 수 있다.
/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Supertrend TEST Strategy", overlay = true, format=format.price, precision=2)
Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
if (strategy.position_size > 0)
tp:=tp[1]
sl:=up
strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
if (strategy.position_size < 0)
tp:=tp[1]
sl:=dn
strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)
if buySignal
tp:=close+(close-up)*0.382
strategy.entry("Long", strategy.long, limit=tp, comment=tostring(round(tp)))
if sellSignal
tp:=close-(dn-close)*0.382
strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))