inflearn logo

Bắt đầu từ kiểm chứng backtest đầu tư định lượng — xử lý tình trạng tối ưu hóa quá mức trong Python

Tự xây dựng một engine backtest khoảng 300 dòng mà không cần thư viện bên ngoài, đồng thời dùng kiểm thử tự động để ngăn việc bỏ sót dữ liệu tương lai và chi phí. Nửa sau là phần kiểm định: sàng lọc các quy tắc bằng cách kiểm tra trượt giá, độ trễ khớp lệnh, kiểm định cuốn chiếu và hiện tượng khai thác dữ liệu; đồng thời tự động tạo một báo cáo kiểm định dài một trang cho mỗi quy tắc.

1 học viên đang tham gia khóa học này

Độ khó Cơ bản

Thời gian Không giới hạn

Python
Python
Statistics
Statistics
Financial Technology
Financial Technology
Investment
Investment
Python
Python
Statistics
Statistics
Financial Technology
Financial Technology
Investment
Investment

Bạn sẽ nhận được điều này sau khi học.

  • Engine backtest Python (khoảng 300 dòng) ngăn chặn một cách có hệ thống việc bỏ sót dữ liệu tương lai và chi phí, cùng 28 bài kiểm thử pytest.

  • Mô hình khớp lệnh có tính đến trượt giá, bước giá, độ trễ một ngày, giới hạn khối lượng giao dịch và mức trượt giá hòa vốn.

  • Kiểm định walk-forward và rà soát hiện tượng dò tìm dữ liệu (kiểm định dịch chuyển ngẫu nhiên, p-value hiệu chỉnh, bootstrap theo khối)

  • Báo cáo xác minh gồm 8 mục được tự động tạo cho từng quy tắc, báo cáo Excel và biểu đồ đường cong tài sản.

📏 Khối lượng: 16 bài học + 1 bài thưởng · 25.750 ký tự nội dung chính · 91 khối mã (không tính bài thưởng) · 34 bài kiểm tra mã đính kèm đã vượt qua (bao gồm 6 bài thưởng) — nếu làm theo cả phần mã thì mất khoảng 234 phút (không tính bài thưởng; giả định: mỗi khối mã mất 2 phút, tốc độ đọc 500 ký tự/phút)

Kết quả thực nghiệm của khóa học này — giữ nguyên mã và kết quả như trong bản thảo gốc

  • Trong giai đoạn học, tổ hợp đường trung bình động được chọn cho kết quả dương ở cả 9 cửa sổ (3.0~24.8%), nhưng khi áp dụng nguyên vẹn vào giai đoạn ngay sau đó thì có 4 lần kết quả bằng hoặc thấp hơn 0. Kết quả walk-forward khi nối tiếp giai đoạn xác thực là 22.1%, còn kết quả “gian lận” được chọn sau khi xem toàn bộ dữ liệu trước là 38.4% — chênh lệch đó chính là mức độ quá khớp (Ví dụ A, bài 13)

  • Trong số 16 ứng viên, ứng viên đứng đầu (MA10/40, +47.9%) nếu xét riêng có giá trị p là 0.103, nhưng giá trị p đã hiệu chỉnh để phản ánh việc lựa chọn từ 16 ứng viên là 0.746 — không thể phân biệt với kết quả ngẫu nhiên (Ví dụ A, bài 14)

  • Cùng một quy tắc RSI đạt +65.5% ở Ví dụ A nhưng lại là -75.9% ở Ví dụ B. Tỷ lệ thắng 100% ở Ví dụ A là với 5 giao dịch (Bài 10)

  • Quy tắc có vẻ tốt nhất với mức tăng lũy kế 65,5% so với 3,8% khi nắm giữ cũng chỉ vượt qua 5/8 câu hỏi trong báo cáo kiểm định — bị chặn bởi 5 giao dịch, CAGR ở nhóm 5% thấp nhất của bootstrap là -0,3% và MDD ở nhóm 5% tệ nhất là -35,7% (Bài 15)

  • Xem trước miễn phí bài 0 và 1 — bạn có thể đọc trước khi mua về cách sử dụng khóa học và “5 cách backtest nói dối”.

  • Các con số trên là ví dụ dữ liệu giả lập được cố định seed để minh họa phương pháp kiểm chứng, không đảm bảo lợi nhuận trong tương lai.

"Quy tắc này có thực sự hiệu quả trong quá khứ không?" Hãy kiểm chứng bằng mã trước khi bỏ tiền vào.

Nhìn biểu đồ bằng mắt thường, ta chỉ nhớ những lúc dự đoán đúng. Phí giao dịch và thuế bị bỏ qua, và ta lầm tưởng rằng mình đã xem giá đóng cửa hôm nay rồi mua ngay ở mức giá đó.
Khóa học này trực tiếp xây dựng một công cụ backtest ngăn những ngộ nhận đó bằng mã, khoảng 300 dòng, không cần thư viện bên ngoài, đồng thời xác nhận bằng kiểm thử tự động rằng công cụ không nói dối. Nửa sau của khóa học tập trung vào kiểm chứng: sàng lọc quy tắc bằng cách kiểm tra độ trượt giá, độ trễ khớp lệnh, walk-forward và data snooping, rồi tự động tạo một bản báo cáo kiểm chứng cho từng quy tắc.

