Dữ liệu tick forex cho backtest: Nguồn dữ liệu, kiểm tra chất lượng và những cạm bẫy 31/10/2026 – Posted in: Arbitrage Software, Forex trading
Dữ liệu tick forex cho backtest: Nguồn dữ liệu, kiểm tra chất lượng và những cạm bẫy
Một bản backtest chỉ trung thực đến mức dữ liệu giá mà bạn đưa vào. Với scalping, arbitrage và mọi chiến lược hoạt động trong phạm vi vài pip, nến một phút là không đủ: bạn cần chuỗi báo giá bid và ask thực tế. Hướng dẫn này giải thích dữ liệu tick forex đến từ đâu, vì sao hai bộ dữ liệu cho cùng một cặp tiền không bao giờ khớp nhau, cần chạy những bước kiểm tra chất lượng nào trước khi tin vào kết quả, và cách biến tick thô thành một bài kiểm tra gần giống giao dịch thực.
- Dữ liệu tick forex là gì
- Dữ liệu tick và dữ liệu nến: nội suy che giấu điều gì
- Dữ liệu tick forex đến từ đâu
- Feed của broker so với feed tham chiếu
- Dấu thời gian, múi giờ và giờ mùa hè
- Kiểm tra chất lượng trước khi tin vào bộ dữ liệu
- Từng bước: chuẩn bị dữ liệu tick cho backtest
- Spread biến động: chi phí mà spread cố định che giấu
- Giả định về dữ liệu thay đổi kết quả đến mức nào
- Tick là cần nhưng chưa đủ: thời gian khớp lệnh
- Lưu trữ, định dạng và xử lý
- Những cạm bẫy thường gặp
- Câu hỏi thường gặp
Dữ liệu tick forex là gì
Trả lời ngắn gọn: dữ liệu tick forex là bản ghi mọi thay đổi báo giá của một cặp tiền: dấu thời gian (thường tính bằng mili giây), giá bid, giá ask và đôi khi khối lượng chào giá ở mỗi phía. Khác với dữ liệu nến, vốn chỉ giữ giá mở cửa, cao nhất, thấp nhất và đóng cửa của mỗi khoảng thời gian, dữ liệu tick bảo toàn thứ tự, thời điểm và spread của mọi lần cập nhật giá, và đó chính là thứ mà một chiến lược ngắn hạn thực sự giao dịch.
Một dòng điển hình trông như sau:
Đó là thời gian, giá bid, giá ask và khối lượng có sẵn ở bid và ask (tính bằng triệu, nếu nguồn cung cấp). Spread của tick này là 0.7 pip. Một giây sau có thể có thêm năm dòng, hoặc không có dòng nào.
Có một điều cần hiểu trước tiên: thị trường forex giao ngay không có băng giao dịch trung tâm. Cổ phiếu và hợp đồng tương lai có sàn giao dịch công bố chuỗi giao dịch chính thức. Forex được giao dịch phi tập trung giữa nhiều ngân hàng, ECN và broker, và mỗi bên phát báo giá riêng. Vì vậy, mọi bộ dữ liệu tick forex đều là góc nhìn thị trường của một nơi giao dịch hoặc một nhà tổng hợp. Hai nguồn có thể chênh nhau một phần nhỏ của pip và hàng chục mili giây tại cùng một thời điểm, và cả hai đều có thể đúng với nơi giao dịch của chính mình.
Thực tế đó chi phối phần lớn hướng dẫn này. “Dữ liệu tick này có chính xác không?” là câu hỏi sai. Những câu hỏi hữu ích là: chính xác với nơi khớp lệnh nào, được ghi lại như thế nào, và được làm sạch như thế nào?
Tick báo giá và tick giao dịch
Hầu hết bộ dữ liệu forex là tick báo giá: các thay đổi của giá bid tốt nhất hoặc giá ask tốt nhất. Chúng không phải là giao dịch. Một báo giá có thể thay đổi mười lần mà không có một giao dịch nào, và một giao dịch lớn có thể hoàn toàn không làm thay đổi đỉnh sổ lệnh. Một số dữ liệu FX dựa trên hợp đồng tương lai hoặc giao dịch trên sàn có chứa tick giao dịch (giá cuối và khối lượng), nhưng để backtest forex giao ngay, bạn cần báo giá bid và ask, vì đó là mức giá mà lệnh của bạn sẽ được khớp: mua ở giá ask, bán ở giá bid.
Dữ liệu tick và dữ liệu nến: nội suy che giấu điều gì
Nhiều công cụ backtest tuyên bố kiểm tra trên “mọi tick” thực ra hoàn toàn không dùng tick đã ghi lại. Chúng lấy nến một phút và tạo ra các tick tổng hợp bên trong mỗi nến, thường là một đường đi mượt từ giá mở cửa đến giá cao nhất và thấp nhất rồi đến giá đóng cửa. Kết quả trông giống dữ liệu tick, nhưng không chứa bất kỳ thông tin nào mà cây nến chưa có sẵn.

