기관 주문 블록과 피보나치 수정을 기반으로 한 정확한 일일 거래 전략

ATR RSI FIBONACCI OB RR 15分钟模型 日内交易
생성 날짜: 2025-04-30 11:21:41 마지막으로 수정됨: 2025-04-30 11:21:41
복사: 6 클릭수: 604
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

기관 주문 블록과 피보나치 수정을 기반으로 한 정확한 일일 거래 전략 기관 주문 블록과 피보나치 수정을 기반으로 한 정확한 일일 거래 전략

전략 개요

기관 주문 블록과 피보나치 회수 기반의 정밀 일일 거래 전략은 미국 주식 시장에 특별히 설계된 고 정밀 일일 거래 시스템이며, 특히 15 분 시간 프레임에 대해 최적화되어 있다. 이 전략은 기관 주문 흐름 개념과 피보나치 회수 원리를 결합하여 높은 확률의 가격 반전 지점을 식별하는 동시에 엄격한 위험 관리와 거래 시간 기준 규칙을 시행한다.

이 전략의 핵심은 기관 자금의 주문 영역을 식별하고 61.8% 또는 79%의 피보나치 회수 수준을 활용하여 최적의 입문 지점을 찾는 것입니다. 정지 지점의 돌파를 기다리는 것으로 전략은 잠재적인 가격 반전을 확인하여 더 신뢰할 수있는 거래 신호를 제공합니다. 엄격한 시간 필터는 전략이 9:30-16:00 EST 사이에만 거래되도록 보장하고 16:30에 모든 포지션을 강제 평준화하여 야간 위험을 효과적으로 방지합니다.

전략 원칙

