Confluence Toolkit — Whitepaper Công nghệ
Hệ thống tín hiệu giao dịch Wyckoff confluence cho OKX perpetual futures
v0.1 — 2026-08-27
Tài liệu này chỉ mô tả kiến trúc kỹ thuật và phương pháp luận của hệ thống. Không đề cập token, tokenomics, cấu trúc gọi vốn, hay bất kỳ nội dung mang tính chào mời tài chính nào. Mọi số liệu hiệu suất trong tài liệu này là kết quả backtest/demo, không phải lợi nhuận tiền thật đã thực hiện — xem mục "Hiện trạng & giới hạn" ở cuối tài liệu.
1. Tóm tắt
Confluence Toolkit là hệ thống quant trading cho hợp đồng vĩnh viễn (perpetual futures) trên OKX, kết hợp phương pháp luận Wyckoff cổ điển với chấm điểm hội tụ đa khung thời gian (multi-timeframe confluence scoring) và mô hình hoá chi phí giao dịch đầy đủ (phí + funding). Toàn bộ pipeline — từ lấy dữ liệu, tính điểm, backtest, calibrate, tới quét thị trường real-time — dùng chung một nguồn logic tính điểm duy nhất cho cả backtest lẫn live scan, để tránh lệch pha giữa "cái được kiểm định" và "cái đang chạy thật".
Nguyên tắc cốt lõi: win rate không phải mục tiêu. Thước đo đúng là expectancy, profit factor (PF), và phân phối R-multiple. Một hệ thống win rate thấp nhưng lệnh thắng trung bình lớn vẫn tốt hơn hệ thống win rate cao nhưng lệnh thắng trung bình nhỏ.
2. Kiến trúc hệ thống
Dữ liệu nến/funding/OI (OKX)
→ Chấm điểm Wyckoff confluence (scorer.py)
→ Backtest có phí + funding (backtest.py)
→ Calibrate walk-forward per coin/side/timeframe (calibrate.py)
→ Quét real-time (realtime_scan.py)
→ Cảnh báo Telegram
→ [tuỳ chọn] Quản lý vị thế tự động, có kill-switch + TP tiers + trailing SL
Vận hành 24/7 trên VPS riêng, dùng đúng một scorer.py cho cả nhánh backtest lẫn nhánh live — thay đổi logic chấm điểm tự động phản ánh ở cả hai phía, không cần đồng bộ tay hai bản code song song.
Nguồn dữ liệu
| Nguồn | Dữ liệu | Vai trò |
|---|---|---|
OKX /market/candles | Nến OHLCV, mọi khung thời gian | Dữ liệu chính cho tín hiệu |
OKX /public/funding-rate, /public/open-interest | Funding rate, open interest | Xác định regime thị trường |
OKX /market/history-trades | Taker CVD thật | Chỉ dùng để đối chiếu, kiểm tra proxy |
| Binance USDT-M futures | Nến fallback | Chỉ cho coin OKX chưa niêm yết, chỉ dùng để quét/cảnh báo |
Giới hạn đã biết: OKX public candles không tách được taker buy/sell thật. Delta được xấp xỉ bằng công thức close-location-value (CLV): delta ≈ volume × (2×(close−low)/(high−low) − 1). Đối chiếu với taker CVD thật (qua /market/history-trades) chỉ khớp đúng hướng khoảng 33% trên mẫu đối chiếu hiện có — đây là proxy yếu, được ghi nhận công khai, không phải CVD thật.
3. Chấm điểm Wyckoff confluence
Mỗi bar đã đóng (không bao giờ chấm bar đang chạy, để tránh tín hiệu nhấp nháy khi giá còn biến động) được đánh giá qua một hệ thống chấm điểm đa yếu tố, đối xứng giữa long và short.
Tín hiệu phải hội tụ từ nhiều lớp bằng chứng độc lập thay vì dựa vào một chỉ báo đơn lẻ:
- Cấu trúc giá theo Wyckoff — nhận diện các mẫu hình đảo chiều kinh điển (Spring/Selling Climax cho đáy, Upthrust/Buying Climax cho đỉnh).
- Xác nhận khối lượng — đột biến volume tại đúng thời điểm cấu trúc giá xuất hiện, không phải volume ngẫu nhiên.
- Xác nhận dòng tiền (delta) — dấu hiệu hấp thụ/cạn kiệt lực mua-bán tại vùng giá quan trọng.
- Một nhóm chỉ báo kỹ thuật bổ trợ (động lượng, phân kỳ, dải biến động, bối cảnh xu hướng trung-dài hạn) — cộng dồn thêm độ tin cậy nhưng không bắt buộc phải có đủ tất cả.
Các lớp bằng chứng được tổng hợp thành một điểm hội tụ tổng, phân theo nhiều bậc (grade) — bậc càng cao, mức độ hội tụ giữa các lớp bằng chứng càng đầy đủ. Hệ thống chỉ tự động đẩy cảnh báo cho các bậc cao nhất; các bậc thấp hơn được lưu lại nhưng không chủ động thông báo.
Một bộ lọc xu hướng khung thời gian lớn hơn (higher-timeframe filter) có thể chặn cứng tín hiệu đi ngược cấu trúc lớn, độc lập với điểm số — một tín hiệu hội tụ tốt ở khung nhỏ vẫn bị loại nếu ngược xu hướng khung lớn.
Số lượng lớp bằng chứng bắt buộc tối thiểu được hiệu chỉnh riêng cho từng coin/hướng lệnh qua quá trình calibration (mục 5), không áp dụng một ngưỡng cứng chung cho toàn hệ thống — việc nới lỏng ngưỡng này trên diện rộng được đo là hiệu ứng ngẫu nhiên, không tổng quát hoá được sang coin khác.
Trọng số cụ thể giữa các lớp bằng chứng và ngưỡng điểm chính xác của từng bậc là chi tiết triển khai, không công bố trong tài liệu này.
4. Mô hình hoá chi phí giao dịch (cost-accounting)
Đây là kỷ luật đo lường trung tâm của hệ thống: mọi kết quả backtest phải trừ đủ phí giao dịch khứ hồi và funding có dấu trước khi được xem là kết quả hợp lệ.
- Phí: 0.10% khứ hồi (taker × 2), hiệu chỉnh khớp với phí thật đo được trên tài khoản. Quy đổi ra đơn vị R: SL càng hẹp thì phí phạt theo R càng nặng — một hệ quả thường bị bỏ qua khi chỉ nhìn phí ở dạng %.
- Funding: hiệu chỉnh từ dữ liệu tài khoản thật (không dùng median toàn sàn — số đó thường thấp hơn thực tế đáng kể). Có dấu: vị thế long trả phí funding dương, short nhận. Tính theo các mốc cố định trong ngày, không nội suy pro-rata theo thời gian giữ lệnh.
- Mỗi kết quả backtest tách riêng 4 cột: r_gross (trước phí), fee_r, funding_r, và r (ròng — dùng cho mọi quyết định downstream). Mọi trình bày công khai đều gắn nhãn rõ gộp/ròng, không trộn lẫn hai loại số.
Bài học vận hành đã ghi nhận: có giai đoạn module backtest tính phí bằng 0 trong khi hệ thống theo dõi vị thế thật ghi nhận PnL đã gồm phí — hai bên đo bằng hai thước khác nhau, dẫn tới một số kết quả "có lãi" trước đó thực ra là artifact tính toán. Sau khi phát hiện và sửa, đối chiếu lại toàn bộ dữ liệu: một phần đáng kể cấu hình từng qua ngưỡng duyệt thực ra lỗ sau phí. Đây là lý do hệ thống áp dụng cờ costs_included bắt buộc cho mọi cấu hình trước khi được xem xét cho giao dịch tiền thật.
5. Calibration walk-forward
Grid search trên không gian tham số (ngưỡng grade, thời gian giữ lệnh tối đa, chế độ lọc xu hướng khung lớn, độ nhạy volume climax, số điều kiện bắt buộc tối thiểu), thực hiện riêng cho từng coin/side/khung thời gian — không dùng một bộ tham số chung cho mọi thị trường.
Quy trình:
- Chia lịch sử giá thành nhiều đoạn (fold) theo thời gian.
- Với mỗi cấu hình trong không gian tìm kiếm, đo hiệu suất trên đoạn in-sample, chọn cấu hình tốt nhất theo mục tiêu risk-adjusted.
- Verify trên đoạn out-of-sample kế tiếp — chênh lệch lớn giữa hiệu suất in-sample và out-of-sample được xem là dấu hiệu overfit, không phải edge thật.
- Cấu hình được chọn chỉ được ghi nhận kèm đầy đủ thống kê full-sample (n, win rate, PF, R trung bình, drawdown tối đa).
Song song hoá bằng multiprocessing trên nhiều lõi CPU — giảm thời gian chạy một lần calibrate đầy đủ từ khoảng 45-50 phút xuống còn khoảng 106 giây trên máy 22 lõi.
Phân tách theo regime thị trường
Hệ thống phân loại thị trường theo tổ hợp open-interest × funding rate (SHORT_CROWDED, LONG_CROWDED, LONG_UNWIND, SHORT_COVERING, NEUTRAL) và không gộp chung setup ở các regime khác nhau vào cùng một calibration — việc trộn lẫn được xác nhận làm loãng tín hiệu thật, che mất edge có điều kiện.
Ngưỡng tin cậy thống kê
- n ≥ 30: không kết luận có/không có edge với cỡ mẫu dưới ngưỡng này, dù kết quả nhìn có vẻ hấp dẫn.
- PF > 1 và costs_included = true: điều kiện tối thiểu bắt buộc để một cấu hình được xem xét cho giai đoạn giao dịch tiếp theo.
6. Quét real-time & chống nhiễu tín hiệu
Ba nguyên tắc chống nhiễu áp dụng cho toàn bộ luồng quét thị trường:
- Chỉ chấm bar đã đóng — bar đang chạy còn biến động giá/volume/delta, chấm sẽ tạo tín hiệu nhấp nháy, đổi qua đổi lại trong cùng một bar.
- Khử trùng lặp (dedup) theo khoá
(mã coin, khung thời gian, hướng lệnh, thời điểm đóng bar)— mỗi tín hiệu chỉ được bắn đúng một lần tại thời điểm bar đóng, không lặp lại ở các chu kỳ quét sau. - Chỉ cảnh báo tín hiệu actionable — mặc định chỉ đẩy thông báo cho grade A/A+, các grade thấp hơn chỉ hiển thị khi được yêu cầu xem chủ động.
7. Quản lý vị thế (khi vận hành ở chế độ tự động)
Định cỡ vị thế theo rủi ro
Định cỡ dựa trên phần trăm rủi ro trên vốn (risk-based sizing), luôn làm tròn xuống kích thước lệnh — không bao giờ làm tròn lên để đạt kích thước lệnh tối thiểu của sàn, tránh việc vượt ngân sách rủi ro đã đặt ra một cách âm thầm. Nếu kích thước sau khi làm tròn xuống bằng 0, hệ thống bỏ qua lệnh đó thay vì phồng rủi ro lên.
Đòn bẩy chỉ ảnh hưởng đến ký quỹ và khoảng cách tới giá thanh lý — về mặt toán học không ảnh hưởng tới R-multiple hay profit factor (đây là một phép co giãn vô hướng của cùng một rủi ro), nhưng đòn bẩy cao có thể khiến lệnh bị thanh lý trước khi chạm điểm dừng lỗ đã định — một rủi ro vận hành cần quản lý riêng, tách khỏi rủi ro thống kê của chiến lược.
Thoát lệnh theo tầng (tiered take-profit)
Vị thế được thoát theo nhiều tầng chốt lời thay vì chốt toàn bộ tại một điểm duy nhất: tầng đầu chốt một phần và dời điểm dừng lỗ về hoà vốn (loại bỏ rủi ro vốn gốc càng sớm càng tốt), các tầng sau tiếp tục chốt thêm và khoá dần mức lời đã đạt được, phần còn lại được giữ để tận dụng biến động lớn hơn nếu xu hướng tiếp diễn. Mục tiêu của tầng đầu có thể tính động theo cấu trúc thị trường, có mức dự phòng cố định khi không xác định được mục tiêu động hợp lệ.
Kèm giới hạn thời gian giữ lệnh tối đa (calibratable theo coin/side) — thoát cưỡng bức nếu chưa chạm điểm dừng lỗ hay chốt lời trong khung thời gian đó.
Tỷ lệ % đóng ở mỗi tầng và các mức R-multiple mục tiêu chính xác là chi tiết triển khai, không công bố trong tài liệu này.
Cơ chế bảo vệ vận hành
- Kill-switch lỗ ngày: theo dõi PnL đã thực hiện tích luỹ trong ngày, tự động chặn lệnh mới khi chạm ngưỡng lỗ ngày đã đặt, tự reset khi sang ngày mới. Không chặn việc quản lý các vị thế đang mở.
- Theo dõi MAE/MFE (maximum adverse/favorable excursion) từng lệnh đã đóng — dữ liệu đầu vào cho việc hiệu chỉnh lại điểm dừng lỗ/chốt lời theo thời gian dựa trên hành vi thực tế, không dựa trên giả định ban đầu.
- Quản lý vị thế đang mở chạy độc lập với trạng thái tạm dừng của tín hiệu mới — dừng nhận tín hiệu mới không có nghĩa là ngừng quản lý rủi ro của vị thế đang có.
8. Hiện trạng & giới hạn (ghi nhận trung thực)
Phần này liệt kê rõ những gì hệ thống chưa làm được, theo đúng nguyên tắc không tô hồng số liệu kỹ thuật:
- Chưa có track record giao dịch tiền thật — mọi số liệu hiệu suất hiện tại đều từ backtest/môi trường demo, chưa phản ánh đầy đủ các yếu tố thực tế khi giao dịch tiền thật (trượt giá, thanh khoản thực, độ trễ vận hành).
- Delta là proxy yếu, không phải taker CVD thật — đã nêu ở mục 2, khớp hướng khoảng 33% khi đối chiếu với dữ liệu taker trade thật.
- Wyckoff auto-detect là heuristic — các quy tắc nhận diện Spring/ Upthrust/Climax là mô hình hoá tự động, có thể gắn nhãn khác với đánh giá của một trader Wyckoff theo trường phái discretionary trên cùng một biểu đồ.
- Chi phí giao dịch có thể vượt edge thống kê ở khung thời gian ngắn (15 phút) — điểm dừng lỗ hẹp đòi hỏi khối lượng lệnh lớn hơn để giữ nguyên mức rủi ro, khiến phí trên khối lượng đó ăn phần lớn hoặc toàn bộ edge đo được ở dạng gộp.
- Cỡ mẫu ở khung thời gian lớn hơn (1H/4H) còn hạn chế — dữ liệu lịch sử càng dài mới tích luỹ đủ số lệnh để calibrate đáng tin cậy theo từng coin/side riêng biệt ở các khung này.
- Một phần dữ liệu lịch sử vẫn đang trong quá trình tính lại theo số ròng (sau khi phát hiện và sửa lỗi cost-accounting mô tả ở mục 4) — quá trình này đang được thực hiện dần, không phải đã hoàn tất toàn bộ.