
Chiến lược giao dịch trong ngày bằng khoảng cách giá trị công bằng động là một hệ thống giao dịch định lượng dựa trên lý thuyết cấu trúc thị trường, tập trung vào việc xác định và giao dịch khoảng cách giá trị công bằng trong giá (Fair Value Gap, viết tắt là FVG). Chiến lược này sử dụng ba hình thức dây chuyền để phát hiện sự mất cân bằng cung cầu trong hành vi giá cả và giao dịch vào các khu vực này khi giá cả được đánh giá. Chiến lược này quản lý rủi ro bằng tỷ lệ lợi nhuận rủi ro cố định và thiết lập một cơ chế cân bằng bắt buộc vào một thời gian nhất định mỗi ngày để tránh rủi ro qua đêm.
Các nguyên tắc cốt lõi của chiến lược giao dịch lỗ hổng giá trị công bằng dựa trên “khu vực chưa giao dịch” hoặc “lỗ hổng” mà giá cả để lại khi di chuyển nhanh. Những khu vực này đại diện cho sự mất cân bằng nghiêm trọng giữa cung và nhu cầu, thường sẽ được “lấp đầy” hoặc “thử lại” trong tương lai. Cụ thể, chiến lược hoạt động theo cách sau:
Cơ chế phát hiện lỗ hổngChiến lược sử dụng mô hình ba sợi dây để xác định hai loại FVG:
Lập logic phản hồiChiến lược này sẽ không bắt đầu ngay khi FVG được hình thành, mà sẽ chờ đợi giá phản hồi ở các khu vực sau:
Quản lý rủi ro:
Hậu quả cuối ngàyChiến lược: Tự động thanh toán tất cả các vị trí nắm giữ và xóa tất cả các mảng FVG vào lúc 3:15 chiều (giờ Ấn Độ) để chuẩn bị cho ngày giao dịch tiếp theo.
Giao dịch chồng lên nhauChiến lược cho phép giao dịch chồng lên nhau tối đa 5 lần (pyramiding), có nghĩa là có thể giữ nhiều vị trí theo cùng một hướng, từ đó tăng lợi nhuận trong thị trường có xu hướng mạnh.
Phương pháp này sử dụng lý thuyết về sự không liên tục trong cấu trúc thị trường và hành vi giá để cố gắng nắm bắt hành vi có thể dự đoán được của giá khi lấp đầy các khu vực không cân bằng.
Sau khi phân tích mã kỹ lưỡng, chiến lược này đã cho thấy một số lợi thế:
Tiêu chuẩn giao dịch khách quanChiến lược sử dụng các điều kiện toán học được xác định rõ ràng để xác định FVG và điểm vào, loại bỏ phán đoán chủ quan, tăng kỷ luật giao dịch và tính thống nhất.
Giao dịch dựa trên cấu trúc thị trườngBằng cách giao dịch lỗ hổng giá trị công bằng, chiến lược này tập trung vào các khu vực không cân bằng cung cầu thực sự trong thị trường, thay vì dựa vào các tín hiệu của các chỉ số truyền thống, các tín hiệu này thường bị tụt lại sau hành vi giá cả.
Cơ chế kiểm soát rủi ro:
Tiềm năng thu nhập tổng hợp: Bằng cách cho phép giao dịch chồng lên nhau (tối đa 5 vị trí), chiến lược có thể tăng lợi nhuận đáng kể trong thị trường xu hướng mạnh, đồng thời kiểm soát rủi ro cho mỗi vị trí bằng cách dừng lỗ.
Khả năng thích ứngChiến lược không phụ thuộc vào mức giá cố định, mà là động xác định các khu vực quan trọng trong điều kiện thị trường hiện tại, làm cho nó có thể thích ứng trong các môi trường và công cụ thị trường khác nhau.
Hiệu quả lập trình: Mã sử dụng các mảng để lưu trữ thông tin FVG và quản lý hiệu quả nhiều cơ hội giao dịch tiềm năng, đảm bảo hệ thống có thể theo dõi và đáp ứng nhiều mức giá.
Hỗ trợ hình ảnhChiến lược: hiển thị trực quan các vùng FVG trên biểu đồ ((xanh là FVG lạc quan, đỏ là FVG giảm giá), giúp các nhà giao dịch hiểu được quá trình ra quyết định của hệ thống.
Mặc dù chiến lược này có cơ sở lý thuyết vững chắc và nhiều ưu điểm, nhưng cũng có một số yếu tố rủi ro cần lưu ý:
Rủi ro đột phá giảTrong thị trường tổng hợp, giá có thể chạm nhiều lần vào biên giới FVG mà không tạo ra xu hướng liên tục, dẫn đến nhiều lần dừng lỗ. Giải pháp có thể bao gồm thêm bộ lọc môi trường thị trường hoặc chỉ số xác nhận xu hướng.
Rủi ro giao dịch chồng lên nhau: Cho phép tối đa 5 vị trí đồng chiều có thể dẫn đến việc tiếp xúc quá mức theo hướng sai, đặc biệt là khi xu hướng đột ngột đảo ngược. Khuyến cáo thực hiện giới hạn rủi ro tổng thể, chẳng hạn như không cho tất cả các vị trí rủi ro tối đa vượt quá một tỷ lệ phần trăm cụ thể của tài khoản.
Hạn chế về tỷ lệ lợi nhuận rủi ro cố định: Sử dụng tỷ lệ lợi nhuận rủi ro cố định 1:2 có thể không phù hợp với tất cả các điều kiện thị trường. Trong thị trường có biến động thấp, mục tiêu như vậy có thể khó đạt được; Trong thị trường có biến động cao, có thể thoát khỏi giao dịch có lợi sớm.
Thiếu lọc môi trường thị trườngChiến lược này tạo ra tín hiệu trong tất cả các điều kiện thị trường mà không xem xét xu hướng tổng thể hoặc tình trạng biến động. Trong môi trường xu hướng mạnh, việc giao dịch ngược lại với FVG có thể dẫn đến tổn thất liên tục. Thêm bộ lọc xu hướng có thể cải thiện đáng kể hiệu suất.
Thiếu xác nhận khối lượng giao dịchChiến lược chỉ dựa trên hành vi giá mà không tính đến xác nhận khối lượng giao dịch, điều này có thể dẫn đến tín hiệu giả ở khu vực khối lượng giao dịch thấp. Việc tích hợp phân tích khối lượng giao dịch có thể cải thiện chất lượng tín hiệu.
Vấn đề tiềm ẩn của việc rút khỏi thời gian cố địnhViệc rút ra vào một thời gian nhất định trong ngày có thể dẫn đến việc rút ra sớm ở vị trí thuận lợi hoặc bỏ lỡ cơ hội rút ra tốt hơn ở vị trí bất lợi.
Dựa trên giả thuyết lịch sửChiến lược giả định rằng hành vi của FVG trong tương lai sẽ tương tự như các mô hình đã được quan sát trong quá khứ. Động lực thị trường có thể thay đổi, làm suy yếu hiệu quả của các mô hình này. Việc tái tối ưu hóa các tham số và xác minh giả định thường xuyên là rất quan trọng.
Dựa trên phân tích sâu về mã, đây là một số hướng tối ưu hóa có thể:
Bộ lọc cấu trúc thị trường:
Điều chỉnh biến động:
Giao dịch xác nhận:
Chuyển đổi quy mô vị trí:
Phân tích nhiều khung thời gian:
Giao dịch chồng chéo thông minh:
Tăng cường học máy:
Khung thống kê phản hồi:
Chiến lược giao dịch trong ngày của lỗ hổng giá trị công bằng động cung cấp một phương pháp có hệ thống để xác định và giao dịch các khu vực không cân bằng cung cầu trong thị trường. Bằng cách sử dụng mô hình FVG ba đường dây và quy tắc nhập cảnh phản hồi rõ ràng, chiến lược này có cả tính hợp lý về mặt lý thuyết và khả năng hoạt động thực tế.
Ưu điểm chính của chiến lược này là tính khách quan và phương pháp dựa trên cấu trúc thị trường, cho phép nó giữ liên quan trong các môi trường thị trường khác nhau. Tuy nhiên, hiệu quả của chiến lược có thể được nâng cao đáng kể bằng cách thực hiện các hướng tối ưu hóa được đề xuất, đặc biệt là thêm bộ lọc môi trường thị trường, điều chỉnh dựa trên biến động và xác nhận khối lượng giao dịch.
Điều đáng chú ý là bất kỳ chiến lược giao dịch nào, dù hoàn hảo như thế nào, cũng không đảm bảo thành công. Giao dịch thành công không chỉ cần một chiến lược tốt, mà còn cần kỷ luật thực thi nghiêm ngặt, quản lý vốn thích hợp và hiểu biết sâu sắc về thị trường. Chiến lược lỗ hổng giá trị công bằng động cung cấp một điểm khởi đầu tốt, các nhà giao dịch có thể tùy chỉnh và tối ưu hóa hơn nữa dựa trên khả năng chịu rủi ro và quan điểm của thị trường.
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Intraday FVG", overlay=true, pyramiding=5, max_bars_back=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent)
// 2. FVG Detection (Three-Candle Pattern)
var bullFVGHigh = array.new_float()
var bullFVGLow = array.new_float()
var bullFVGIndex = array.new_int()
var bearFVGHigh = array.new_float()
var bearFVGLow = array.new_float()
var bearFVGIndex = array.new_int()
detectFVG() =>
// Bullish FVG: Current low > prior high AND next high < current low
bullCondition = low > high[2] and close[1] > high[2]
// Bearish FVG: Current high < prior low AND next low > current high
bearCondition = high < low[2] and close[1] < low[2]
if bullCondition
// log.info("bull condition met: {0} {0} {0}", high[2], close[1], low)
array.push(bullFVGHigh, low)
array.push(bullFVGLow, low[2])
array.push(bullFVGIndex, bar_index)
if bearCondition
// log.info("bear condition met: {0} {0} {0}", low[2], close[1], high)
array.push(bearFVGHigh, high[2])
array.push(bearFVGLow, high)
array.push(bearFVGIndex, bar_index)
detectFVG()
// 3. Retest Execution Logic
checkRetests(arrayHigh, arrayLow, barIndex, direction) =>
// log.info("{0} : {1}", bar_index, time)
i = array.size(arrayHigh) - 1
while i >= 0
// log.info("barIndex : {0}" , array.get(barIndex, i))
// log.info("bar_index : {0}" , bar_index)
if array.get(barIndex, i) < bar_index
fvgHigh = array.get(arrayHigh, i)
fvgLow = array.get(arrayLow, i)
// log.info("visting : {0} : {1} : {2} : {3} ", array.get(barIndex, i), bar_index, fvgHigh, fvgLow)
if direction == "long" and low <= fvgHigh
// log.info("entering long")
sl = array.get(arrayLow, i) // Previous candle's low
entry = close
tp = entry + (entry - sl)*2
strategy.entry("L"+str.tostring(array.get(barIndex, i)), strategy.long)
strategy.exit("XL"+str.tostring(array.get(barIndex, i)), "L"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
array.remove(arrayHigh, i)
array.remove(arrayLow, i)
array.remove(barIndex, i)
if direction == "short" and high >= fvgLow
// log.info("entering short")
sl = array.get(arrayHigh, i) // Previous candle's low
entry = close
tp = entry - (sl - entry)*2
strategy.entry("S"+str.tostring(array.get(barIndex, i)), strategy.short)
strategy.exit("XS"+str.tostring(array.get(barIndex, i)), "S"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
array.remove(arrayHigh, i)
array.remove(arrayLow, i)
array.remove(barIndex, i)
i := i - 1
checkRetests(bullFVGHigh, bullFVGLow, bullFVGIndex, "long")
checkRetests(bearFVGHigh, bearFVGLow, bearFVGIndex,"short")
// 5. Daily Exit at 3:15 PM IST
exitTime = hour == 15 and minute >= 15
if exitTime
strategy.close_all()
array.clear(bullFVGHigh)
array.clear(bullFVGLow)
array.clear(bearFVGHigh)
array.clear(bearFVGLow)
array.clear(bullFVGIndex)
array.clear(bearFVGIndex)