이 전략의 핵심 원칙은 기관의 주문 흐름과 가격 구조를 식별하는 데 기반을 두고 있으며, 구체적인 운영 메커니즘은 다음과 같습니다.

  1. 강력한 펄스 이동 인식전략: 우선 가격 구조의 돌파구를 찾아서 강력한 펄스 움직임을 식별한다. 가격이 5K선 주기 동안 변동이 형성되고 변동의 폭이 ATR ((14) 을 초과하면 최소 변동 크기의 곱셈으로 시스템에서 유효한 변동 고도 또는 낮은 점을 확인한다.

  2. 주문 블록 표기: 흔들림 지점을 확인한 후, 전략은 기관 주문 지역을 표기한다. 흔들림 낮은 지점이 형성되었을 때, 그 지점의 가격 수준은 보이스 주문 블록으로 표기된다. 흔들림 높은 지점이 형성되었을 때, 그 지점의 가격 수준은 보이스 주문 블록으로 표기된다.

  3. 피보나치가 확인을 철회했습니다.전략은 가격이 61.8% 또는 79%의 피보나치 수준으로 회수되어야 한다고 요구합니다. 이 수준은 높은 점과 낮은 점의 회전을 계산하여 얻습니다. 가격이 이러한 중요한 수준으로 회수되면 전략은 진입 신호를 찾기 시작합니다.

  4. 시간 필터: 모든 거래 활동은 미국 동부 시간 9:30에서 16:00 사이에 이루어져야 하며, 이는 시장이 가장 활발하고 유동성이 가장 좋은 시간 동안 전략이 작동하도록 보장합니다. 16:00 이후에는 새로운 포지션을 열지 않으며, 16: 30에 모든 포지션을 필리핀합니다.

  5. 입국 확인

    • 다중 입시: 가격이 보잉 주문 블록을 접촉하고, 종료 가격이 61.8% 또는 79%의 피보나치 레벨보다 높을 때, 시스템은 다중 입시 신호를 냅니다.
    • 공허 입시: 가격이 하향 주문 블록을 만지고, 종결 가격이 61.8% 또는 79%의 피보나치 수준보다 낮을 때, 시스템은 공허 신호를 냅니다.
  6. 위험 관리 메커니즘전략: ATR ((14) 를 사용하여 스톱 로스 지점을 설정하여 위험을 합리적인 범위 내에서 제어하도록하십시오. 다중 거래의 스톱 로스는 최근 하락점 아래, 공백 거래의 스톱 로스는 최근 고점 위입니다.

  7. 고정 리스크 리터드 비율: 전략은 기본으로 2:1의 리스크 수익률을 사용하며, 이것은 ATR ((14) 을 리스크 수익률 변수로 곱하여 계산하여 얻을 수 있습니다.

전략적 이점

이 전략 코드를 더 깊이 분석하면 다음과 같은 중요한 장점을 찾을 수 있습니다.

  1. 기관의 행동에 기반한 거래 논리이 전략은 기관의 주문 블록과 유동성 청소를 식별함으로써 대금의 이동 방향을 따라가며 거래의 성공 가능성을 높일 수 있습니다.

  2. 정확한 시간 관리엄격한 거래 시간 제한은 전략이 시장이 가장 활발한 시간 동안만 작동하도록 보장하며, 유동성이 낮은 시간 동안 발생할 수 있는 미끄러짐과 변동의 위험을 피합니다.

  3. 강제 청산 메커니즘매일 16:30의 의무 적위 규칙은 야간 지위 위험을 효과적으로 방지하고, 특히 하루 동안 변동이 많은 시장에 특히 중요합니다.

  4. 비주얼 트레이딩 신호전략: 그래픽 인터페이스를 통해 거래 신호를 명확하게 표시합니다. 다면은 녹색 삼각형, 빈 부분은 빨간 삼각형으로 표시되어 거래자가 잠재적인 거래 기회를 신속하게 식별 할 수 있습니다.

  5. 동적 위험 관리ATR 기반의 중지 손해 설정은 시장의 변동성에 따라 위험 통제를 자동으로 조정할 수 있으며, 다양한 변동 환경에서 일관된 위험 노출을 제공합니다.

  6. 고도의 사용자 정의전략: 전략은 피보나치 레벨, 최소 변동 크기, 리스크 리터드 비율 등과 같은 여러 가지 중요한 매개 변수를 제공하여 거래자가 자신의 위험 선호도와 거래 스타일에 따라 개인화 된 설정을 할 수 있습니다.

  7. 엄격한 입학 조건: 여러 확인 요소를 조합하여 ((오더 블록, 피보나치 레벨, 유효 거래 시간), 전략은 잘못된 신호를 효과적으로 줄이고 거래 품질을 향상시킵니다.

전략적 위험

이 전략은 여러 장점이 있지만, 몇 가지 잠재적 위험과 도전이 있습니다.

  1. 과대 최적화 위험전략은 피보나치 레벨, ATR 곱 등과 같은 여러 정밀한 파라미터 설정에 의존하고 있으며, 과잉 최적화의 위험이 있으며, 이는 샘플 외의 데이터에서 좋지 않은 성과를 초래합니다. 해결책은 충분히 긴 피드백 주기를 사용하여 다양한 시장 환경에서 전략의 안정성을 테스트하는 것입니다.

  2. 급속한 흐름의 위험: 강한 트렌드 시장에서 가격이 지정된 피보나치 수준으로 회수되지 않을 수 있으며, 잠재적인 유리한 트렌드를 놓치게 됩니다. 트렌드 추적 모듈을 추가하거나 피보나치 수준을 동적으로 조정하는 것을 고려하여 문제를 해결할 수 있습니다.

  3. 시간 제한으로 인한 차단 위험16:00 이후 새로운 포지션을 열지 않고 16:30 이후의 필수적 평형 규칙은 유리한 상황에서 퇴출을 강요하거나 불리한 가격으로 평형으로 강요 될 수 있습니다. 시장 상황과 포지션 손실 상태에 따라 더 유연한 평형 규칙을 도입하는 것이 고려 될 수 있습니다.

  4. 윙 포인트 인식의 지연전략: 역사 데이터를 사용해서 기동점을 식별하기 위해, 이는 신호가 지연되어 최적의 출전 시기를 놓치게 할 수 있다. 기동점 식별 알고리즘을 최적화하거나 신호의 시간효율을 개선하기 위해 다른 초기 지표를 도입하여 시도할 수 있다.

  5. 단일 시간 프레임 제한15분 시간 프레임만 사용하면 더 큰 또는 더 작은 시간 스케일의 중요한 시장 구조를 무시할 수 있습니다. 더 많은 시간 프레임 분석을 추가하는 것을 고려하면 더 포괄적인 시장 관점을 얻을 수 있습니다.

  6. 고정된 리스크/수익률의 한계: 일정한 2:1 리스크 수익률 설정은 모든 시장 환경에 적합하지 않을 수 있으며, 특히 변동성이 크게 변할 때. 시장의 변동성이나 지지 저항 수준에 따라 리스크 수익률을 조정하는 것이 고려 될 수 있습니다.

전략 최적화 방향

정책 코드의 심층적인 분석을 바탕으로 몇 가지 가능한 최적화 방향은 다음과 같습니다.

  1. 다중 시간 프레임 확인: 더 높은 시간 프레임을 도입 (예: 1 시간 또는 4 시간) 트렌드 확인, 하루 거래 방향이 더 큰 트렌드와 일치하도록 보장, 승률을 높여줍니다. 이러한 최적화는 높은 시간 프레임의 트렌드 지표 또는 가격 구조 분석을 추가하여 수행 할 수 있습니다.

  2. 파동적인 피보나치 수준: 시장의 변동성이나 현재 트렌드 강도에 따라 피보나치 회수 수준을 조정하는 요구. 강한 트렌드에서 더 은 회수 (예: 38.2%) 가 필요할 수 있으며, 흔들리는 시장에서는 더 깊은 회수가 (예: 61.8% 또는 79%) 가 필요할 수 있습니다.

  3. 시장 상태는 적응합니다.: 시장 상태 분류를 도입하고, 다른 시장 상태에 따라 전략 파라미터를 조정합니다. 예를 들어, 높은 변동성이있는 시장에서는 더 넓은 손실 설정을 필요로 할 수 있으며, 낮은 변동성이있는 시장에서는 더 좁은 손실을 사용하여 승률을 높일 수 있습니다.

  4. 일부 수익 잠금 메커니즘: 수익이 특정 수준에 도달했을 때 일부 포지션 평점 포지션을 도입합니다. 수익이 1R에 도달했을 때 평점 포지션의 50%를 보유합니다. 나머지 부분은 잠재적인 큰 트렌드 기회를 최대한 잡기 위해 스톱로스를 추적합니다.

  5. 변동 지표 필터: ATR의 변화율이나 볼린저 대역폭 지표와 같은 변동 지표를 추가하여 낮은 변동 환경의 거래 신호를 필터링하여 간격의 흔들림 시장에서 과도한 거래를 피하십시오.

  6. 거래량 확인거래량 분석을 추가 확인 요소로 도입하여 가격 변동이 충분한 거래량으로 뒷받침되고 신호의 신뢰성을 향상시킵니다.

  7. 기계 학습 강화: 기계 학습 알고리즘을 사용하여 역사 데이터의 주문 블록 및 피보나치 회수의 유효성을 분석하고 이에 따라 파라미터 설정을 최적화하거나 신호 필터를 강화합니다.

  8. 손해 방지 최적화현재 전략은 고정된 ATR 배수 세팅 스톱로스를 사용하며, 최근 가격 구조 (예: 최근 스윙 포인트) 를 사용하여 더 정확한 스톱로스 위치를 설정하여 자금을 보호하고 시장에서 조기 퇴출되는 것을 방지 할 수 있습니다.

요약하다

기관 주문 블록과 피보나치 회수 기반의 정밀한 일일 거래 전략은 기관 거래 행동 분석과 고전 기술 분석 도구를 결합하여 일일 거래자에게 명확한 입출장 규칙을 제공하는 체계화된 거래 방법을 나타냅니다.

이 전략의 가장 큰 장점은 기관의 주문 흐름을 식별하고 활용하는 데 있으며, 엄격한 시간 필터링과 위험 관리 규칙과 결합하여 미국 주식 시장의 일일 거래에 특히 적합합니다. 핵심 거래 개념은 가격 회귀를 찾는 데 초점을 맞추고 있습니다.

전략의 위험은 주로 변수 최적화와 시장 환경 적응성의 과제에서 비롯되지만, 이러한 위험은 여러 시간 프레임 확인, 동적 변수 조정 및 시장 상태 자체 적응과 같은 제안 된 최적화 방향을 통해 효과적으로 관리 및 완화 될 수 있습니다.

전반적으로, 이 전략은 기관 거래 행동에 대한 어느 정도의 이해가있는 거래자에게 적합한 견고한 일일 거래 프레임워크를 제공하며, 합리적인 매개 변수 설정과 최적화를 통해 다양한 시장 환경에서 안정적인 성능을 유지할 수 있습니다. 일일 시간 프레임워크에서 구조화된 거래 기회를 찾고자하는 거래자에게는 고려할 가치가있는 전략입니다.

전략 소스 코드
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-29 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Rawstocks 15-Minute Model", overlay=true, margin_long=100, margin_short=100, pyramiding=0)

// ===== TIME CONTROL ===== (UTC-4 = Eastern Time)
startHour = input(9, "Start Hour (ET)")
startMin = input(30, "Start Minute")
entryCutoffHour = input(16, "Last Entry Hour (ET)") // 4:00 PM
entryCutoffMin = input(0, "Last Entry Minute")
closeHour = input(16, "Force Close Hour (ET)") // 4:30 PM
closeMin = input(30, "Force Close Minute")

// Define session in UTC-4 (ET)
sessionStart = timestamp("UTC-4", year, month, dayofmonth, startHour, startMin)
entryCutoffTime = timestamp("UTC-4", year, month, dayofmonth, entryCutoffHour, entryCutoffMin)
forceCloseTime = timestamp("UTC-4", year, month, dayofmonth, closeHour, closeMin)

// ===== CORE STRATEGY =====
// Inputs
fib1 = input.float(61.8, "Fib Level (%)")
minSwingSize = input.float(1.0, "Min Swing Size (%)") / 100
rrRatio = input.float(2.0, "Risk/Reward")

// Swing Detection
swingHigh = ta.highest(high, 5) == high[2] and (high[2] - low[2]) >= ta.atr(14) * minSwingSize
swingLow = ta.lowest(low, 5) == low[2] and (high[2] - low[2]) >= ta.atr(14) * minSwingSize

// Order Blocks
var float bullOB = na
var float bearOB = na
if swingLow
    bullOB := low[2]
if swingHigh
    bearOB := high[2]

// Fib Levels
var float swingTop = na
var float swingBot = na
if swingHigh
    swingTop := high[2]
if swingLow
    swingBot := low[2]

fib618 = swingBot + (swingTop - swingBot) * (fib1/100)
fib79 = swingBot + (swingTop - swingBot) * 0.79

// Entry Conditions
longCond = not na(bullOB) and (low <= bullOB) and (close >= fib618 or close >= fib79)
shortCond = not na(bearOB) and (high >= bearOB) and (close <= fib618 or close <= fib79)

// Time Filter - No entries after 4:00 PM
validEntryTime = (time >= sessionStart) and (time <= entryCutoffTime)

// ===== EXECUTION =====
// Entries (only before 4:00 PM)
if (longCond and validEntryTime)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=low - ta.atr(14), limit=close + (ta.atr(14) * rrRatio))

if (shortCond and validEntryTime)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=high + ta.atr(14), limit=close - (ta.atr(14) * rrRatio))

// Force Close at 4:30 PM ET
var bool forceClosedToday = false
if (time >= forceCloseTime and time < forceCloseTime + 60000) and (not forceClosedToday)
    strategy.close_all("EOD Close @ 4:30PM")
    forceClosedToday := true

// Reset daily flag
if dayofmonth != dayofmonth[1]
    forceClosedToday := false

// ===== VISUALS =====
// Signal Triangles (gray if after entry cutoff)
plotshape(series=longCond, title="Long Signal", style=shape.triangleup, location=location.belowbar, 
     color=validEntryTime ? color.new(color.green, 0) : color.new(color.gray, 0), size=size.small)
plotshape(series=shortCond, title="Short Signal", style=shape.triangledown, location=location.abovebar, 
     color=validEntryTime ? color.new(color.red, 0) : color.new(color.gray, 0), size=size.small)

// Execution Markers
var float longEntryPrice = na
var float shortEntryPrice = na

if (strategy.position_size > 0 and strategy.position_size[1] <= 0)
    longEntryPrice := close
if (strategy.position_size < 0 and strategy.position_size[1] >= 0)
    shortEntryPrice := close

plot(series=longEntryPrice, title="Long Entry", style=plot.style_circles, linewidth=3, color=color.new(color.green, 0))
plot(series=shortEntryPrice, title="Short Entry", style=plot.style_circles, linewidth=3, color=color.new(color.red, 0))

// Force Close Marker
if (time >= forceCloseTime and time < forceCloseTime + 60000)
    label.new(
         bar_index, 
         high, 
         "4:30 PM Close", 
         style=label.style_label_down, 
         color=color.red, 
         textcolor=color.white
     )