Đây là lý do điều đó quan trọng. Lấy một nến EUR/USD một phút: mở cửa 1.08500, cao nhất 1.08540, thấp nhất 1.08480, đóng cửa 1.08520. Một vị thế mua đang mở với chốt lời tại 1.08530 và cắt lỗ tại 1.08485. Cả hai mức đều nằm trong nến. Giao dịch này thắng hay thua?
- Nếu giá thấp nhất đến trước, lệnh cắt lỗ khớp tại 1.08485 và giao dịch lỗ 1.5 pip.
- Nếu giá cao nhất đến trước, lệnh chốt lời khớp tại 1.08530 và giao dịch lãi 3 pip.
Cây nến không thể cho bạn biết. Bộ tạo tick chọn một thứ tự (thường theo một quy tắc cố định, chẳng hạn “nến tăng đi xuống giá thấp nhất trước”), và bản backtest báo cáo một kết quả đầy tự tin nhưng một phần chỉ là tung đồng xu. Với chiến lược swing có mục tiêu 100 pip, điều này hiếm khi quan trọng. Với chiến lược có mục tiêu và cắt lỗ nằm trong vài pip quanh điểm vào lệnh, nó quyết định một tỷ lệ lớn các giao dịch.
Nội suy còn xóa đi ba thứ mà tick được ghi lại vẫn giữ:
| Điều chiến lược cần | Tick được ghi lại | Tick tạo từ nến |
|---|---|---|
| Thứ tự giá cao nhất và thấp nhất trong một phút | Chính xác | Đoán theo quy tắc |
| Bước nhảy giá (biến động 1.5 pip trong một báo giá) | Có | Bị làm mượt thành các bước nhỏ |
| Spread trên mọi báo giá | Có (bid và ask) | Thường là một spread cố định hoặc một giá trị cho mỗi nến |
| Khoảng thời gian giữa các báo giá (giây yên ắng và giây sôi động) | Có | Cách đều nhau hoặc bị bịa ra |
| Hoạt động báo giá quanh tin tức và rollover | Có | Bị mất |
Bước nhảy là điểm then chốt với arbitrage độ trễ: tín hiệu chính là bước nhảy. Một đường tổng hợp đi từ 1.08500 đến 1.08515 qua mười lăm bước nhỏ không tạo ra tín hiệu nào, nên một chiến lược lẽ ra sẽ giao dịch trên tài khoản thật lại trông như chết trong bài kiểm tra, hoặc một chiến lược mua khi giá điều chỉnh lại trông tốt hơn thực tế.
Dữ liệu tick forex đến từ đâu
Có năm nguồn thực tế. Chúng khác nhau về chi phí, độ sâu và quan trọng nhất là mức độ khớp với mức giá bạn sẽ thực sự giao dịch.
| Nguồn | Bạn nhận được gì | Điểm mạnh | Hạn chế |
|---|---|---|---|
| Tự ghi lại (qua API của broker hoặc phiên FIX) | Mọi báo giá tài khoản của bạn nhận được, kèm thời gian nhận cục bộ | Khớp chính xác với nơi khớp lệnh của bạn; bạn kiểm soát dấu thời gian và định dạng | Chỉ bắt đầu từ lúc bạn bắt đầu ghi; cần một máy ổn định; có khoảng trống nếu mất kết nối |
| Tải lịch sử từ broker | Lịch sử bid/ask từ feed riêng của broker | Gần với nơi giao dịch của bạn; thường có lịch sử nhiều năm | Chất lượng không đồng đều; một số broker lược bớt hoặc lọc tick cũ; dấu thời gian có thể theo giờ máy chủ |
| Kho lưu trữ công khai miễn phí (do một số broker ECN và nhà tổng hợp cung cấp, ví dụ Dukascopy, TrueFX, HistData.com) | Tick bid/ask cho các cặp tiền chính, thường từ những năm 2000 | Miễn phí, lịch sử dài, tốt cho nghiên cứu và kiểm tra độ bền vững | Là góc nhìn của một nơi giao dịch hoặc nhà tổng hợp, không phải của bạn; spread và tần suất báo giá khác với broker của bạn; cần kiểm tra quy ước múi giờ của từng nguồn |
| Nhà cung cấp dữ liệu thương mại | Lịch sử tick đa nơi giao dịch đã được làm sạch và chuẩn hóa | Phương pháp được ghi tài liệu, định dạng nhất quán, có hỗ trợ | Đắt; vẫn không phải feed của broker bạn |
| Feed tham chiếu / feed nhanh (ví dụ lịch sử tick BJF Feed từ các node London, Tokyo và New York) | Một luồng giá tham chiếu nhanh và độc lập | Cần thiết để kiểm tra các chiến lược so sánh một feed chậm với một feed nhanh | Phải ghép với tick riêng của broker cho các bài kiểm tra arbitrage |
Quy tắc thực tế: dùng lịch sử sạch dài nhất có thể cho nghiên cứu, và dữ liệu gần nhất với nơi giao dịch của bạn cho quyết định cuối cùng. Một chiến lược chỉ hoạt động trên một kho lưu trữ miễn phí và thất bại trên tick ghi lại từ broker của bạn là chiến lược không hoạt động. Một chiến lược trụ vững trên cả hai, với chi phí thực tế, đã vượt qua một bài kiểm tra có ý nghĩa.
Nếu bạn dự định chạy một chiến lược trong nhiều tháng, hãy bắt đầu ghi tick của broker ngay hôm nay, ngay cả trước khi chiến lược hoàn thiện. Ba tháng feed của chính bạn có giá trị cho bước kiểm tra cuối cùng hơn mười năm dữ liệu của người khác.
Feed của broker so với feed tham chiếu
Vì mỗi nơi giao dịch phát báo giá riêng, cùng một thời điểm trông hơi khác nhau từ những nơi khác nhau. Các khác biệt có cấu trúc rõ ràng:
- Độ lệch giá. Giá trung bình (mid) thường khớp trong phạm vi một phần nhỏ của pip vào giờ thanh khoản cao và tách xa nhau khi thị trường mỏng, lúc rollover và quanh tin tức.
- Độ lệch thời gian. Một broker tổng hợp giá từ các nhà cung cấp thanh khoản, cộng thêm markup riêng và chạy kiểm tra rủi ro thường hiển thị biến động muộn hơn một feed tham chiếu nhanh. Độ trễ có thể là vài mili giây hoặc vài trăm mili giây.
- Tần suất báo giá. Một số feed gửi mọi thay đổi, số khác giới hạn tốc độ (ví dụ tối đa một cập nhật mỗi 100 ms cho mỗi mã). Feed bị giới hạn có ít tick hơn và bước nhảy lớn hơn.
- Đặc điểm spread. Một feed ECN thô và một feed bán lẻ có markup có thể chênh nhau cả một pip về spread trung bình và nhiều hơn nữa lúc rollover.

