Một backtest (kiểm thử lịch sử) có thể xử lý đúng từng dòng dữ liệu mà vẫn trả lời sai câu hỏi, bởi các dòng đó mô tả sai thị trường, bỏ sót một phần mẫu hoặc gán thông tin vào sai thời điểm. Vì vậy, chất lượng dữ liệu là một phần trong đặc tả chiến lược. Trước khi đọc lợi suất, hãy ghi lại mỗi quan sát có nghĩa gì, khi nào nó trở nên có sẵn và nó được thu thập bằng cách nào.

1. Gọi đúng tên thị trường và nến

Hãy ghi rõ nhà cung cấp và sàn, ký hiệu chính xác, hợp đồng giao ngay (spot) hay phái sinh, tài sản báo giá và tài sản thanh toán, khoảng thời gian của nến, và liệu dấu thời gian đánh dấu thời điểm mở hay đóng của nến. “Nến BTC theo giờ” bỏ qua những chi tiết có thể làm thay đổi giá, khối lượng, tỷ lệ funding và giờ giao dịch. Hãy giữ chuỗi giá của một hợp đồng đi cùng lịch sử tỷ lệ funding của chính hợp đồng đó, trừ khi một câu hỏi nghiên cứu được ghi chép rõ ràng biện minh cho việc ghép khác.

Kiểm tra siêu dữ liệu hợp đồng để phát hiện việc hủy niêm yết, chuyển đổi, hệ số hợp đồng và thay đổi ký hiệu trong suốt mẫu. Một ký hiệu có thể vẫn tồn tại trong khi định nghĩa thị trường của nó đã thay đổi. Nếu một nguồn điều chỉnh dữ liệu lịch sử, hãy lưu lại ngày truy xuất và một bản sao thô để lần chạy sau có thể giải thích sự khác biệt.

2. Kiểm tra chỉ mục thời gian trước khi tính chỉ báo

Chuẩn hóa dấu thời gian về UTC nhưng vẫn giữ nguyên cách biểu diễn gốc của nhà cung cấp. Ghi lại liệu các giá trị số là giây hay mili giây. Một dấu thời gian ISO cần có Z hoặc độ lệch UTC rõ ràng để xác định một thời điểm; một chuỗi giờ địa phương như 2026-04-07 13:00 là mơ hồ nếu không có múi giờ. Kiểm tra thứ tự và tính duy nhất, sau đó so sánh thời điểm đầu và cuối với khoảng thời gian yêu cầu và số lượng khoảng kỳ vọng.

Với một mẫu theo giờ kéo dài bốn giờ, bắt đầu lúc 10:00 UTC, các thời điểm mở kỳ vọng là 10:00, 11:00, 12:00 và 13:00. Một tệp có 10:00, 11:00, 11:00 và 13:00 vẫn chứa bốn dòng, nhưng nó có một mốc 11:00 bị trùng và không có quan sát nào ở 12:00. Chỉ đếm số dòng sẽ bỏ sót cả hai lỗi này. Hãy xử lý chúng từ nguồn có thẩm quyền; không lấy trung bình các nến trùng hoặc tạo ra một nến trông bình thường để lấp khoảng trống. Nếu một khoảng trống bị loại trừ, hãy báo cáo các ngày, quy tắc và cách nó ảnh hưởng đến giai đoạn khởi động, các giao dịch và độ phủ của mẫu.

