DỰ ÁN 01: TẠO HỆ THỐNG BACKTEST EVENT-DRIVEN VỚI DỮ LIỆU TICKDATA
I. Ý tưởng chính
Với việc hiện nay gần như không có các thư viện hay dự án Python hỗ trợ backtest chiến lược giao dịch với tickdata (hầu hết data input cho các thư viện này đều ở dạng nến OHLCV), vì vậy tôi đã chỉnh sửa và cập nhật hệ thống Event-Driven Backtesting của Michael Halls Moore được trình bày trong chuỗi các bài viết dưới đây để code có thể backtest dựa trên đầu vào là tick data:
Event-Driven Backtesting with Python - Part I
Event-Driven Backtesting with Python - Part II
Event-Driven Backtesting with Python - Part III
Event-Driven Backtesting with Python - Part IV
Event-Driven Backtesting with Python - Part V
Event-Driven Backtesting with Python - Part VI
Event-Driven Backtesting with Python - Part VII
Event-Driven Backtesting with Python - Part VIII
II. Các chỉnh sửa chính so với code gốc
Các chỉnh sửa chính nằm ở file data.py, tại đó tôi đã dùng hàm resample() của Pandas để chuyển đổi các dữ liệu tick về dạng dữ liệu OHLC theo khung thời gian có thể điều chỉnh được. Kết quả của việc chỉnh sửa này là hệ thống không thể backtest một danh mục với nhiều Symbol cùng lúc như bản gốc. Ngoài ra tôi cũng bổ sung thêm một chiến lược có sẵn là Blade Scalping trên khung M5 trên TraderViet:
Chia sẻ hệ thống Blade Scalping trên khung M5
III. Cách sử dụng
Link tải code:
Bước 0: Chuẩn bị file "Symbol name".csv tickdata có cấu trúc dạng:
Bước 1: Mở file data.py để sửa khung thời gian backtest tại hàm update_tick():
Bước 2: Mở file chiến thuật cần backtest, ví dụ blade scalping.py, chỉnh sửa các tham số dưới dòng "if __name__ == "__main__":"

0 nhận xét: