
이 전략은 여러 시간대 분석, 공정가치 갭(FVG), 구조 돌파(BOS)를 결합한 포괄적인 거래 시스템입니다. 이 방법은 상위 시간대에서 가격 구조의 돌파구를 식별하여 잠재적인 거래 진입 가능성을 파악하고, 하위 시간대에서 적정 가치 갭이 형성되는지 살펴봅니다. 이 전략에는 손절매 및 수익 목표를 자동으로 설정하는 등의 위험 관리 시스템도 통합되어 있습니다.
이 전략의 핵심 논리는 세 가지 주요 기둥 위에 구축됩니다. 첫째, 더 높은 시간 프레임(기본적으로 1시간 이상)을 사용하여 가격 구조(BOS)의 돌파구를 찾고, 이를 통해 거래 방향에 대한 기본 프레임워크를 제공합니다. 둘째, 더 낮은 시간 프레임에서 공정 가치 갭(FVG)을 찾아보세요. FVG가 형성되면 이 지역에서 시장에 잠재적인 공급과 수요 불균형이 있음을 나타냅니다. 마지막으로, 이 두 가지 조건이 현재 가격 위치와 결합되어 가격이 유리한 위치에 있을 때 거래 신호가 발생합니다. 이 시스템은 위험-보상 비율과 손절매 비율을 통해 각 거래의 위험을 관리합니다.
이 전략은 여러 기간 분석, 가격 구조 돌파구, 공정 가치 갭을 결합하여 완전한 거래 시스템을 구축합니다. 이 기술의 장점은 다차원적 분석 방법과 완벽한 위험 관리 메커니즘을 갖추고 있다는 점이지만, 거래자는 여전히 실제 시장 상황에 따라 적절한 매개변수 최적화와 위험 관리를 수행해야 합니다. 이후의 최적화는 신호 확인, 동적 매개변수 조정, 시장 환경 필터링부터 시작하여 전략의 안정성과 신뢰성을 더욱 향상시킬 수 있습니다.
/*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)