số dòng nến có thể che giấu một khoảng thời gian bị thiếu và một dòng trùng lặpVới bốn mốc mở nến theo giờ dự kiến lúc 10:00, 11:00, 12:00 và 13:00 UTC, tệp hư cấu này có bốn dòng nhưng lặp lại 11:00 và bỏ sót 12:00. Hãy đếm các mốc thời gian duy nhất và so sánh toàn bộ chuỗi dự kiến, không chỉ tổng số dòng.BỐN DÒNG KHÔNG CHỨNG MINH CÓ BỐN GIỜ KHÁC NHAUDự kiếnQuan sát được10:0011:0012:0013:0011:00 bị lặp12:00 bị thiếu4 dòng · 3 mốc thời gian duy nhất · một dòng trùng · một khoảng thời gian bị thiếu
Với bốn mốc mở nến theo giờ dự kiến lúc 10:00, 11:00, 12:00 và 13:00 UTC, tệp hư cấu này có bốn dòng nhưng lặp lại 11:00 và bỏ sót 12:00. Hãy đếm các mốc thời gian duy nhất và so sánh toàn bộ chuỗi dự kiến, không chỉ tổng số dòng. Đồ họa minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

3. Kiểm tra giá trị và độ phủ của nguồn

Với mỗi nến OHLC, xác nhận giá dương và hữu hạn, high ≥ max(open, close), low ≤ min(open, close) và high ≥ low. Khối lượng phải dùng đơn vị đã khai báo và không âm. Hãy vẽ hoặc kiểm tra một số dòng thô ở đầu, giữa, cuối và quanh các biến động đáng ngờ, đối chiếu với nguồn gốc. Tìm các giá trị lặp lại cũ, thay đổi đơn vị khối lượng đột ngột, ranh giới trang bị trùng, nến hiện tại chưa hoàn chỉnh và các khoảng thời gian bị thiếu. Một biểu đồ trông hợp lý không phải là bằng chứng về danh tính thị trường đúng hay nguồn gốc nhà cung cấp đúng.

Độ phủ là thuộc tính của API cũng như của tệp. Ví dụ hiện tại từ Hyperliquid: endpoint ảnh chụp nến của nó ghi rõ các khoảng thời gian được hỗ trợ và cho biết chỉ có 5,000 nến gần nhất là có sẵn. Phản hồi nến hiển thị dấu thời gian mở và đóng cùng với ký hiệu, khoảng thời gian, OHLC, khối lượng và số giao dịch; lược đồ WebSocket của nó ghi nhãn các trường dấu thời gian bằng mili giây. Nếu lịch sử được yêu cầu vượt quá cửa sổ có sẵn của endpoint đó, một phản hồi được phân tích cú pháp không lỗi vẫn có thể chưa đầy đủ. Hãy ghi lại cửa sổ yêu cầu và xác minh rằng nến đầu và cuối trả về khớp với cửa sổ đó. Dùng một kho lưu trữ phù hợp hoặc một nhà cung cấp được xác định rõ ràng khác cho độ phủ cũ hơn. Đây là các chi tiết API của Hyperliquid được kiểm tra ngày 25 tháng 9 năm 2026, không phải giới hạn chung của mọi sàn; xem API ảnh chụp nến và lược đồ WebSocket nến.

4. Căn chỉnh funding và dữ liệu sự kiện khác theo ý nghĩa thực tế của chúng

Funding mang tính đặc thù theo thời gian và theo hợp đồng. Hãy giữ nguyên đơn vị tỷ lệ, dấu, dấu thời gian và quy ước thanh toán của nó. Một tỷ lệ bị thiếu là chưa biết, không phải khoản thanh toán bằng không. Lịch sử tỷ lệ funding của thị trường mô tả các tỷ lệ tại thời điểm thanh toán; sổ cái của một tài khoản cá nhân ghi lại quy mô vị thế và thay đổi tiền mặt thực tế. Chúng trả lời những câu hỏi khác nhau. Ví dụ, Hyperliquid ghi rõ funding theo giờ cho các hợp đồng vĩnh cửu của mình, có một endpoint tỷ lệ lịch sử và một sổ cái funding người dùng riêng biệt chứa các trường như thời gian, coin, tỷ lệ, quy mô và thay đổi USDC. Hãy khớp bản ghi đúng với vị thế được nắm giữ tại thời điểm đó thay vì điền tiến (forward-fill) hoặc áp dụng tỷ lệ cho mọi nến. Tham khảo quy tắc funding và các endpoint dữ liệu hợp đồng vĩnh cửu hiện tại của nó, được kiểm tra ngày 25 tháng 9 năm 2026.

