
다단계 동적 유동성 청소량화 전략은 시장에서 스톱 헌팅 행위를 탐지하고 활용하기 위해 특별히 설계된 고급 거래 시스템이다. 이 전략은 시장 기관이 종종 중요한 유동성 영역 (최근의 고점이나 낮은 점과 같은) 에서 가짜 돌파구를 만들고 그 다음 빠르게 반전하는 현상을 기반으로 한다. 시장이 다수의 스톱 주문을 유발한 후 방향이 반전될 때 이 전략은 특히 효과적이다. 이 전략은 가격 돌파구, RSI 지표, 거래량 돌파증 확인 및 ATR 기반의 동적 스톱 스톱 관리 시스템을 결합하여 완전한 거래 프레임워크를 형성한다.
이 전략의 핵심 원칙은 ‘유동성 청소’ 또는 ‘손해 사냥’이라고 불리는 행위를 식별하고 활용하는 것입니다. 구체적으로 구현하는 방법은 다음과 같습니다:
유동성 영역 식별전략: 역행기 (기본 20주기) 를 사용하여 최근 최고 가격과 최저 가격을 결정합니다. 이 가격은 일반적으로 많은 스톱 손실 주문을 모으습니다.
브레이크테스트이 전략은 유동성 청소의 잠재적인 사건을 감지합니다.
high > highestHigh[1]low < lowestLow[1]필터 조건위조 신호를 줄이기 위해, 이 전략은 두 가지 중요한 필터를 도입했습니다.
출입 신호:
위험 관리전략: ATR 기반의 동적 스톱 스톱 손실 설정을 사용한다:
트랜잭션 추적전략: 전략은 포지션의 변화를 추적하고, 차트에서 입점과 출구 지점을 표시하여 직관적인 거래 시각적 피드백을 제공합니다.
심층적인 분석을 통해, 이 전략은 다음과 같은 중요한 장점을 가지고 있습니다.
시장 심리 통찰력이 전략은 시장 참여자들의 심리적 약점을 포착하는 것인데, 이는 시장에서 반복적으로 나타나는 패턴인 중요한 위치에서 단지를 설정하는 집중적인 행동이다.
다중 인증 메커니즘: 가격행동 (BREAK), 기술 지표 (RSI) 및 거래량 분석을 결합하여 삼중 확인 시스템을 형성하여 가짜 신호를 크게 줄였습니다.
동적 위험 관리ATR을 사용하여 스톱 스톱 스로드를 설정하여 위험 관리자가 시장의 변동성에 적응할 수 있도록합니다. 높은 변동성이있는 시장에서 더 넓은 스톱 스로드를 설정하고 낮은 변동성이있는 시장에서 더 좁은 스톱 스로드를 설정합니다.
객관적인 입시 조건전략의 입시 조건은 객관적인 기술 지표와 시장 행동에 전적으로 기반하여 주관적인 판단의 간섭을 줄입니다.
시각적 피드백 시스템: 차트에 입력 및 종료 지점을 표시하여 거래자는 전략의 성능을 직관적으로 평가하고 회고 분석을 수행 할 수 있습니다.
다른 시장 환경에 적응하는 것: 조정 가능한 매개 변수 설정을 통해, 전략은 다른 시장 환경과 거래 품종에 적응할 수 있다.
이 전략은 세련된 디자인에도 불구하고 다음과 같은 위험 요소가 있습니다.
실수로 돌파할 위험이 있습니다.: 시장이 예상되는 반전이 아닌 지속적인 일방적인 움직임이 발생할 수 있으며, 이는 스톱 손실이 유발 될 수 있습니다. 해결책은 회귀 기간 매개 변수를 최적화하거나 추가 트렌드 필터를 추가하는 것입니다.
매개변수 민감도: 전략 성능은 파라미터 설정 (예: 회귀 기간, ATR 곱하기, RSI 마이너스) 에 민감하다. 다양한 시장과 시간 프레임에 대한 피트백을 통해 최적의 파라미터를 조정하는 것이 좋습니다.
시장환경의존성이 전략은 흔들리는 시장에서 가장 잘 작동하며, 강한 트렌드 시장에서 빈번한 잘못된 신호가 발생할 수 있습니다. 이 위험을 피하기 위해 트렌드 식별 구성 요소를 추가하는 것을 고려할 수 있습니다.
비정상적인 성수: 특정 시장이나 특별한 거래 날에 거래량이 비정상적 인 요인 (예: 휴일, 정책 발표) 으로 인해 신호 품질에 영향을 미칠 수 있습니다. 상대적인 거래량을 사용하거나 거래량의 급격한 배수를 조정하는 것이 고려 될 수 있습니다.
미끄러짐 위험: 높은 변동성 이벤트에서 실제 실행 가격은 이론적 입시 가격과 현저한 차이가 있을 수 있다. 실장 거래에서 추가적인 슬라이드 포인트 보호 조치를 고려하는 것이 좋습니다.
코드 분석을 바탕으로 몇 가지 최적화 방향이 있습니다.
트렌드 필터 추가: 트렌드 인식 구성 요소를 도입 (예를 들어 이동 평균, ADX 지표 등) 하고, 트렌드 방향과 입시 신호가 일치할 때만 입시하고, 강한 트렌드 중에 역전 거래를 피한다.
동적 변수 조정: 시장의 변동성에 따라 회수 기간과 ATR 곱수를 자동으로 조정하는 적응 메커니즘을 도입하여 전략이 다른 시장 상태에 더 잘 적응할 수 있도록합니다.
거래량 분석을 강화합니다.: 상대적인 거래량 변화율이나 거래량 서면 분석을 사용하는 것을 고려할 수 있습니다. 단순한 거래량 평균값 비교가 아니라 더 정확한 거래량 확인을 얻을 수 있습니다.
시간 필터거래 시간 필터를 추가하여 시장 개시 및 폐쇄 시기를 피하거나 특정 경제 데이터 발표 시기를 피하십시오.
다중 시간 프레임 분석더 높은 시간 프레임의 시장 구조 분석을 통합하여 더 높은 시간 프레임의 지지 및 저항 지역 근처에서만 거래 기회를 찾습니다.
정지방지 전략을 최적화: 단계적 중지 전략을 적용하는 것을 고려할 수 있으며, 일정 수익을 달성한 후 손실을 비용으로 이동하여 무위험 거래를 수행 할 수 있습니다.
기계 학습 강화: 기계 학습 알고리즘을 도입하여 역사 유동성 스캔 패턴을 학습하고, 파라미터 선택 및 신호 생성 과정을 최적화한다.
다단계 동적 유동성 청소량화 전략은 시장에서 흔히 볼 수 있는 스톱 헌팅 행위를 포착하기 위한 정교하게 설계된 거래 시스템이다. 가격 돌파구, RSI 지표 및 거래량 분석을 결합하여 전략은 가짜 돌파구를 효과적으로 식별하고 가격 반전 시 출전할 수 있다. 전략의 동적 리스크 관리 시스템은 ATR 지표에 기반하여 다양한 시장 변동 조건에 적응할 수 있다.
이 전략은 흔들리는 시장에서 우수한 성능을 발휘하지만, 강한 추세 환경에서 도전을 받을 수 있습니다. 추세 필터를 추가하고, 파라미터 설정을 최적화하고, 거래량 분석을 강화함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다. 무엇보다도, 거래자는 전략의 배후에 있는 시장 메커니즘을 이해하고, 특정 거래 환경과 개인 위험 선호도에 따라 적절하게 조정해야합니다.
전체적으로, 이것은 강력한 이론적 기초와 실용성을 가진 거래 전략이며, 중장기 투자자 및 일일 거래자에게 여러 시장 환경에서 적용됩니다. 지속적인 최적화와 적절한 위험 관리를 통해, 이 전략은 거래 포트폴리오에서 강력한 도구가 될 잠재력을 가지고 있습니다.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-01-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Liquidity Sweep Strategy v2 - Fixed Close Labels", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
lookback = input.int(20, title="Lookback for High/Low Sweep")
atrMult = input.float(1.5, title="ATR Multiplier for TP/SL")
volumeMult = input.float(1.5, title="Volume Spike Multiplier")
rsiPeriod = input.int(14, title="RSI Period")
rsiOB = input.int(60, title="RSI Overbought")
rsiOS = input.int(40, title="RSI Oversold")
// === CALCULATIONS ===
highestHigh = ta.highest(high, lookback)
lowestLow = ta.lowest(low, lookback)
sweepHigh = high > highestHigh[1]
sweepLow = low < lowestLow[1]
volMA = ta.sma(volume, 20)
volSpike = volume > volMA * volumeMult
rsi = ta.rsi(close, rsiPeriod)
atr = ta.atr(14)
longSL = low - atr * atrMult
longTP = close + atr * atrMult
shortSL = high + atr * atrMult
shortTP = close - atr * atrMult
// === ENTRY CONDITIONS ===
longEntry = sweepLow and rsi < rsiOS and volSpike
shortEntry = sweepHigh and rsi > rsiOB and volSpike
// === STRATEGY EXECUTION ===
if (longEntry)
strategy.entry("Long", strategy.long)
strategy.exit("Long TP/SL", from_entry="Long", stop=longSL, limit=longTP)
label.new(bar_index, low, "🟢 BUY", style=label.style_label_up, textcolor=color.white, color=color.green, size=size.small)
if (shortEntry)
strategy.entry("Short", strategy.short)
strategy.exit("Short TP/SL", from_entry="Short", stop=shortSL, limit=shortTP)
label.new(bar_index, high, "🔴 SELL", style=label.style_label_down, textcolor=color.white, color=color.red, size=size.small)
// === EXIT LABELS USING POSITION TRACKING ===
var float previous_position = na
position_closed = (strategy.position_size == 0 and previous_position != 0)
if position_closed and previous_position > 0
label.new(bar_index, high, "🟩 SELL CLOSE", style=label.style_label_down, textcolor=color.white, color=color.green, size=size.small)
if position_closed and previous_position < 0
label.new(bar_index, low, "🟥 BUY CLOSE", style=label.style_label_up, textcolor=color.white, color=color.red, size=size.small)
previous_position := strategy.position_size