Tôi đã cố ý nhân đôi giá trong 100 ngày cuối cùng của một mã giả định rồi chạy thử. Nếu tín hiệu và đường cong tài sản trong 683 ngày đầu không khác dù chỉ một điểm, thì backtest này không âm thầm sử dụng giá tương lai (hãy tự kiểm chứng bằng ví dụ ở Chương 8).

Chọn tổ hợp đường trung bình động tốt nhất trong giai đoạn huấn luyện (màu xám), rồi áp dụng nguyên trạng cho giai đoạn ngay sau đó (màu xanh, 63 ngày giao dịch; chỉ cửa sổ cuối cùng kết thúc ở thời điểm dữ liệu dừng lại là 27 ngày), thì có 4 trong 9 lần bị lỗ hoặc đạt mức 0%. Kết quả ghép nối theo phương pháp walk-forward là 22.1%, còn kết quả «gian lận» được chọn sau khi xem trước toàn bộ giai đoạn là 38.4% — chênh lệch đó cho thấy mức độ tối ưu hóa quá mức. WFE 0.74 nghĩa là lợi nhuận trung bình mỗi ngày trong giai đoạn kiểm định bằng 74% so với giai đoạn huấn luyện (dữ liệu giả lập, ví dụ ở chương 13. Hiệu suất trong quá khứ không đảm bảo kết quả trong tương lai).

Phù hợp với những người này

  • Nhà đầu tư cá nhân muốn kiểm chứng quy tắc giao dịch của mình bằng các con số (tỷ suất lợi nhuận tích lũy · CAGR · MDD · tỷ lệ thắng)

  • Những người biết cú pháp Python cơ bản (biến, danh sách, hàm, vòng lặp for) nhưng không biết nên bắt đầu viết backtest từ đâu.

  • Nhà phát triển không chắc liệu có thể tin tưởng kết quả của thư viện backtest hay không.

Những gì bạn sẽ có được sau khóa học

  • 5 cái bẫy khiến backtest đánh lừa bạn (dữ liệu tương lai, bỏ sót chi phí, thiên lệch sống sót, tối ưu hóa quá mức, chỉ một mẫu) và mã để ngăn chặn từng cái

  • Tín hiệu tại giá đóng cửa, khớp lệnh vào giá mở cửa ngày hôm sau — mô phỏng khớp lệnh được thiết kế để ngăn việc sử dụng dữ liệu tương lai.

  • Tính chi phí chính xác, bao gồm cả việc làm tròn xuống phần lẻ dưới 1 won của phí giao dịch và thuế giao dịch.

  • "Nếu thay đổi tương lai, tín hiệu quá khứ có còn nguyên không?" Bài kiểm tra — máy phát hiện nói dối có thể gắn vào bất kỳ quy tắc nào

  • Báo cáo Excel tổng hợp và lịch sử giao dịch, biểu đồ đường cong vốn và mức sụt giảm tối đa

  • Mô hình khớp lệnh có tính đến trượt giá, bước giá, độ trễ một ngày và giới hạn khối lượng giao dịch, cùng với “mức trượt giá hòa vốn”

  • Kiểm định walk-forward: lần lượt chạy quá trình huấn luyện → kiểm định để kiểm tra các con số bị thổi phồng như thể 'đã biết trước'

  • Kiểm tra dò tìm dữ liệu: liệu giá trị cao nhất trong 16 ứng viên có khác biệt với ngẫu nhiên hay không (kiểm định dịch chuyển ngẫu nhiên · giá trị p đã hiệu chỉnh · bootstrap khối)

  • Tự động tạo báo cáo kiểm định gồm 8 câu hỏi, danh sách kiểm tra backtest, danh sách kiểm tra khi chuyển sang dữ liệu thực tế