Thời điểm của tín hiệu cũng cần sự cẩn trọng tương tự. Giá cao nhất, thấp nhất và đóng cửa cuối cùng của một nến không phải đều đã biết tại thời điểm mở nến. Nếu một quy tắc cần giá đóng cửa đã hoàn tất, quyết định chỉ có thể dùng nó sau khi nến đã kết thúc. Khi đó, điểm vào lệnh mô phỏng phải dùng một quan sát có thể thực thi sau đó theo một quy ước được nêu rõ. Thử nghiệm một quyết định dựa trên giá đóng cửa ngay tại thời điểm mở của chính nến đó sẽ làm rò rỉ thông tin tương lai. Hãy kiểm tra giai đoạn khởi động của chỉ báo, ranh giới lấy mẫu lại, các đặc trưng được hợp nhất và dòng chính xác được dùng cho một tín hiệu.

khi một nến theo giờ trở nên khả dụng với một chiến lượcMột nến theo giờ được gắn nhãn 10:00 chứa các giá trị đang thay đổi cho đến khi nó đóng lúc 11:00. Một quy tắc dùng giá đóng cửa cuối cùng của nến chỉ có thể ra quyết định sau 11:00; bộ máy nghiên cứu minh họa này đánh giá nến đã hoàn tất trước đó và dùng giá mở của nến kế tiếp cho một điểm vào lệnh mô phỏng mới.TÍN HIỆU DỰA TRÊN GIÁ ĐÓNG CỬA KHÔNG THỂ BIẾT ĐƯỢC TẠI THỜI ĐIỂM MỞ NẾNNến 10:00 đang hình thànhgiá cao · thấp · đóng cửa vẫn có thể thay đổiGiá đóng cửa đã biếtlúc 11:00Nến kế tiếp mởđiểm hành động mô phỏngtín hiệu từ nến hoàn tất → quan sát sau đóDùng giá đóng cửa cuối cùng của nến 10:00 tại thời điểm 10:00 là rò rỉ thông tin tương laiVí dụ về quy ước của công cụ · các công cụ và lệnh khác có thể dùng quy tắc thời điểm khác
Một nến theo giờ được gắn nhãn 10:00 chứa các giá trị đang thay đổi cho đến khi nó đóng lúc 11:00. Một quy tắc dùng giá đóng cửa cuối cùng của nến chỉ có thể ra quyết định sau 11:00; bộ máy nghiên cứu minh họa này đánh giá nến đã hoàn tất trước đó và dùng giá mở của nến kế tiếp cho một điểm vào lệnh mô phỏng mới. Đồ họa minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

5. Lưu giữ bằng chứng thô và mọi phép biến đổi

Lưu phản hồi hoặc tệp gốc không thay đổi cùng với tên nguồn, định danh thị trường, tham số yêu cầu, dấu thời gian truy xuất, khoảng thời gian, múi giờ, số dòng và thời điểm bắt đầu/kết thúc được yêu cầu. Ghi lại phiên bản phần mềm hoặc phép biến đổi và một dấu vân tay mật mã. Tạo một bộ dữ liệu đã làm sạch riêng; với mỗi lần sửa hoặc loại trừ, hãy giữ lại dòng gốc, lý do, nguồn thay thế và phép biến đổi chính xác. Điều này cho phép một nhà nghiên cứu khác tái tạo kết quả và so sánh một bản điều chỉnh nguồn sau này mà không phải đoán “dữ liệu đã làm sạch” nghĩa là gì.