Với hầu hết các chiến lược, điều này có nghĩa là bạn nên kiểm tra trên feed mà bạn sẽ giao dịch. Với arbitrage độ trễ, ý nghĩa còn mạnh hơn: lợi thế của chiến lược chính là sự chênh lệch giữa hai feed, nên bạn cần cả hai luồng, được ghi với dấu thời gian từ cùng một đồng hồ. Kiểm tra chiến lược arbitrage trên tick của một nhà cung cấp duy nhất là vô nghĩa. Chúng tôi mô tả cách so sánh các feed theo từng tick trong bài viết về so sánh tick trong arbitrage forex và HFT, và lý do phía tham chiếu phải nhanh trong hướng dẫn về feed dữ liệu nhanh cho arbitrage.
Dấu thời gian, múi giờ và giờ mùa hè
Vấn đề về dấu thời gian gây ra nhiều lỗi backtest âm thầm hơn cả giá sai. Bốn điều cần kiểm tra:
1. Dữ liệu theo múi giờ nào?
Các quy ước phổ biến là UTC/GMT, giờ miền Đông Hoa Kỳ (có hoặc không áp dụng giờ mùa hè) và “giờ máy chủ” của broker; nhiều broker đặt giờ này là GMT+2 vào mùa đông và GMT+3 vào mùa hè để ngày giao dịch kết thúc lúc 17:00 giờ New York. Nếu chiến lược của bạn ghi “giao dịch lúc London mở cửa 08:00”, độ lệch một giờ nghĩa là nó giao dịch trong một trạng thái thị trường khác.
2. Giờ mùa hè có được áp dụng không, và theo quy tắc của nước nào?
Châu Âu và Hoa Kỳ chuyển giờ vào những ngày khác nhau. Trong khoảng ba tuần vào tháng Ba và một tuần quanh cuối tháng Mười, đầu tháng Mười Một, chênh lệch giữa London và New York là bốn giờ thay vì năm. Một bộ dữ liệu được chuyển đổi theo quy tắc sai sẽ dịch logic theo phiên đi một giờ trong những tuần đó. Lỗi này nhỏ, có tính mùa vụ và rất khó nhận ra trên đường cong vốn.
3. Dấu thời gian được lấy ở đâu?
Một tick có thể mang thời điểm nơi giao dịch tạo báo giá, thời điểm báo giá rời máy chủ của nơi giao dịch, hoặc thời điểm máy của bạn nhận được nó. Với chiến lược theo xu hướng, khác biệt này không quan trọng. Với các chiến lược nhạy cảm với độ trễ, đó là toàn bộ vấn đề: hai feed chỉ có thể so sánh nếu cả hai được đóng dấu trên cùng một đồng hồ, lý tưởng nhất là thời gian nhận của chính bạn được đồng bộ bằng NTP hoặc PTP.
4. Độ phân giải và thứ tự
Dấu thời gian tính theo giây là không đủ cho giao dịch ngắn hạn: hàng chục báo giá có thể cùng một giây, và thứ tự của chúng bên trong giây đó có thể bị mất sau khi sắp xếp. Hãy dùng độ phân giải mili giây (hoặc chi tiết hơn) và giữ thứ tự gốc trong tệp làm tiêu chí phân định khi trùng thời gian.
Kiểm tra chất lượng trước khi tin vào bộ dữ liệu
Dữ liệu tick thô luôn chứa lỗi. Mục tiêu không phải là sự hoàn hảo, mà là biết trong dữ liệu có gì và loại bỏ những gì sẽ làm sai lệch bài kiểm tra. Đây là các bước kiểm tra chúng tôi chạy trên mọi bộ dữ liệu mới trước khi dùng nó để tối ưu hóa:
| Kiểm tra | Cần tìm gì | Xử lý thông thường |
|---|---|---|
| Thời gian đơn điệu | Dấu thời gian đi lùi | Chỉ sắp xếp lại nếu biết nguyên nhân; nếu không, đánh dấu tệp |
| Trùng lặp | Các dòng giống hệt nhau (cùng thời gian, bid, ask) | Xóa các bản trùng hoàn toàn; giữ các giá lặp lại có thời gian khác nhau |
| Spread bị đảo hoặc bằng không | Ask ≤ bid | Xóa; nếu xảy ra thường xuyên thì nguồn bị lỗi hoặc các feed bị trộn lẫn |
| Spread bất thường | Spread vượt quá, chẳng hạn, 10× trung vị theo giờ ngoài các sự kiện đã biết | Đánh dấu; giữ lại nếu trùng với rollover hoặc tin tức, xóa nếu là trường hợp cô lập |
| Đột biến giá | Một bước nhảy giá mid gấp nhiều lần độ biến động gần đây và đảo ngược trong vài tick | Xóa các đột biến cô lập; không bao giờ lọc bỏ biến động tin tức thật |
| Khoảng trống | Không có tick nào trong hơn 60 giây vào giờ thanh khoản cao | Lập danh sách các khoảng trống; loại các giai đoạn đó khỏi bài kiểm tra hoặc đánh dấu các giao dịch nằm trong đó |
| Báo giá đứng yên | Cùng một giá bid/ask lặp lại trong nhiều phút trong khi các nguồn khác vẫn biến động | Xử lý như một khoảng trống |
| Tick cuối tuần và ngày lễ | Báo giá giữa giờ đóng cửa thứ Sáu và giờ mở cửa Chủ nhật | Xóa, hoặc kiểm tra múi giờ nếu cả một giờ xuất hiện ở đó |
| Mật độ tick | Số tick mỗi giờ so với cùng khung giờ ở những ngày khác | Sụt giảm đột ngột cho thấy giới hạn tốc độ hoặc sự cố ghi dữ liệu |
| Thang giá và số chữ số | Báo giá 4 chữ số và 5 chữ số, các cặp JPY có 3 chữ số thập phân | Chuẩn hóa trước khi gộp các nguồn |
Một quy tắc phát hiện đột biến đơn giản và chắc chắn: tính độ lệch tuyệt đối trung vị (MAD) trượt của các thay đổi giá mid trong 200 tick gần nhất; đánh dấu mọi tick có thay đổi vượt quá khoảng 15× MAD và phần lớn bị đảo ngược trong ba tick tiếp theo. Một biến động tin tức thật không đảo ngược trong ba tick; một báo giá lỗi thì thường có. Hãy tinh chỉnh ngưỡng theo từng cặp tiền và xem kỹ những gì bạn xóa, vì một bộ lọc quá hăng sẽ xóa đúng những biến động mà chiến lược arbitrage hoặc tin tức cần.
Từng bước: chuẩn bị dữ liệu tick cho backtest

