
이 전략은 하향 트렌드를 포착하기 위해 중요한 지지를 식별하여 가격 하향을 효과적으로 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향을 포착하는 하향
전략의 핵심 원리는 기술 분석의 지지점 돌파 이론을 기반으로 한다. 첫째, 시스템은 지난 20주기의 최저 가격을 계산하여 중요한 지지점을 결정한다. 이 지지점은 다면력의 중요한 방어 영역을 나타낸다. 가격이 이 지지점을 넘어 넘어서는 경우 다면 방어선이 뚫린 것을 나타내고, 공중력이 지배적인 위치를 차지한다. 신호의 신뢰성을 높이기 위해, 전략은 거래량 확인 메커니즘에 도입되어, 돌파할 때 거래량이 20주기 거래량 이동 평균선보다 크거나 같을 때만 유효한 돌파가로 간주된다. 또한, 시스템은 가로 시장 탐지 기능을 통합하여 20주기의 가격 변동 범위와 ATR의 비교 값을 비교하여 시장이 가로 시장 상태에 있는지 판단한다.
이 전략은 여러 가지 기술적 이점을 가지고 있습니다. 첫째, 신호 품질이 높으며, 세 가지 조건인 지지부진, 거래량 확인 및 가로 필터링을 통해 가짜 신호의 확률을 크게 감소시킵니다. 거래량 확인 메커니즘은 돌파의 유효성을 보장하고 유동성 부족으로 인한 가짜 돌파를 방지합니다. 가로 시장 필터링 기능은 전략의 중요한 장점 중 하나이며, 불안한 움직임을 효과적으로 식별하고 거래를 중단하여 불리한 시장 환경에서 연속적인 손실을 피합니다. 동적 위험 관리는 전략의 핵심 이점입니다. ATR 기반의 중지 손해 메커니즘은 시장의 변동성에 따라 자동으로 조정할 수 있으며, 지지부진 시에는 더 느슨한 중지 공간을 제공하며, 낮은 변동 시에는 긴축 위험을 제어합니다.
전략이 여러 장점을 가지고 있음에도 불구하고 주의해야 할 몇 가지 잠재적인 위험이 있습니다. 첫째, 동향 역전 위험입니다. 시장이 강한 상승 추세에있을 때, 지지를 돌파하는 것은 진정한 동향 역전이 아닌 단기적인 역전일 수 있으며, 이는 시장의 급격한 상쇄 손실을 초래할 수 있습니다. 극단적인 변동 위험은 또 다른 중요한 고려 사항입니다.
전략에는 전반적인 성능을 향상시키기 위해 여러 가지 최적화 가능한 방향이 있습니다. 첫째, 다중 시간 프레임 분석을 도입하여 트렌드 방향을 더 높은 시간 프레임과 결합하여 거래 신호를 필터링 할 수 있습니다. 예를 들어, 일일 그래프가 하향 경향을 표시 할 때만 시간 차트의 공백 브레이크 신호를 실행하십시오. 이것은 신호의 성공률을 크게 높여 역동을 피할 수 있습니다. 둘째, 거래량 확인 메커니즘을 최적화 할 수 있습니다. 거래량의 절대값뿐만 아니라 거래량의 상대적 변화율과 거래량 분포 특성을 분석 할 수 있습니다. 예를 들어, 불특정 거래량은 평균을 초과하는 것이 아니라 이전 몇 가지 지주기의 평균 거래량보다 크게 증가하도록 요구 할 수 있습니다.
이 전략은 잘 설계된 지지부진한 공백을 깨는 양자 거래 시스템으로, 여러 기술 지표의 조합을 사용하여 높은 신호 품질과 위험 통제를 달성합니다. 이 전략의 핵심 장점은 완전한 신호 필터링 장치와 ATR 기반의 동적 위험 관리 시스템입니다. 거래량 확인 및 수평 시장 필터링 기능은 거래 신호의 신뢰성을 효과적으로 향상시킵니다.
/*backtest
start: 2024-05-26 00:00:00
end: 2024-08-13 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Breakout Strategy Pro [Dubic] - Short Only", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS === //
srRange = input.int(20, "Support Lookback", minval=5)
volMaLength = input.int(20, "Volume MA Length", minval=1)
atrLength = input.int(14, "ATR Period", minval=5)
trailMultiplier = input.float(1.5, "Trailing Stop Multiplier", minval=1.0)
stopMultiplier = input.float(1.0, "Initial Stop-Loss ATR Multiplier", minval=0.5)
breakoutBuffer = input.float(1.005, "Breakout Buffer", step=0.001)
rangeLength = input.int(20, "Range Detector Lookback", minval=5)
rangeThreshold = input.float(1.5, "Sideways Threshold (x ATR)", minval=0.5, step=0.1)
// === CALCULATIONS === //
lowLevel = ta.lowest(low, srRange)[1]
volMA = ta.sma(volume, volMaLength)
atr = ta.atr(atrLength)
trailOffsetTicks = math.max(int(math.round((atr * trailMultiplier) / syminfo.mintick)), 1)
stopLossTicks = math.max(int(math.round((atr * stopMultiplier) / syminfo.mintick)), 1)
// === SIDEWAYS DETECTION === //
highRange = ta.highest(high, rangeLength)
lowRange = ta.lowest(low, rangeLength)
priceRange = highRange - lowRange
isSideways = priceRange <= atr * rangeThreshold
// === ENTRY LOGIC === //
shortCondition = close <= lowLevel * breakoutBuffer and volume >= volMA and not isSideways
// === ENTRY & EXIT === //
if shortCondition and strategy.position_size >= 0
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", trail_price=close, trail_offset=trailOffsetTicks, stop=close + stopLossTicks * syminfo.mintick)
alert("Short Entry Signal - Breakout Strategy Pro [Dubic]", alert.freq_once_per_bar)
// === VISUALS === //
plot(lowLevel, "Support", color=color.new(color.green, 30))
plot(volMA, "Volume MA", color=color.gray)
plotshape(shortCondition, location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small, title="Sell Signal")
bgcolor(isSideways ? color.new(color.orange, 85) : na, title="Sideways Market")