Tài nguyên đang được tải lên... tải...

Chiến lược thoát khỏi khoảng cách giá trị hợp lý nhiều khung thời gian với kiểm tra hậu quả lịch sử

Tác giả:ChaoZhang, Ngày: 2025-01-17 14:45:10
Tags:FVGBOSHTFRRSL

 Multi-timeframe Fair Value Gap Breakout Strategy with Historical Backtest

Tổng quan chiến lược

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.

Nguyên tắc chiến lược

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ỗ.

Ưu điểm chiến lược

  1. Phân tích đa chiều: Kết hợp phân tích nhiều khung thời gian để tăng độ tin cậy tín hiệu.
  2. Quản lý rủi ro toàn diện: Các thiết lập rủi ro-lợi nhuận tích hợp và các cơ chế kiểm soát dừng lỗ đảm bảo quản lý rủi ro rõ ràng cho mỗi giao dịch.
  3. Phản hồi trực quan: Chiến lược cung cấp phản hồi trực quan rõ ràng bao gồm hiển thị hộp FVG và các dấu hiệu cơ hội thương mại tiềm năng.
  4. Khả năng thích nghi cao: Thông qua điều chỉnh tham số, chiến lược có thể thích nghi với các điều kiện thị trường và phong cách giao dịch khác nhau.

Rủi ro chiến lược

  1. Nguy cơ phá vỡ sai: Các thị trường có thể hiển thị các sự phá vỡ sai dẫn đến các tín hiệu giao dịch không chính xác.
  2. Sự chậm trễ tín hiệu: Do sử dụng dữ liệu khung thời gian cao hơn, có thể có sự chậm trễ tín hiệu.
  3. Rủi ro biến động thị trường: Trong thời gian biến động cao, sự hình thành FVG có thể không ổn định. Có thể được giải quyết bằng cách điều chỉnh thời gian quan sát FVG.

Hướng dẫn tối ưu hóa chiến lược

  1. Bộ lọc tín hiệu: Thêm cơ chế xác nhận âm lượng để xác nhận tín hiệu chỉ khi được hỗ trợ bởi âm lượng.
  2. Các thông số động: Điều chỉnh năng động tỷ lệ rủi ro-lợi nhuận và yếu tố dừng lỗ dựa trên sự biến động của thị trường.
  3. Trình lọc xu hướng: Thêm các chỉ số xác định xu hướng để chỉ có các vị trí theo hướng xu hướng.
  4. Bộ lọc thời gian: Thêm bộ lọc phiên giao dịch để tránh giao dịch trong thời gian thị trường bất lợi.

Tóm lại

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)


Có liên quan

Thêm nữa