가격 액션에 기반한 기관 거래자 전략

저자:차오장, 날짜: 2024-02-23 15:04:39
태그:

img

전반적인 설명

이 전략은 가격행위에 기반한 제도적 거래자 전략이라고 불린다. 이는 제도적 거래자가 사용하는 특정 거래 패턴을, 특히 특정 질서 블록을 중심으로 주문을 하는 경향이 있다. 이 전략은 시장 진입과 출구를 결정하기 위해 공정 가치, 유동성 및 가격 행동의 요소를 통합한다.

전략 논리

이 전략의 핵심은 과거에 중요한 제도적 거래 활동이 있었던 오더 블록 가격 영역을 식별하는 것입니다. 이러한 영역은 상당한 유동성과 관련이 있습니다. 오더 블록은 가격 구조를 사용하여 결정되며 종종 주요 기술 가격 수준과 관련이 있습니다.

적정한 가치는 이동 평균과 같은 지표에 기초한 도구의 합리적 가격으로 정의됩니다. 현재 가격이 적정한 가치에서 멀리 움직일 때 이것은 시장 불균형의 신호로 간주됩니다.

유동성은 또한 중요한 요소입니다. 기관 거래자는 유동성이 높은 지역에서 거래를 수행하는 경향이 있기 때문입니다.

전략은 간단한 이동 평균을 계산하여 적정한 가치를 결정합니다. 그 다음 20 기간의 잠재적인 주문 블록을 식별합니다. 닫기 가격과 적정한 가치 사이의 차이는 주문 블록 범위의 전체 높이의 38.2% 미만이라면 주문 블록이 결정됩니다.

올림 주문 블록은 구매 신호로 간주됩니다. 하락 명령 블록은 판매 신호로 간주됩니다.

이점 분석

이 전략의 주요 장점은 기관 거래자의 거래 패턴을 사용하여 더 기계적 인 지표 기반 전략을 능가 할 수 있습니다. 주문 흐름과 가치 영역을 관찰함으로써 여러 가지 유형의 분석을 결합합니다.

다른 장점으로는 다음과 같습니다.

  • 유동성 사용으로 더 나은 실행을 달성
  • 순서 흐름과 같은 쉽게 시각화 개념에 의존
  • 차트에서 순서 블록을 시각화하기 쉽습니다.
  • 블록 길이와 같은 매개 변수를 조정할 수 있는 유연성

위험 분석

이 전략은 또한 다음과 같은 잠재적 위험과도 직면합니다.

  • 과거 가격행동에 대한 판단에 의존하는 것
  • 주문 흐름이 없는 시장에서 제대로 작동하지 않을 수 있습니다.
  • 잘못된 신호를 일으킬 수 있습니다.
  • 단기적 추세를 놓칠 수 있습니다.

이러한 위험을 완화하기 위해 다음을 고려하는 것이 좋습니다.

  • 거짓 신호를 필터링하기 위해 다른 지표와 결합
  • 블록 길이와 같은 매개 변수를 조정
  • 거래용으로 발행된 신호를 필터링하는 것

최적화 방향

다음은 전략에 대한 몇 가지 잠재적 인 최적화입니다:

  1. 블록 길이와 적정 가치 오차 비율과 같은 주요 매개 변수 값을 테스트하고 최적화합니다.
  2. 품질 향상을 위해 추가 지표와 필터를 추가합니다.
  3. 스톱 로스 및 영업 메커니즘을 구축
  4. 주문서 활동과 같은 더 많은 데이터 소스를 포함
  5. 다른 기간 (내일, 여러일 등) 과 시장에서 안정성을 테스트합니다.
  6. 신호 필터에 기계 학습 예측을 추가

요약

요약하자면, 전략은 제도적 거래자의 행동을 활용하는 독특한 접근 방식을 제공합니다. 여러 요소를 혼합하고 특정 장점을 가지고 있습니다. 그러나 대부분의 거래 전략과 마찬가지로 시장 조건이 변화하거나 예상치 못한 가격 행동이 발생하면 위험도 있습니다. 지속적인 테스트, 최적화 및 위험 관리로 전략은 귀중한 양적 거래 도구가 될 수 있습니다.


/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ICT Strategy", overlay=true)

// Input variables
length = input.int(20, minval=1, title="Order Block Length")
fairValuePeriod = input.int(60, minval=1, title="Fair Value Period")

// Calculate fair value
fairValue = ta.sma(close, fairValuePeriod)

// Determine order blocks
isOrderBlock(high, low) =>
    highestHigh = ta.highest(high, length)
    lowestLow = ta.lowest(low, length)
    absHighLowDiff = highestHigh - lowestLow
    absCloseFairValueDiff = (close - fairValue)
    (absCloseFairValueDiff <= 0.382 * absHighLowDiff)

isBuyBlock = isOrderBlock(high, low) and close > fairValue
isSellBlock = isOrderBlock(high, low) and close < fairValue

// Plot fair value and order blocks
plot(fairValue, color=color.blue, title="Fair Value")
plotshape(isBuyBlock, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(isSellBlock, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy logic
if (isBuyBlock)
    strategy.entry("Buy", strategy.long)
    
if (isSellBlock)
    strategy.entry("Sell", strategy.short)


더 많은