리소스 로딩... 로딩...

역사적인 뒷검사를 가진 다중 시간 프레임 공정 가치 격차 분출 전략

저자:차오장, 날짜: 2025-01-17 14:45:10
태그:FVGBOSHTFRRSL

 Multi-timeframe Fair Value Gap Breakout Strategy with Historical Backtest

전략 개요

이 전략은 멀티 타임프레임 분석, 공정 가치 격차 (FVG), 구조의 깨짐 (BOS) 을 결합한 포괄적인 거래 시스템이다. 이 전략은 더 낮은 시간 프레임에서 공정 가치 격차 기회를 검색하면서 더 높은 시간 프레임에서 구조의 깨짐을 탐지함으로써 잠재적 인 거래 항목을 식별합니다. 이 전략에는 자동화 된 스톱 손실 및 영업 설정과 함께 리스크 관리 시스템이 포함되어 있습니다.

전략 원칙

핵심 논리는 세 가지 주요 기둥에 기반을 두고 있다. 첫째, 상거래 방향의 기본 틀을 제공하는 브레이크 오브 스트럭처 (BOS) 를 식별하기 위해 더 높은 시간 프레임 (디폴트 1시간 이상) 을 사용합니다. 둘째, 낮은 시간 프레임에서 공정 가치 격차 (FVG) 를 찾고, 해당 지역의 잠재적 인 공급-수요 불균형을 나타냅니다. 마지막으로, 가격은 유리한 위치에있을 때 현재 가격 위치와 이러한 조건을 결합하여 거래 신호를 유발합니다. 시스템은 위험-상금 비율 및 스톱-손실 요인을 통해 위험을 관리합니다.

전략적 장점

  1. 다차원 분석: 신호 신뢰성을 높이기 위해 여러 시간 프레임 분석을 결합합니다.
  2. 포괄적 리스크 관리: 내장된 리스크 보상 설정과 스톱 로스 제어 메커니즘은 각 거래에 대한 명확한 리스크 관리를 보장합니다.
  3. 시각적 피드백: 전략은 FVG 상자 표시 및 잠재적 인 무역 기회 표시를 포함한 명확한 시각적 피드백을 제공합니다.
  4. 높은 적응력: 매개 변수 조정을 통해 전략은 다른 시장 조건과 거래 스타일에 적응 할 수 있습니다.

전략 위험

  1. 가짜 브레이크업 위험: 시장은 잘못된 거래 신호로 이어지는 잘못된 브레이크업을 보일 수 있습니다. 해결책은 신호 확인 메커니즘을 추가하는 것입니다.
  2. 신호 지연: 더 높은 시간 프레임 데이터 사용으로 인해 신호 지연이 발생할 수 있습니다. 확인을 위해 다른 기술적 지표와 결합하는 것이 좋습니다.
  3. 시장 변동성 위험: 높은 변동성 기간 동안 FVG 형성은 안정적이지 않을 수 있습니다. FVG 관찰 길이를 조정하여 해결할 수 있습니다.

전략 최적화 방향

  1. 신호 필터링: 부피가 지원되는 경우에만 신호를 확인하기 위해 부피 확인 메커니즘을 추가합니다.
  2. 동적 매개 변수: 시장 변동성에 따라 위험/이익 비율과 스톱-러스 요인을 동적으로 조정합니다.
  3. 트렌드 필터링: 트렌드 식별 지표를 추가하여 트렌드 방향으로만 포지션을 취합니다.
  4. 시간 필터링: 불리한 시장 기간 동안 거래를 피하기 위해 거래 세션 필터를 추가합니다.

요약

이 전략은 멀티 타임프레임 분석, 가격 구조 브레이크아웃 및 공정 가치 격차의 포괄적 인 사용을 통해 완전한 거래 시스템을 구축합니다. 그것의 강점은 다차원 분석 접근법과 포괄적인 위험 관리 메커니즘에 있습니다. 그러나 거래자는 여전히 실제 시장 조건에 따라 매개 변수를 최적화하고 위험을 제어해야합니다. 추가 최적화는 신호 확인, 동적 매개 변수 조정 및 시장 환경 필터링에 집중하여 전략 안정성과 신뢰성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

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

// === Настройки ===
tf = input.timeframe("60", title="Higher Timeframe (1H or above)")  // Таймфрейм для анализа BOS
fvg_length = input(3, title="FVG Lookback Length")                   // Длина для поиска FVG
risk_reward = input(2, title="Risk-Reward Ratio")                    // Риск-вознаграждение
show_fvg_boxes = input(true, title="Show FVG Boxes")                 // Показывать FVG
stop_loss_factor = input.float(1.0, title="Stop Loss Factor")         // Множитель для стоп-лосса

// === Переменные для анализа ===
var float bos_high = na
var float bos_low = na

// Получаем данные с более старшего таймфрейма
htf_high = request.security(syminfo.tickerid, tf, high)
htf_low = request.security(syminfo.tickerid, tf, low)
htf_close = request.security(syminfo.tickerid, tf, close)

// Определение BOS (Break of Structure) на старшем таймфрейме
bos_up = ta.highest(htf_high, fvg_length) > ta.highest(htf_high[1], fvg_length)
bos_down = ta.lowest(htf_low, fvg_length) < ta.lowest(htf_low[1], fvg_length)

// Обновляем уровни BOS
if (bos_up)
    bos_high := ta.highest(htf_high, fvg_length)
if (bos_down)
    bos_low := ta.lowest(htf_low, fvg_length)

// === Определение FVG (Fair Value Gap) ===
fvg_up = low > high[1] and low[1] > high[2]
fvg_down = high < low[1] and high[1] < low[2]

// Визуализация FVG (Fair Value Gap)
// if (show_fvg_boxes)
//     if (fvg_up)
//         box.new(left=bar_index[1], top=high[1], right=bar_index, bottom=low, bgcolor=color.new(color.green, 90), border_color=color.green)
//     if (fvg_down)
//         box.new(left=bar_index[1], top=high, right=bar_index, bottom=low[1], bgcolor=color.new(color.red, 90), border_color=color.red)

// === Логика сделок ===
// Условия для входа в Лонг
long_condition = bos_up and fvg_up and close < bos_high
if (long_condition)
    strategy.entry("Long", strategy.long, stop=low * stop_loss_factor, limit=low + (high - low) * risk_reward)

// Условия для входа в Шорт
short_condition = bos_down and fvg_down and close > bos_low
if (short_condition)
    strategy.entry("Short", strategy.short, stop=high * stop_loss_factor, limit=high - (high - low) * risk_reward)

// === Надписи для прогнозируемых сделок ===
if (long_condition)
    label.new(bar_index, low, text="Potential Long", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

if (short_condition)
    label.new(bar_index, high, text="Potential Short", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)


관련

더 많은