뉴욕 유동성 역전 거래 양적 전략

EMA RR SL TP 日内交易 流动性 突破 价格行为
생성 날짜: 2025-07-24 08:58:12 마지막으로 수정됨: 2025-07-24 08:58:12
복사: 0 클릭수: 171
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

뉴욕 유동성 역전 거래 양적 전략 뉴욕 유동성 역전 거래 양적 전략

개요

뉴욕 유동성 반전 거래량 전략은 뉴욕 거래 시간대에 특화된 일간 거래 시스템으로, 주로 전 거래일 고/저점을 핵심 유동성 지역으로 사용하여 가격 행동 확인 신호와 결합하여 거래를 한다. 이 전략은 전날 고/저점을 돌파한 후의 가격 반전 현상을 대상으로, 시장 유동성 후의 방향 변화를 흡수하여 이익을 얻는다. 이 전략은 미국 동부 시간대 오전 8시부터 10시 30분 사이에 운영되며, 고정된 위험/이익 비율 설정을 사용하며, 거래 품목의 각 방향의 각 거래는 위험 통제 및 거래 품질을 높이기 위해 하루에 한 번만 허용된다.

전략 원칙

뉴욕 유동성 역전 전략의 핵심 원칙은 시장의 미시 구조와 유동성 사냥 이론에 기초한다. 구체적으로, 전략은 가격이 전날 거래의 최고점이나 최저점을 돌파한 후에 반전 신호가 발생하면, 대형 기관이 유동성 수집을 완료하고 시장이 반대 방향으로 발전할 가능성이 높다고 생각한다. 전략의 주요 실행 논리는 다음과 같다:

  1. 시간 필터: 뉴욕시 시간 (8:00-10:30) 에만 거래, 이는 시장의 활동성이 높고 방향성이 있는 시간이다.
  2. 유동성 스캔:
    • 다단계 조건: 가격이 하루 전의 하위치를 넘어선 후 다시 회수되고, 동시에 시가총액 삼키는 형태를 형성한다.
    • 허공 조건: 가격이 1일 전의 최고치를 넘은 후 다시 회수하고, 동시에 하락의 삼키는 형태를 형성한다.
  3. 매일 거래 제한: 거래 방향마다 거래 종류마다 하루에 한 번만 허용
  4. 리스크 관리: 고정된 스톱 포인트 수와 리스크 수익률 (비례 3.0) 을 사용하여 스톱 포인트 위치를 설정합니다.

이 전략의 핵심은 주요 기관의 유동성 수집 행동을 핵심 가격 수준 근처에 포착하는 데 있습니다. 이러한 행동은 일반적으로 가격의 단기 반향을 초래합니다. 확인 신호를 기다리는 것으로 (이식 형태) 이 전략은 거래 성공률을 높입니다.

전략적 이점

  1. 명확한 시장 논리: 전략은 유동성 수집과 가격 행동 이론에 기반하며, 통계적 모델이나 기술 지표에만 의존하지 않고 명확한 시장 논리 지원을 제공합니다.

  2. 시간 필터링 메커니즘: 뉴욕 거래 시간에만 거래를 수행함으로써, 전략은 시장 유동성이 가장 좋은, 정보 함량이 가장 높은 시간대에 집중하고, 유동성이 낮은 시간에 시끄러운 거래를 피한다.

  3. 다중 확인 메커니즘: 전략은 가격 돌파 전날의 높고 낮은 지점과 삼키기 형태의 두 가지 확인 신호를 결합하여 가짜 돌파 거래의 가능성을 현저하게 감소시킵니다.

  4. 엄격한 위험 통제:

    • 고정 스톱포인트 설정
    • 미리 정의된 리스크/이익 비율
    • 매일 한 방향, 한 자산 카테고리 당 한 거래 제한
    • 백분율 자금 관리 (전략의 기본 사용 계좌의 1%)
  5. 시각적 보조 도구: 전략은 거래 신호와 중요한 가격 수준을 차트에 표시하여 거래자가 실시간으로 모니터링하고 전략을 최적화 할 수 있습니다.

  6. 경고 기능: 거래자가 중요한 거래 기회를 놓치지 않도록 거래 신호 경보 시스템을 내장했습니다.