Danh sách bài học (16 bài + phần thưởng)

  • Bài học 0. Cách sử dụng khóa học này — sẽ tạo ra những gì và theo học như thế nào?

  • Bài học 1. 5 cách backtest nói dối bạn

  • Bài 2–3. Chuẩn bị môi trường và dữ liệu: tải CSV dữ liệu ngày và dữ liệu công khai

  • Bài học 4. Tự triển khai các chỉ báo

  • Bài 5. Chuyển quy tắc thành danh sách 'có đang nắm giữ hay không'

  • Bài học 6. Mô phỏng khớp lệnh

  • Bài 7. Các chỉ số hiệu suất

  • Bài học 8. Dùng kiểm thử để tránh tự lừa dối

  • Bài học 9. Báo cáo: Excel và biểu đồ

  • Bài 10. Cách đọc kết quả và kiểm tra hiện tượng quá khớp

  • Bài 11. Thêm quy tắc của riêng mình

  • Bài học 12. Trượt giá và độ trễ khớp lệnh: gỡ bỏ giả định "mua tất cả ở giá mở cửa"

  • Bài 13. Kiểm định cuốn chiếu: Chia giai đoạn để kiểm tra liên tục

  • Bài 14. Data snooping: chạy thử quá nhiều lần khiến cả sự ngẫu nhiên cũng trông có vẻ tốt đẹp

  • Bài 15. Một trang báo cáo kiểm định: cửa ải trước khi bỏ tiền vào

  • Phần thưởng. Chỉ chuyển các quy tắc vượt qua cổng kiểm định thành lệnh mô phỏng

  • Phụ lục. Danh sách kiểm tra, lỗi thường gặp, lời giải bài tập, kiểm tra dữ liệu thực tế, bảng thuật ngữ

Mã nguồn đính kèm (book_code.zip)

7 mô-đun cho engine và kiểm định, 34 bài kiểm thử (pytest, bao gồm 6 bài bổ sung), 14 ví dụ theo từng bài học và tập lệnh chạy hàng loạt, 3 loại dữ liệu ví dụ ảo cùng tập lệnh tạo dữ liệu, tệp cấu hình, ví dụ kết quả chạy (báo cáo Excel, biểu đồ, báo cáo kiểm định), mã lệnh giả lập dùng cho bài học bổ sung (5 tệp trong thư mục bonus). Không sử dụng pandas, chỉ dùng danh sách và vòng lặp for. Python 3.11 trở lên. Cần cài đặt openpyxl, matplotlib và pytest để tạo báo cáo Excel, biểu đồ và chạy kiểm thử tự động.

Hãy lưu ý

  • Khóa học này không phải là tư vấn đầu tư và không khuyến nghị bất kỳ mã cổ phiếu hay chiến lược nào. Khóa học không hướng dẫn kết nối với lệnh giao dịch trên tài khoản thật (giao dịch tự động). Bài học bổ sung chỉ đề cập đến khớp lệnh mô phỏng trên máy tính cục bộ.

  • Các quy tắc về đường trung bình động và RSI trong bài giảng chỉ là ví dụ dùng để luyện tập lập trình; dữ liệu mẫu là mã chứng khoán giả lập được tạo bằng số ngẫu nhiên với seed cố định.

  • Cách lấy dữ liệu chỉ hướng dẫn cho thị trường trong nước (pykrx). Với cổ phiếu nước ngoài, chỉ cần có tệp CSV dữ liệu giá theo ngày là có thể chạy engine, nhưng bạn phải tự điều chỉnh thiết lập chi phí.

  • Hiệu quả trong quá khứ không đảm bảo lợi nhuận trong tương lai; nhà đầu tư tự chịu trách nhiệm về các quyết định đầu tư và kết quả của những quyết định đó.

  • Bản thảo được viết với sự hỗ trợ của AI (Claude Code). Tôi đã chạy và xác nhận 34 bài kiểm thử của mã đính kèm cùng 14 ví dụ theo từng bài học đều đạt; trước khi phát hành, nội dung cũng được kiểm tra riêng bằng AI về tính chính xác và cách diễn đạt.

  • Các bài học trong khóa học này gồm văn bản và mã. Một video trong phần xem trước miễn phí (khoảng 3 phút) là đoạn trích ở phần đầu của video giải thích về cùng chủ đề, giúp bạn xem thử.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà đầu tư cá nhân muốn kiểm chứng quy tắc giao dịch của mình bằng các con số (lợi nhuận tích lũy · CAGR · MDD · tỷ lệ thắng)

  • Dành cho những ai biết cú pháp Python cơ bản nhưng chưa biết nên bắt đầu viết backtest từ đâu.

  • Nhà phát triển không chắc có thể tin tưởng vào kết quả của thư viện backtest hay không.

Cần biết trước khi bắt đầu?

  • Cú pháp Python cơ bản (biến, danh sách, hàm, vòng lặp for), Python 3.11 trở lên

  • Cần cài đặt openpyxl, matplotlib và pytest để tạo báo cáo Excel, biểu đồ và kiểm thử tự động.

Xin chào
Đây là Hypothesis Lab

Tôi là nhà phát triển backend Java·Spring đang làm việc trong ngành. Tôi xây dựng các công cụ backtest và tự động hóa công việc bằng Python, đồng thời trực tiếp vận hành việc tự động hóa các tác vụ phát triển bằng Claude Code. Tôi hệ thống hóa những nội dung có thể áp dụng ngay trong phỏng vấn và công việc thực tế thành các bài giảng dạng văn bản dễ đọc nhanh, kèm mã nguồn.

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của Hypothesis Lab

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Giảm 25% cho thành viên mới

459.067 ₫

25%

612.087 ₫