다단계 기관 주문 흐름 정량적 전략 및 동적 창고 최적화 시스템

PCT VOL MA OB
생성 날짜: 2024-12-27 15:01:36 마지막으로 수정됨: 2024-12-27 15:01:36
복사: 1 클릭수: 519
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다단계 기관 주문 흐름 정량적 전략 및 동적 창고 최적화 시스템

개요

이 전략은 시장에서 주문 블록을 식별하여 잠재적인 가격 반전 지점을 예측하는 기관 주문 흐름에 기초한 지능형 거래 시스템입니다. 이 시스템은 3단계 목표 포지션을 통한 포지션 관리를 최적화하고 수익을 극대화하기 위해 동적 하부 창고 관리 솔루션을 채택합니다. 전략의 핵심은 기관 거래 행동에 의해 생성된 가격 추적을 포착하고 최고점과 최저점에 대한 통계적 분석을 통해 중요한 가격 수준을 식별하는 것입니다.

전략 원칙

이 전략은 몇 가지 핵심 요소를 기반으로 합니다.

  1. 주문 블록 식별 - 20기간의 추적 창을 사용하여 촛대 패턴을 분석하여 매수 및 매도 주문 블록을 식별합니다. 매수 블록은 이전 하락 캔들과 현재 상승 캔들의 협력으로 확인되는 반면, 매도 블록의 경우는 그 반대입니다.
  2. 거래 시간 관리 - 거래를 주거래 시간인 09:30~16:00로 제한하고 변동성이 높은 개장 및 마감 시간은 피합니다.
  3. 진입 로직 - 가격이 매수 주문 블록을 돌파하고 거래 세션 내에 있으면 롱 포지션을 열고, 가격이 매도 주문 블록을 돌파하면 숏 포지션을 엽니다.
  4. 창고 관리 - 50%-30%-20%의 3단계 창고 관리 계획을 채택하여 각각 0.5%, 1.0%, 1.5%의 목표 위치에 대응합니다.

전략적 이점

  1. 지능형 주문 식별 - 동적 고점 및 저점 분석을 통해 대형 펀드가 포지션을 개시하고 마감할 주요 가격 포인트를 정확하게 파악합니다.
  2. 위험 분산 - 3단 창고 설계는 위험을 효과적으로 분산하여 수익을 안전하게 보관하는 동시에 추세가 발전할 수 있는 충분한 여지를 제공합니다.
  3. 시간 필터링 - 거래 시간을 제한함으로써 시장 변동성이 높은 기간을 피하고 거래의 안정성을 향상할 수 있습니다.
  4. 시각화 지원 - 이 전략은 주문 블록을 명확하게 시각화하여 트레이더가 시장 구조를 더 쉽게 이해할 수 있도록 해줍니다.

전략적 위험

  1. 거짓 브레이크아웃 위험 - 횡보 시장에서는 여러 개의 거짓 브레이크아웃 신호가 있을 수 있습니다. 변동성 지표와 함께 필터링하는 것이 좋습니다.
  2. 슬리피지 영향 - 유동성이 부족한 시장에서 분할 이익 실현은 슬리피지의 영향을 받을 수 있습니다. 목표 포지션 간격을 적절히 조정하는 것이 좋습니다.
  3. 추세 의존성 - 이 전략은 추세가 있는 시장에서 더 나은 성과를 거두지만, 변동성이 큰 시장에서는 빈번한 거래가 발생할 수 있습니다.

전략 최적화 방향

  1. 변동성 적응 - 시장 변동에 따라 목표 비율을 동적으로 조정하기 위해 ATR 지표를 도입하는 것이 좋습니다.
  2. 주문 흐름 분석 - 주문 블록의 확인을 높이기 위해 볼륨 분석과 결합할 수 있습니다.
  3. 동적 시간 창 - 전략의 적응성을 개선하기 위해 시장 상황에 따라 추적 기간을 동적으로 조정하는 것을 고려하세요.
  4. 강화된 위험 관리 - 전략의 견고성을 개선하기 위해 최대 인출 한도와 일일 손실 한도가 추가되었습니다.

요약하다

이 전략은 기관 주문 흐름 분석과 역동적인 창고 관리를 통해 완전한 거래 시스템을 구축합니다. 주문 블록을 식별하고 다단계 손익 중단 설정을 통해 대규모 자본 운영에 대한 기회를 포착하고 효과적인 위험 관리를 달성할 수 있습니다. 실제 거래에서는 거래자가 시장 환경 선택에 주의를 기울이고 특정 상황에 맞게 매개변수 설정을 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=6
strategy("Institutional Order Flow Strategy", overlay=true)

// Input settings
inputSession = input("0930-1600", "Trading Session") // Trading session
lookbackPeriod = input.int(20, "Order Block Lookback Period", minval=1) // Lookback for Order Blocks
target1Pct = input.float(0.5, "Target 1 (% move)", step=0.1, minval=0.1) // First profit target
target2Pct = input.float(1.0, "Target 2 (% move)", step=0.1, minval=0.1) // Second profit target
target3Pct = input.float(1.5, "Target 3 (% move)", step=0.1, minval=0.1) // Third profit target

// Order Block identification
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
orderBlockBuy = ta.valuewhen(close[1] < open[1] and close > open, highestHigh, 0)
orderBlockSell = ta.valuewhen(close[1] > open[1] and close < open, lowestLow, 0)

// Entry logic
inSession = true
longCondition = close > orderBlockBuy and inSession
shortCondition = close < orderBlockSell and inSession

// Strategy entries
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Calculate targets for scaling out
longTarget1 = strategy.position_avg_price + strategy.position_avg_price * target1Pct / 100
longTarget2 = strategy.position_avg_price + strategy.position_avg_price * target2Pct / 100
longTarget3 = strategy.position_avg_price + strategy.position_avg_price * target3Pct / 100

shortTarget1 = strategy.position_avg_price - strategy.position_avg_price * target1Pct / 100
shortTarget2 = strategy.position_avg_price - strategy.position_avg_price * target2Pct / 100
shortTarget3 = strategy.position_avg_price - strategy.position_avg_price * target3Pct / 100

// Exit logic with scaling out
if strategy.position_size > 0
    strategy.exit("Target 1", from_entry="Long", limit=longTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Long", limit=longTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Long", limit=longTarget3, qty_percent=20)

if strategy.position_size < 0
    strategy.exit("Target 1", from_entry="Short", limit=shortTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Short", limit=shortTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Short", limit=shortTarget3, qty_percent=20)

// Visualize Order Blocks
plot(orderBlockBuy, "Order Block Buy", color=color.green, linewidth=2, style=plot.style_line)
plot(orderBlockSell, "Order Block Sell", color=color.red, linewidth=2, style=plot.style_line)