Spread biến động: chi phí mà spread cố định che giấu
Nhiều bài kiểm tra dùng một giá trị spread duy nhất, ví dụ 0.8 pip cho EUR/USD. Spread thực tế biến động suốt cả ngày: hẹp khi phiên London và New York giao nhau, rộng hơn trong phiên châu Á, rộng vài pip trong vài phút quanh rollover hằng ngày và quanh các tin tức quan trọng. Nguyên nhân được trình bày trong hướng dẫn của chúng tôi về vì sao spread forex giãn rộng.
Spread cố định sai một cách có hệ thống, vì các chiến lược không giao dịch vào thời điểm ngẫu nhiên. Chiến lược breakout có xu hướng kích hoạt khi biến động tăng, cũng chính là lúc spread giãn rộng. Chiến lược hồi quy về trung bình giao dịch trong phiên châu Á yên ắng sẽ gặp spread cao hơn mức trung bình trong ngày. Với tick bid/ask được ghi lại, mỗi giao dịch trả đúng spread đã thực sự được báo giá tại thời điểm đó.
Ví dụ tính toán (số liệu minh họa). Một chiến lược scalping thực hiện 400 giao dịch khứ hồi mỗi tháng trên EUR/USD với 1 lot tiêu chuẩn (khoảng $10 mỗi pip).
Con số 1.1 pip là ví dụ để minh họa cơ chế, không phải giá trị đo được của bất kỳ broker nào. Hãy đo spread trung bình mà các giao dịch của chiến lược thực sự gặp trong dữ liệu tick.
Giả định về dữ liệu thay đổi kết quả đến mức nào
Để cho thấy tác động của từng giả định, biểu đồ dưới đây lấy một chiến lược ngắn hạn giả định và chỉ thay đổi dữ liệu cùng mô hình khớp lệnh. Các con số mang tính minh họa, được xây dựng để phản ánh hướng và độ lớn tương đối của những tác động mà chúng tôi thường thấy khi chuyển từ kiểm tra dựa trên nến sang kiểm tra dựa trên tick với khớp lệnh thực tế. Chúng không phải kết quả của một chiến lược cụ thể.

