
동적 지원 저항 채널 브레이크 전략은 중요한 지원 저항 수준과 브레이크 신호를 식별하는 강력한 전략이다. 이 전략은 이러한 중요한 수준을 차트에 시각화하여 거래자가 잠재적인 거래 기회를 쉽게 발견 할 수 있도록합니다.
이 전략은 사용자가 정의한 좌측 및 우측 역동적으로 계산된 지지부수 지점을 기반으로 한다. 이것은 변화하는 시장 조건에 적응할 수 있는 유연성을 제공한다. 거래가 이러한 지지부수 지점을 넘어서면, 거래량 검증을 결합하여 구매 및 판매 신호를 발생시킨다. 또한, 이 전략은 정의된 지지부수 조건에 기반한 다중 상점 또는 빈 상점 포지션을 자동으로 실행하는 거래 전략을 통합하여 전체 거래 과정을 더욱 유연하게 만든다.
구체적으로, 전략은 ta.pivotlow 및 ta.pivothigh 함수를 통해 동적인 지원 및 저항 지점을 계산한다. 이러한 지원 및 저항 선은 빨간색과 파란색으로 차트에 그려져 있다. 거래소 거래가 이러한 지점을 돌파 할 때, 돌파 지점에 B 모양의 표시를 그리는다. 한편, 전략은 5 일과 10 일 평균 거래의 진동기를 결합하여 거래의 급성장을 판단한다. 거래가 충분히 큰 경우에만 돌파 신호를 유발하고 경고를 보내야 한다. 마지막으로, 전략은 이러한 지원 저항 지점과 거래의 조건에 기반한 LONG/SHORT 입시 및 출구 전략을 통합한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
전체적으로, 이 전략은 중요한 지지/저항의 돌파구를 완벽하게 식별, 시각화하고 활용하여 거래자가 최적의 거래 시점을 선택하는 데 큰 도움이 되고, 거래의 성공률을 크게 향상시킵니다.
이 전략의 잠재적 위험은 다음과 같습니다.
파격 실패 위험. 파격 지점은 가짜 파격이 발생할 수 있다. 이는 불필요한 손실을 초래할 수 있다. 더 엄격한 거래량 및 가격 변동 확인 조건을 설정함으로써 완화할 수 있다.
매개 변수 최적화 위험. 왼쪽 과 오른쪽 과 같은 매개 변수가 잘못 설정되면 계산된 지지 저항 지점이 정확하지 않을 수 있다. 다른 품종의 거래 특성에 따라 적절한 왼쪽 과 오른쪽 을 선택해야 한다.
과도한 최적화 위험. 변수를 과도하게 최적화하면 전략이 지나치게 잘 맞지 않을 수 있다. 적절한 재검토와 검증이 이루어져야 하며, 소량의 데이터에서 과도하게 최적화하는 전략을 피한다.
거래 비용 위험. 거래의 빈도는 높은 수수료로 이어집니다. 거래의 빈도를 조정하거나 다른 방법으로 제어하는 것이 적절히 고려됩니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
단위 손실을 통제하기 위해 단위 손실 조건을 추가합니다.
이윤 요소를 최적화하여 최적의 이득을 찾아보세요.
다양한 변수 조합을 테스트하여 최적의 변수를 결정한다.
다른 품종에 따라 왼쪽 과 오른쪽 의 설정을 조정하십시오.
가격 변동율과 같은 다른 필터 조건들을 추가하여, 돌파의 가능성을 더 정확하게 판단할 수 있다.
다른 거래량 확인 지표들을 시도해 보세요. 예를 들어, 거래량 돌파구와 같은 것들 말이죠.
다른 거래 전략이나 지표와 결합하여 더 나은 통합을 달성합니다.
동적 지원 저항 채널 돌파 전략은 차트 기술 분석의 지원 저항 개념을 활용하여 거래량 분석을 통해 돌파의 중요성을 확인하고 시장의 중요한 전환점을 효과적으로 발견 할 수 있습니다. 이 전략은 간결하고 쉬운 인터페이스 디자인, 지표 그리기 및 신호提示이 복잡한 기술 지표 내용을 이해하기 쉽게 만들어 기술 을 크게 낮추고 있습니다. 또한, 사용자 정의 및 통합 가능한 파라미터 설정은 상인의 자신의 전략 구현과 결합하기 쉽다.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Support and Resistance channel with Breaks p5", shorttitle="Support and Resistance channel with Breaks [cryptoonchain]", overlay=true, max_bars_back=1000)
// Input variables
toggleBreaks = input(true, title="Show Breaks")
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
volumeThresh = input(20, title="Volume Threshold")
// Calculate pivot levels
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars)[1])
// Plot resistance and support lines
r1 = plot(highUsePivot, color=color.new(na(highUsePivot) ? na : #FF0000, 0), linewidth=3, offset=-(rightBars + 1), title="Resistance")
s1 = plot(lowUsePivot, color=color.new(na(lowUsePivot) ? na : #233dee, 0), linewidth=3, offset=-(rightBars + 1), title="Support")
// Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
// Plot shapes for breaks with volume
plotshape(toggleBreaks and ta.crossunder(close, lowUsePivot) and not (open - close < high - open) and osc > volumeThresh, title="Break", text='B', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, transp=0, size=size.tiny)
plotshape(toggleBreaks and ta.crossover(close, highUsePivot) and not (open - low > close - open) and osc > volumeThresh, title="Break", text='B', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny)
// Alert conditions
alertcondition(ta.crossunder(close, lowUsePivot) and osc > volumeThresh, title="Support Broken", message="Support Broken")
alertcondition(ta.crossover(close, highUsePivot) and osc > volumeThresh, title="Resistance Broken", message="Resistance Broken")
// Strategy conditions with filter
longCondition = low > highUsePivot and osc > volumeThresh
shortCondition = high < lowUsePivot and osc > volumeThresh
// Strategy entries
strategy.entry("My Long Entry Id", strategy.long, when=longCondition)
strategy.entry("My Short Entry Id", strategy.short, when=shortCondition)