Lần chạy nghiên cứu nên gắn dấu vân tay bộ dữ liệu của nó với phiên bản chiến lược, phiên bản engine, khoảng thời gian, cài đặt, cảnh báo và kết quả đầu ra. Một hàm băm chứng minh rằng hai tệp giống hệt nhau về byte hoặc giá trị theo phương pháp đã chọn; nó không chứng minh rằng tệp nào là đúng. Nguồn gốc dữ liệu và độ chính xác dữ liệu là những kiểm tra có liên quan nhưng tách biệt.

lưu giữ một đường dẫn có thể tái lập từ tệp nguồn đến kết quả nghiên cứuMột bản ghi nghiên cứu lưu giữ phản hồi thô và ngữ cảnh yêu cầu, ghi lại các bước kiểm tra và biến đổi, đánh phiên bản cho bộ dữ liệu được chấp nhận, gắn dấu vân tay đó với phiên bản chiến lược và công cụ, và mang theo kết quả cùng các cảnh báo. Các bước kiểm tra thất bại được đưa vào bản ghi ngoại lệ thay vì được âm thầm sửa chữa.GIỮ BẢN GHI THÔ VÀ GẮN MỌI KẾT QUẢ VỚI ĐẦU VÀO CỦA NÓ01 · Nguồn thônhà cung cấp · thị trườngyêu cầu · thời điểm truy xuất02 · Kiểm trađộ phủ · đơn vịngoại lệ được ghi lại03 · Bộ dữ liệubiến đổi · hashkhoảng thời gian · phiên bản04 · Lần chạy chính xácchiến lược · bộ máycài đặt · cảnh báo05 · Kết quả đánh giáđầu ra · hạn chếtái lập · so sánhDấu vân tay chứng minh tính đồng nhất của các đầu vào này · không chứng minh tính chính xác của chúngGiữ các dòng bị lỗi và lý do chỉnh sửa để có thể kiểm tra; không âm thầm sửa đổi tệp gốc
Một bản ghi nghiên cứu lưu giữ phản hồi thô và ngữ cảnh yêu cầu, ghi lại các bước kiểm tra và biến đổi, đánh phiên bản cho bộ dữ liệu được chấp nhận, gắn dấu vân tay đó với phiên bản chiến lược và công cụ, và mang theo kết quả cùng các cảnh báo. Các bước kiểm tra thất bại được đưa vào bản ghi ngoại lệ thay vì được âm thầm sửa chữa. Đồ họa minh họa giảng giải · không phải dữ liệu thị trường trực tiếp

SuperQuant xác thực những gì

Trình nhập CSV của SuperQuant yêu cầu các trường timestamp, open, high, low, close và volume, với funding_rate tùy chọn. Nó yêu cầu ít nhất 60 quan sát theo giờ UTC tăng dần, duy nhất và liên tục, giá OHLC dương và hữu hạn, khối lượng không âm và các quan hệ nến hợp lệ. Dấu thời gian ISO phải mang múi giờ. Funding bị thiếu vẫn là null và được báo cáo; các chiến lược có bao gồm funding hoặc phụ thuộc vào bộ lọc funding cần có các quan sát funding. Các kiểm tra này loại bỏ cấu trúc sai định dạng, nhưng trình nhập không thể xác thực sàn được tuyên bố hay chứng minh độ chính xác kinh tế.

Các bộ dữ liệu lịch sử đi kèm là ví dụ giảng dạy tổng hợp, không phải bản ghi thị trường. Một chuỗi được nhập là bằng chứng riêng biệt với nguồn và hạn chế riêng của nó. Hãy xem mẫu CSV dữ liệu lịch sử và danh sách kiểm tra đánh giá backtest, sau đó đọc hướng dẫn về chi phí và bài đánh giá về thiên lệch nhìn trước. Dữ liệu tốt giúp một bài kiểm thử có thể diễn giải được; chúng không chứng minh một lợi thế bền vững hay một kết quả trong tương lai. Hướng dẫn này mang tính giáo dục chung, không phải lời khuyên đầu tư.