전략적 위험

  1. 가짜 브레이크 위험: 전략이 삼키기 형태를 확인으로 사용함에도 불구하고, 높은 변동성이 있는 시장에서, 가짜 브레이크 이후의 역동성이 발생할 수 있으며, 이로 인해 정지 손실이 유발된다. 해결 방법: 거래량 확인이나 더 긴 시간 주기에서의 추세 일관성 검사와 같은 추가 필터링 조건을 추가하는 것이 고려될 수 있다.

  2. 시간 의존성: 전략은 특정 시간 동안만 작동하며, 이는 다른 시간 동안의 높은 품질의 거래 기회를 놓치게 할 수 있습니다. 해결 방법: 다른 시간 동안 상호 보완적인 전략을 개발하거나 다른 시장 특성에 따라 거래 시간 창을 조정할 수 있습니다.

  3. 고정 스톱 리미트: 고정 점수 스톱을 사용하는 것은 모든 시장 조건에 적합하지 않을 수 있습니다. 특히 변동성이 급격히 증가하는 경우. 해결 방법: 적응 스톱 메커니즘을 구현하는 것을 고려하고 현재 시장의 변동성 동력에 따라 스톱 지점을 조정하십시오.

  4. 단일 확인 메커니즘 의존성: 전략은 리버스 확인으로 흡수 형태를 주로 의존하지만 단일 지표는 신호 품질의 불안정을 초래할 수 있습니다. 해결 방법: 다른 가격 행동 확인 신호 또는 기술 지표, 예를 들어 운동 지표 또는 지지 저항 수준과 같은 통합.

  5. 변동성 필터 부족: 낮은 변동성 환경에서, 전날의 하위/고위 지점을 돌파하는 거래는 거래 손실을 초래할 충분한 동력이 부족할 수 있습니다. 해결 방법: ATR 필터를 추가하여, 시장의 변동성이 충분할 때만 거래하십시오.

전략 최적화 방향

  1. 역동적인 스톱 메커니즘: 고정 점수 스톱을 ATR 기반의 적응 스톱으로 대체하여 전략이 다양한 시장 조건의 변동성에 더 잘 적응할 수 있도록합니다. 이것은 낮은 변동성 시장에서 더 긴밀한 스톱을 제공하고 높은 변동성 시장에서 더 넓은 스톱 공간을 제공합니다.

  2. 통합 시장 구조 분석: 더 높은 시간 프레임의 시장 구조를 고려하여 H4 또는 일계 트렌드 방향과 일치하는 방향으로만 거래하면 승률과 평균 수익률을 높일 수 있습니다.

  3. 거래량 확인: 거래량 분석 컴포넌트를 추가하여, 유동성 돌파구가 충분한 거래량 지원과 함께 이루어지도록 하고, 저품질의 돌파구 신호를 필터링한다.

  4. 시간 최적화: 거래 시간 창을 더 세밀하게 최적화하여, 단일 시간 창을 사용하는 대신, 각 거래 품종에 대한 최적의 거래 시간을 재검토하여 결정합니다.

  5. 다중 시간 프레임 분석: 다중 시간 프레임 확인 메커니즘을 도입합니다. 예를 들어, 낮은 시간 프레임의 입력 신호가 높은 시간 프레임의 트렌드 방향과 일치하도록 요구합니다.

  6. 수익 목표 최적화: 시장 구조에 따라 목표 가격을 조정하는 역동적인 수익 목표 설정 (예를 들어, 중요한 지지 저항 위치) 또는 고정 비율을 사용하는 것보다는 변동성 지표.

  7. 부분 수익 획득: 계단형 수익 전략을 구현하여, 특정 수익 수준을 달성 한 후 중지 손실 또는 부분 평점 포지션을 이동하여 수익의 일부를 잠금하고 나머지 포지션을 더 큰 상황을 추적 할 수 있습니다.

요약하다