Điều quan trọng là quy luật. Mỗi giả định thực tế lấy đi một phần lợi thế, và bước cuối cùng, thời gian khớp lệnh, thường lấy đi nhiều nhất đối với chiến lược ngắn hạn. Nếu một chiến lược vượt qua cả bốn bước với kết quả dương và số giao dịch hợp lý, nó đáng được thử nghiệm thực tế ở quy mô nhỏ. Nếu nó chỉ trông tốt ở cột đầu tiên, lợi thế đó thuộc về mô hình dữ liệu chứ không phải thị trường.
Tick là cần nhưng chưa đủ: thời gian khớp lệnh
Ngay cả một bộ dữ liệu tick hoàn hảo cũng cho kết quả lạc quan nếu mọi lệnh đều khớp tại giá của tick đã kích hoạt nó. Trong giao dịch thực, luôn có độ trễ giữa quyết định và lúc khớp lệnh: nền tảng của bạn, mạng, quá trình xử lý của broker. Trong khoảng trễ đó, thị trường vẫn tiếp tục chạy. Vào ngày yên ắng, tác động chỉ là một phần nhỏ của pip; trong một biến động nhanh, đó là khác biệt giữa giao dịch thắng và giao dịch thua.
Mô hình đúng sẽ tiến về phía trước trong luồng tick một khoảng bằng phần gửi yêu cầu trong thời gian khớp lệnh của bạn và khớp tại giá bid hoặc ask được báo ở thời điểm sau đó. Cách này tạo ra trượt giá thực tế, cả dương lẫn âm, mà không cần đoán một con số trượt giá. Chúng tôi giải thích mô hình này, bốn thành phần của độ trễ và một ví dụ tính toán trong bài viết về khoảng cách thời gian khớp lệnh trong backtest arbitrage độ trễ, và cách đo trượt giá trên các lệnh khớp thực tế trong giải thích về trượt giá forex.
Đây cũng là câu trả lời phổ biến nhất cho câu hỏi “vì sao kết quả thực tế của tôi khác với backtest?” Dữ liệu không có vấn đề; mô hình khớp lệnh đã giả định độ trễ bằng không. Một nguyên tắc kinh nghiệm tốt là kiểm tra với thời gian khớp lệnh đo được của bạn và kiểm tra lại với giá trị gấp 1.5 đến 2 lần. Chiến lược sụp đổ ở giá trị cao hơn là chiến lược mong manh.
Lưu trữ, định dạng và xử lý
Dữ liệu tick có dung lượng lớn, và định dạng bạn chọn ảnh hưởng đến cả dung lượng ổ đĩa lẫn tốc độ mà bộ tối ưu hóa có thể phát lại dữ liệu. Ước tính sơ bộ cho một cặp tiền chính sôi động:
Ước tính theo bậc độ lớn. Các định dạng cột có nén thường thu nhỏ tệp tick thêm vài lần nữa.
- Lưu giá dưới dạng số nguyên tính bằng point (1.08512 → 108512). Cách này tránh lỗi làm tròn dấu phẩy động khi so sánh giá và giảm một nửa dung lượng.
- Phân vùng theo mã và theo ngày. Mỗi mã mỗi ngày một tệp giúp việc kiểm tra khoảng trống, tải lại một phần và tối ưu hóa song song trở nên đơn giản.
- Giữ nguyên tệp thô. Làm sạch sang một bộ dữ liệu riêng và lưu nhật ký làm sạch để bạn có thể tái tạo bất kỳ kết quả nào.
- Giữ CSV để trao đổi. Một định dạng đơn giản gồm dấu thời gian, bid và ask là thứ mà hầu hết công cụ đều nhập được. Ví dụ, SharpTrader Optimizer chấp nhận dữ liệu tick của riêng bạn dưới dạng CSV với dấu thời gian, bid và ask.
Những cạm bẫy thường gặp
- Gọi nến nội suy là “dữ liệu tick”. Hãy kiểm tra xem công cụ của bạn phát lại báo giá được ghi lại hay tạo chúng từ nến.
- Kiểm tra trên giá mid. Bộ dữ liệu chỉ có giá mid bỏ qua hoàn toàn spread; chi phí phải đến từ bid và ask.
- Trộn nhiều nguồn trong một bài kiểm tra. Ghép tệp của hai nhà cung cấp tạo ra bước nhảy giả tại điểm nối và các chế độ spread khác nhau trong cùng một giai đoạn.
- Bỏ qua múi giờ và giờ mùa hè. Bộ lọc phiên và logic rollover hằng ngày bị lệch một cách âm thầm.
- Lấp khoảng trống bằng giá bịa ra. Chiến lược có thể “giao dịch” trong lúc gián đoạn mà thực tế không hề có báo giá. Thay vào đó, hãy loại trừ các khoảng trống.
- Làm sạch quá mức. Xóa mọi biến động lớn sẽ loại bỏ các đột biến tin tức và bước nhảy mà một số chiến lược được xây dựng để giao dịch.
- Khớp lệnh không độ trễ. Khớp lệnh hoàn hảo tại tick tín hiệu khiến gần như mọi chiến lược ngắn hạn đều trông có lãi.
- Tối ưu hóa trên toàn bộ dữ liệu. Không có giai đoạn ngoài mẫu và kiểm tra walk-forward, một lưới tham số lớn sẽ tìm ra một đường cong khớp với quá khứ và không gì khác.
Dữ liệu tick trong SharpTrader Optimizer
Chúng tôi xây dựng SharpTrader Optimizer dựa trên các điểm trong hướng dẫn này. Công cụ phát lại tick bid/ask lịch sử thực thay vì nến nội suy, lấy spread từ mọi tick và cho phép bạn đặt thời gian khớp lệnh tính bằng mili giây để mỗi lệnh được khớp từ luồng tick sau khoảng trễ đó. Bạn có thể dùng lịch sử tick BJF Feed được ghi tại các node London, Tokyo và New York, hoặc nhập tick từ broker của bạn dưới dạng CSV. Lưới tham số chạy trên mọi nhân CPU, điều này quan trọng khi một năm dữ liệu của một cặp tiền lên tới hàng chục triệu tick.
Nếu bạn đã có chiến lược riêng, bài viết về kiểm tra bot của riêng bạn trong SharpTrader trình bày toàn bộ quy trình từ mã nguồn đến tối ưu hóa ở cấp độ tick.
Kiểm tra trên đúng những tick mà chiến lược của bạn sẽ gặp
Tick bid/ask thực, spread biến động trên mọi báo giá và thời gian khớp lệnh của broker tính bằng mili giây: ba yếu tố đầu vào quyết định một chiến lược ngắn hạn có trụ vững trong giao dịch thực hay không.
Khám phá SharpTrader OptimizerĐọc: khoảng cách thời gian khớp lệnh
Máy quét chênh lệch giá miễn phí + khóa học email ngắn
Nhận liên kết máy quét miễn phí và vài email ngắn, thực tế từ Boris: chênh lệch giá thực sự có ý nghĩa gì sau chi phí, cách kiểm thử chiến lược trước khi mạo hiểm tiền thật và công cụ nào phù hợp với thị trường của bạn. Không thổi phồng. Email được gửi bằng tiếng Anh.
Câu hỏi thường gặp
Dữ liệu tick forex là gì?
Dữ liệu tick forex là bản ghi mọi thay đổi báo giá của một cặp tiền, kèm dấu thời gian, giá bid, giá ask và đôi khi khối lượng chào giá. Nó giữ đúng thứ tự, thời điểm và spread của các lần cập nhật giá, những thứ mà dữ liệu nến làm mất.
Tôi có thể lấy dữ liệu tick forex miễn phí ở đâu?
Một số broker ECN và nhà tổng hợp công bố miễn phí tick bid/ask lịch sử cho các cặp tiền chính, và nhiều broker cho phép bạn tải lịch sử của riêng họ. Kho lưu trữ miễn phí hữu ích cho nghiên cứu, nhưng chúng thể hiện giá của một nơi giao dịch, vì vậy hãy xác nhận kết quả cuối cùng trên tick ghi lại từ broker của chính bạn.
Dữ liệu tick có tốt hơn dữ liệu 1 phút để backtest không?
Với các chiến lược có mục tiêu và cắt lỗ trong phạm vi vài pip, scalping, giao dịch tin tức và arbitrage, câu trả lời là có: nến một phút che giấu thứ tự giá cao nhất và thấp nhất, các bước nhảy giá và spread thực. Với chiến lược swing có cắt lỗ rộng, dữ liệu một phút sạch với spread thực tế thường là đủ.
Vì sao tôi nhận được kết quả backtest khác nhau trên hai nguồn dữ liệu?
Forex giao ngay không có băng giao dịch trung tâm, nên mỗi nguồn là góc nhìn của một nơi giao dịch khác nhau. Spread, tần suất báo giá, múi giờ, cách xử lý giờ mùa hè và quy tắc làm sạch đều khác nhau. Hãy so sánh giá và spread theo giờ giữa hai bộ dữ liệu để tìm nguyên nhân, và tin vào nguồn gần nhất với nơi khớp lệnh của bạn.
Một năm dữ liệu tick forex cần bao nhiêu dung lượng lưu trữ?
Với một cặp tiền chính sôi động, khoảng hàng chục triệu tick mỗi năm: khoảng 2 GB dưới dạng văn bản CSV hoặc khoảng 0.6 GB ở định dạng nhị phân gọn trước khi nén. Nhiều cặp tiền qua nhiều năm sẽ nhanh chóng lên tới hàng chục gigabyte.
Vì sao backtest bằng dữ liệu tick của tôi cho thấy khớp lệnh hoàn hảo?
Vì bài kiểm tra khớp mỗi lệnh tại tick đã tạo ra tín hiệu. Lệnh thực cần thời gian để đến broker, và giá thay đổi trong khoảng đó. Hãy mô phỏng thời gian khớp lệnh bằng cách tiến về phía trước trong luồng tick và khớp tại giá bid hoặc ask ở thời điểm sau đó, đồng thời kiểm tra với độ trễ gấp 1.5 đến 2 lần độ trễ bạn đo được.
Tôi cần cả bid và ask, hay chỉ giá mid là đủ?
Bạn cần cả hai. Lệnh mua khớp ở giá ask và lệnh bán khớp ở giá bid, nên spread là chi phí thực trên mọi giao dịch. Bộ dữ liệu chỉ có giá mid loại bỏ chi phí đó và khiến các chiến lược ngắn hạn trông tốt hơn thực tế.
Bài viết này mang tính giáo dục và không phải là lời khuyên tài chính. Các ví dụ, biểu đồ và số liệu được ghi là minh họa không phải số đo của bất kỳ broker hay chiến lược cụ thể nào; nguồn dữ liệu, quy ước và chi phí khác nhau giữa các nhà cung cấp và thay đổi theo thời gian.