다중 지역 SMC 이론을 기반으로 한 지능형 추세 추적 전략

SMA SMC OB EQ
생성 날짜: 2024-11-29 15:38:01 마지막으로 수정됨: 2024-11-29 15:38:01
복사: 0 클릭수: 527
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 지역 SMC 이론을 기반으로 한 지능형 추세 추적 전략

개요

이 전략은 스마트 펀드 개념 (SMC) 이론을 기반으로 50주기 간단한 이동 평균 (SMA) 및 주문 블록 (Order Blocks) 분석과 결합하여 균형 지역 (Equilibrium), 프리미엄 지역 (Premium) 및 할인 지역 (Discount) 을 세 가지 핵심 가격 영역으로 나누고 전체적인 트렌드 추적 거래 시스템을 구성합니다. 전략은 시장 구조의 핵심 지지점과 저항점을 식별하여 서로 다른 지역 간의 가격 변동에서 거래 기회를 포착합니다.

전략 원칙

전략의 핵심 논리에는 다음과 같은 핵심 요소가 포함됩니다.

  1. 최근 8 K 선의 변동 고점과 저점을 계산하여 시장의 변동 범위를 결정한다.
  2. 변동의 높고 낮은 중간값을 평형구역으로, 평형구역보다 높이는 부가가치구역으로, 평형구역보다 낮은 부가가치구역으로 정의한다.
  3. 50주기 SMA를 사용하여 전체적인 트렌드 방향을 판단합니다. 가격은 SMA 위의 다면 트렌드로 간주되며, 반대로 공중 트렌드로 간주됩니다.
  4. 하락 가격대에서 가격이 SMA에 서면 구매 신호가 발생하고, 상향 가격대에서 가격이 SMA 아래로 내려가면 판매 신호가 발생한다.
  5. 거래 신호를 확인하기 위해 20 K 라인의 최고 가격과 최저 가격을 분석하여 주문 블록을 식별합니다.
  6. 유동성 영역으로 변동성 높고 낮은 지점을 표시하고, 가능한 가격 반전 지점을 예측한다.

전략적 이점

  1. 구조화된 지역 분할 방식, 시장의 단계에 대한 명확한 지정을 가능하게 한다.
  2. 다중 신호 확인 메커니즘, 지역, 트렌드 및 주문 블록 삼중 검증을 통해 거래 정확성을 향상한다.
  3. 동적으로 시장 변화에 적응하고, 실시간으로 중요한 가격 수준을 업데이트한다.
  4. 완전한 위험 관리 시스템, 스톱 로즈 및 포지션 관리 포함.
  5. 코드는 간결하고 효율적이며, 유지보수 및 최적화가 쉽다.

전략적 위험

  1. 파동이 심한 시장에서는 가짜 브레이크 신호가 발생할 수 있습니다.
  2. 역사적인 데이터에 의존하는 지표는 시장의 급격한 전환에 뒤쳐질 수 있습니다.
  3. 고정 주기 이동 평균은 모든 시장 환경에 적용되지 않을 수 있다.
  4. 위험을 통제하기 위해 합리적인 스톱 로즈 설정이 필요합니다. 위험 관리를 위해 다음과 같은 조치가 권장됩니다.
  • 다른 시장 환경에 맞춰 변수를 동적으로 조정
  • 파동율 필터를 증가시킨다
  • 엄격한 자금 관리 규칙을 적용합니다.
  • 주기적으로 재검토하고 최적화 전략 매개 변수

전략 최적화 방향

  1. 적응 변수를 입력하세요:
  • 시장의 변동에 따라 동적으로 조정된 지역 범위
  • 자기 적응 주기를 이용한 이동 평균
  1. 신호를 강화하는 필터:
  • 볼륨 확인 메커니즘 추가
  • 동력 지표 보조 판단 도입
  1. 위험 관리 개선:
  • 동적 손절매 메커니즘 구현
  • 포지션 관리 알고리즘 최적화
  1. 집행의 효율성을 높여라:
  • 최적화된 컴퓨팅 로직으로 자원 소모를 줄일 수 있습니다.
  • 신호 생성 메커니즘을 개선하여 응답 속도를 높인다.

요약하다

이 전략은 지능화된 지역 분할 및 다중 신호 확인 메커니즘을 통해 안정적인 트렌드 추적 시스템을 구축한다. 전략의 핵심 장점은 명확한 시장 구조 분석 방법과 완벽한 위험 관리 시스템이다. 지속적인 최적화 및 개선으로 전략은 다양한 시장 환경에서 안정적인 성능을 유지할 것으로 예상된다.

전략 소스 코드
/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@version=5
strategy("SMC Strategy with Premium, Equilibrium, and Discount Zones", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Instellingen voor Swing High en Swing Low ===
swingHighLength = input.int(8, title="Swing High Length")
swingLowLength = input.int(8, title="Swing Low Length")

// Vind de recente swing highs en lows
var float swingHigh = na
var float swingLow = na

if (ta.highestbars(high, swingHighLength) == 0)
    swingHigh := high

if (ta.lowestbars(low, swingLowLength) == 0)
    swingLow := low

// Bereken Equilibrium, Premium en Discount Zones
equilibrium = (swingHigh + swingLow) / 2
premiumZone = swingHigh
discountZone = swingLow

// Plot de zones op de grafiek
plot(equilibrium, title="Equilibrium", color=color.blue, linewidth=2)
plot(premiumZone, title="Premium Zone (Resistance)", color=color.red, linewidth=1)
plot(discountZone, title="Discount Zone (Support)", color=color.green, linewidth=1)

// === Simple Moving Average om trendrichting te bepalen ===
smaLength = input.int(50, title="SMA Length")
sma = ta.sma(close, smaLength)
plot(sma, title="SMA", color=color.orange)

// === Entry- en Exitregels op basis van zones en trendrichting ===

// Koop- en verkoopsignalen
buySignal = close < equilibrium and close > discountZone and close > sma // Prijs in discount zone en boven SMA
sellSignal = close > equilibrium and close < premiumZone and close < sma // Prijs in premium zone en onder SMA

// Order Blocks (Eenvoudig: hoogste en laagste kaars binnen de laatste 20 kaarsen)
orderBlockLength = input.int(20, title="Order Block Length")
orderBlockHigh = ta.highest(high, orderBlockLength)
orderBlockLow = ta.lowest(low, orderBlockLength)

// Koop- en verkoopsignalen met order block bevestiging
buySignalOB = buySignal and close >= orderBlockLow // Koop in discount zone met ondersteuning van order block
sellSignalOB = sellSignal and close <= orderBlockHigh // Verkoop in premium zone met weerstand van order block

// === Uitvoeren van Trades ===
if (buySignalOB)
    strategy.entry("Buy", strategy.long)
    
if (sellSignalOB)
    strategy.entry("Sell", strategy.short)

// === Plots voor visuele feedback ===
plotshape(buySignalOB, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignalOB, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === Liquiditeitsjachten aangeven ===
// Simpel: markeer recente swing highs en lows als liquiditeitszones
liquidityZoneHigh = ta.valuewhen(high == swingHigh, high, 0)
liquidityZoneLow = ta.valuewhen(low == swingLow, low, 0)

// Markeer liquiditeitszones
plot(liquidityZoneHigh, title="Liquidity Zone High", color=color.red, linewidth=1, style=plot.style_cross)
plot(liquidityZoneLow, title="Liquidity Zone Low", color=color.green, linewidth=1, style=plot.style_cross)