뉴욕 유동성 역전 거래량 전략은 명확하고 논리적으로 명확한 일일 거래 시스템으로, 뉴욕 거래 시간 동안 중요한 가격 수준에서 유동성 돌파구를 포착한 후의 역전 기회를 포착하는 데 초점을 맞추고 있습니다. 전략은 시간 필터링, 유동성 분석 및 가격 행동을 확인하는 것을 결합하여 비교적 튼튼한 거래 프레임워크를 구축합니다. 주요 장점은 명확한 시장 논리, 엄격한 위험 제어 및 여러 확인 메커니즘이지만, 동시에 가짜 돌파구 위험 및 고정 매개 변수 제한 등의 도전에 직면합니다.

제안된 방향의 최적화, 특히 동적 스톱 메커니즘, 다중 시간 프레임 분석 및 시장 구조 통합을 통해 이 전략은 성능과 적응력을 더욱 향상시킬 잠재력을 가지고 있습니다. 이 전략은 개인 위험 선호와 시장 관점에 따라 사용자 정의 및 확장 할 수있는 가치있는 프레임 워크를 제공 합니다.

결국, 이 전략의 성공은 시장의 미시 구조에 대한 거래자의 이해와 전략의 매개 변수에 대한 지속적인 최적화에 달려 있습니다. 탄탄한 시장 지식과 규율적 인 실행을 결합하여 뉴욕 유동성 역전 전략은 거래자의 무기 상에 있는 효과적인 도구가 될 수 있습니다.

전략 소스 코드
/*backtest
start: 2025-07-16 00:00:00
end: 2025-07-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/

//@version=6
strategy("NY Liquidity Reversal - Debug Mode", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1, calc_on_order_fills=true, calc_on_every_tick=true)

// === User Inputs ===
sl_pips = input.int(10, "Stop Loss (pips)", minval=1)
rr_ratio = input.float(3.0, "Reward-to-Risk Ratio", minval=1.0)
tp_pips = sl_pips * rr_ratio
pip = syminfo.mintick * 10

// === Time Definitions ===
ny_start = timestamp("America/New_York", year, month, dayofmonth, 08, 00)
ny_end = timestamp("America/New_York", year, month, dayofmonth, 10, 30)
in_ny = (time >= ny_start and time <= ny_end)

// === Session Limiter ===
currentDay = dayofmonth + (month * 100) + (year * 10000)
var int lastTradeDay = na
canTradeToday = na(lastTradeDay) or (currentDay != lastTradeDay)

// === Previous Day High/Low ===
prevHigh = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
prevLow = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)

// === Simplified Engulfing Logic ===
bullishEngulf = close > open and close > close[1] and open <= close[1]
bearishEngulf = close < open and close < close[1] and open >= close[1]

// === Liquidity Sweep with Confirmation ===
sweepHigh = high > prevHigh and close < prevHigh
sweepLow = low < prevLow and close > prevLow

longCondition = in_ny and canTradeToday and sweepLow and bullishEngulf
shortCondition = in_ny and canTradeToday and sweepHigh and bearishEngulf

// === Trade Execution ===
if longCondition
    entryPrice = close
    stopLoss = entryPrice - sl_pips * pip
    takeProfit = entryPrice + tp_pips * pip
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", from_entry="Long", stop=stopLoss, limit=takeProfit)
    label.new(bar_index, low, text="BUY", style=label.style_label_up, color=color.green, textcolor=color.white)
    lastTradeDay := currentDay

if shortCondition
    entryPrice = close
    stopLoss = entryPrice + sl_pips * pip
    takeProfit = entryPrice - tp_pips * pip
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", from_entry="Short", stop=stopLoss, limit=takeProfit)
    label.new(bar_index, high, text="SELL", style=label.style_label_down, color=color.red, textcolor=color.white)
    lastTradeDay := currentDay

// === Visual References ===
plot(prevHigh, title="Prev Day High", color=color.red, linewidth=1)
plot(prevLow, title="Prev Day Low", color=color.green, linewidth=1)

// === Alerts ===
alertcondition(longCondition, title="Long Signal", message="BUY Setup Triggered")
alertcondition(shortCondition, title="Short Signal", message="SELL Setup Triggered")