Chiến lược này là một hệ thống giao dịch toàn diện kết hợp phân tích nhiều khung thời gian, Khoảng cách giá trị hợp lý (FVG) và Phá vỡ cấu trúc (BOS). Nó xác định các mục giao dịch tiềm năng bằng cách phát hiện sự đột phá cấu trúc trong các khung thời gian cao hơn trong khi tìm kiếm các cơ hội khoảng cách giá trị hợp lý trong các khung thời gian thấp hơn. Chiến lược cũng kết hợp hệ thống quản lý rủi ro với cài đặt dừng lỗ và lấy lợi nhuận tự động.
Lý thuyết cốt lõi được xây dựng trên ba trụ cột chính: Thứ nhất, nó sử dụng khung thời gian cao hơn (thất định 1 giờ hoặc cao hơn) để xác định Break of Structure (BOS), cung cấp khung cơ bản cho hướng giao dịch. Thứ hai, nó tìm kiếm Khoảng cách giá trị hợp lý (FVG) trên các khung thời gian thấp hơn, chỉ ra sự mất cân bằng nguồn cung-nhu cầu tiềm ẩn trong các khu vực đó. Cuối cùng, nó kết hợp các điều kiện này với vị trí giá hiện tại để kích hoạt tín hiệu giao dịch khi giá ở vị trí thuận lợi. Hệ thống quản lý rủi ro thông qua tỷ lệ rủi ro-lợi nhuận và các yếu tố dừng lỗ.
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua việc sử dụng toàn diện phân tích nhiều khung thời gian, sự đột phá cấu trúc giá và khoảng cách giá trị hợp lý.
/*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)