Trang chủBlogChiến Lược TradingGOOGLE COLAB: LÀM QUANT MÀ KHÔNG CẦN CÀI PYTHON TRÊN MÁY
GOOGLE COLAB: LÀM QUANT MÀ KHÔNG CẦN CÀI PYTHON TRÊN MÁY
Chiến Lược Trading

GOOGLE COLAB: LÀM QUANT MÀ KHÔNG CẦN CÀI PYTHON TRÊN MÁY

GOOGLE COLAB vs QUANT

Ngọc Hải LươngNgọc Hải Lương
27/7/2026
10 phút phút đọc
177 lượt xem

Phần 1: Rào cản đầu tiên của Quant đôi khi không phải toán, mà là… cài Python

Nhiều người bắt đầu tìm hiểu Quant với một ý tưởng khá đơn giản: lấy dữ liệu cổ phiếu, viết vài điều kiện mua bán rồi kiểm tra xem chiến lược có thực sự hiệu quả hay không. Nhưng chưa kịp kiểm tra thị trường thì đã phải xử lý Python, môi trường ảo, thư viện, phiên bản phần mềm và những dòng lỗi màu đỏ dài hơn cả báo cáo thường niên. Bộ phim này gọi là chưa backtest được chiến lược nhưng đã được máy tính stress test trước. Google Colab giải quyết đúng đoạn khó chịu đó. Đây là môi trường viết và chạy Python trực tiếp trên trình duyệt, không cần cài Python, không cần cấu hình máy và cũng không cần sở hữu một chiếc laptop quá mạnh. Chỉ cần tài khoản Google, một trình duyệt và một file notebook là đã có thể xử lý dữ liệu, chạy code, tạo bảng kết quả và vẽ biểu đồ ngay trên nền web.

Điểm tiện nhất của Colab là mọi thứ được đặt trong cùng một tài liệu. Phần giải thích nằm cạnh đoạn code, bảng dữ liệu nằm ngay dưới kết quả chạy, còn biểu đồ xuất hiện tại đúng vị trí cần phân tích. Người mới không phải mở năm phần mềm chỉ để kiểm tra một ý tưởng đơn giản. Notebook cũng có thể được lưu trên Google Drive và chia sẻ tương tự một tài liệu trực tuyến, nên rất phù hợp để học, nghiên cứu hoặc gửi cho người khác kiểm tra lại. Một chiến lược được trình bày bằng notebook minh bạch hơn rất nhiều so với việc chỉ đăng một biểu đồ lợi nhuận đi lên rồi tuyên bố “hệ thống đã được kiểm chứng”. Người đọc có thể xem dữ liệu lấy từ đâu, điều kiện mua bán là gì, chi phí được tính ra sao và liệu code có vô tình đọc trước tương lai hay không.

Tuy nhiên, Colab chỉ giúp bỏ bớt rào cản kỹ thuật, chứ không biến một đoạn code thành lợi thế đầu tư. Môi trường chạy có thể bị ngắt sau một thời gian không hoạt động, dữ liệu trong bộ nhớ có thể mất và tài nguyên miễn phí không được bảo đảm cố định. Vì vậy, Colab rất phù hợp cho việc học, thử nghiệm và nghiên cứu, nhưng không nên được dùng như một hệ thống giao dịch tự động chạy liên tục. Code cần được lưu trong notebook, dữ liệu quan trọng nên xuất ra Google Drive, còn mỗi lần nghiên cứu nên ghi rõ ngày chạy, nguồn dữ liệu và phiên bản chiến lược. Không thì hôm nay chiến lược Sharpe 1,5, ngày mai runtime mất sạch biến, người dùng lại tưởng alpha cũng có tính năng tự hủy.

9a476be1-759d-4a86-a2fc-b7341bb153ac.png

Phần 2: Từ một notebook trống đến chiến lược MA200 có thể kiểm chứng

File thực hành đi kèm bài viết sử dụng cổ phiếu FPT làm ví dụ và xây dựng một chiến lược rất đơn giản: khi giá đóng cửa nằm trên đường trung bình 200 phiên thì nắm giữ cổ phiếu; khi giá xuống dưới MA200 thì chuyển sang tiền mặt. Đây không phải chiến lược dự báo ngày mai FPT tăng hay giảm, cũng không cố mua đúng đáy hoặc bán đúng đỉnh. Nó chỉ kiểm tra một giả thuyết khá phổ biến trong phân tích kỹ thuật: cổ phiếu thường dễ tạo lợi nhuận hơn khi đang nằm trong xu hướng dài hạn tích cực, còn việc đứng ngoài một phần giai đoạn giảm sâu có thể giúp hạn chế drawdown. Nói đời thường hơn, MA200 không hứa đưa người dùng lên tàu từ ga đầu tiên. Nó chấp nhận mua muộn vài ga và xuống muộn vài ga, miễn là tránh được việc ngồi nguyên trên tàu khi đường ray đang lao xuống dốc.

Notebook mặc định lấy dữ liệu FPT từ năm 2018 đến ngày chạy hiện tại. Người dùng có thể thay mã cổ phiếu, ngày bắt đầu, độ dài đường trung bình và mức chi phí giao dịch ngay trong phần cấu hình. Dữ liệu được tải về dưới dạng OHLCV, gồm giá mở cửa, giá cao nhất, giá thấp nhất, giá đóng cửa và khối lượng. Sau đó, notebook kiểm tra dữ liệu thiếu, dòng trùng, giá bằng 0, sai kiểu dữ liệu và những phiên có biến động bất thường. Bước này nghe không hấp dẫn bằng việc tìm điểm mua, nhưng lại là phần quyết định toàn bộ chất lượng backtest. Một phiên chia cổ tức hoặc thưởng cổ phiếu không được điều chỉnh đúng có thể khiến biểu đồ xuất hiện một cú giảm giả. Mô hình nhìn thấy giá giảm mạnh, kích hoạt lệnh bán và tạo ra kết quả sai từ đầu đến cuối. Chiến lược có thể rất thông minh, nhưng dữ liệu sai thì code chỉ đang phân tích một câu chuyện chưa từng xảy ra.

Phần quan trọng nhất là cách xử lý tín hiệu. Nếu giá đóng cửa hôm nay cao hơn MA200, tín hiệu chỉ được áp dụng từ phiên tiếp theo. Quy tắc này giúp tránh look-ahead bias, tức mô hình vừa dùng giá đóng cửa để tạo tín hiệu, vừa giả định đã mua được tại chính mức giá đóng cửa đó. Trong thực tế, người giao dịch chỉ biết chắc giá đóng cửa sau khi phiên đã kết thúc. Vì vậy, notebook mô phỏng vị thế từ phiên kế tiếp và tính lợi nhuận theo giá mở cửa. Mỗi lần chuyển từ tiền mặt sang cổ phiếu hoặc từ cổ phiếu về tiền mặt đều bị trừ chi phí một chiều mặc định 0,25%, có thể sửa theo biểu phí thực tế. Đây là điểm mà nhiều backtest đẹp thường bắt đầu mất phong độ. Trước phí, chiến lược giao dịch liên tục có thể trông rất năng động. Sau phí, thuế và trượt giá, phần “alpha” đôi khi chỉ còn đủ trả tiền cho công ty chứng khoán.

Notebook cũng tạo riêng nhật ký giao dịch, trong đó ghi ngày mua, ngày bán, giá vào, giá ra, thời gian nắm giữ và lợi nhuận sau chi phí. Nhờ vậy, kết quả không còn là một đường equity curve bí ẩn. Mỗi giao dịch đều có thể được mở ra kiểm tra thủ công. Đây là thói quen rất quan trọng khi làm Quant, bởi một chiến lược có tổng lợi nhuận tốt chưa chắc đã có lợi thế ổn định. Có thể toàn bộ kết quả đến từ một lệnh duy nhất trong một giai đoạn thị trường tăng mạnh, còn phần lớn giao dịch còn lại đều thua. Nhìn mỗi con số cuối cùng mà không nhìn cấu trúc giao dịch cũng giống xem một doanh nghiệp lãi lớn rồi bỏ qua việc lợi nhuận đến từ bán tài sản.

Phần 3: Đánh giá chiến lược thế nào để không bị một biểu đồ đẹp dẫn dắt

Sau khi chạy backtest, notebook đặt chiến lược MA200 cạnh phương án Buy and Hold và đánh giá bằng nhiều chỉ số khác nhau. Total Return cho biết một đồng vốn cuối cùng tăng thành bao nhiêu. CAGR cho biết tốc độ tăng trưởng kép bình quân năm. Volatility phản ánh mức độ biến động của lợi nhuận. Sharpe Ratio đo mức lợi nhuận tạo ra tương đối so với rủi ro biến động. Maximum Drawdown cho biết tài khoản từng giảm sâu nhất bao nhiêu từ đỉnh xuống đáy. Calmar Ratio so sánh tốc độ tăng trưởng với mức drawdown lớn nhất. Exposure cho biết chiến lược thực sự nắm giữ cổ phiếu bao nhiêu phần trăm thời gian, còn số giao dịch và tỷ lệ thắng giúp đánh giá kết quả đến từ một quy trình lặp lại hay chỉ nhờ vài tình huống thuận lợi.

Ví dụ, chiến lược MA200 có thể tạo CAGR thấp hơn Buy and Hold nhưng Maximum Drawdown lại nhỏ hơn đáng kể và chỉ tham gia thị trường khoảng 60–70% thời gian. Trong trường hợp này, không thể kết luận đơn giản rằng chiến lược kém hơn chỉ vì lợi nhuận thấp hơn. Với người ưu tiên bảo vệ vốn, giảm biến động và tránh những giai đoạn giảm sâu, MA200 có thể phù hợp hơn. Với người chấp nhận drawdown lớn để tối đa hóa lợi nhuận dài hạn, Buy and Hold có thể hấp dẫn hơn. Quant không tạo ra một đáp án chung cho mọi người. Nó buộc từng người phải nói rõ mình đang tối ưu điều gì: lợi nhuận cao nhất, drawdown thấp nhất, thời gian hồi vốn ngắn nhất hay mức biến động phù hợp nhất với tâm lý.

Notebook còn kiểm tra độ nhạy của tham số bằng cách chạy lại chiến lược với MA100, MA150, MA200 và MA250. Đây là bước rất quan trọng vì một hệ thống chỉ hoạt động đẹp đúng tại MA200 nhưng thất bại hoàn toàn ở MA190 hoặc MA210 thường không đáng tin. Khi kết quả thay đổi quá mạnh chỉ vì điều chỉnh một tham số nhỏ, nhiều khả năng chiến lược đang phù hợp với dữ liệu quá khứ hơn là nắm bắt một quy luật có khả năng tồn tại trong tương lai. Một chiến lược bền hơn thường không cần đúng một con số thần kỳ. Nó có thể hoạt động ở cả một vùng tham số tương đối rộng, dù kết quả không phải lúc nào cũng tối ưu.

Cũng cần nhìn thẳng vào giới hạn của bài thử này. Một mã FPT không đủ để chứng minh chiến lược MA200 có lợi thế trên toàn thị trường. Dữ liệu công khai có thể thiếu hoặc sai. Chi phí cố định không phản ánh đầy đủ trượt giá, thanh khoản, biên độ trần sàn và lệnh không khớp. MA200 cũng thường gặp nhiều tín hiệu nhiễu khi thị trường đi ngang. Vì vậy, kết quả của notebook chỉ nên được xem là bước đầu của một quy trình nghiên cứu. Bước tiếp theo là chạy cùng chiến lược trên nhiều cổ phiếu đủ thanh khoản, kiểm tra ở các giai đoạn tăng, giảm và đi ngang, giữ lại một phần dữ liệu ngoài mẫu, đồng thời so sánh kết quả trước và sau chi phí.

Google Colab vì vậy không phải cỗ máy kiếm tiền miễn phí. Giá trị lớn nhất của nó nằm ở việc biến một câu nói mơ hồ như “MA200 có vẻ hiệu quả” thành một bài kiểm chứng có dữ liệu, quy tắc, chi phí, benchmark, drawdown và điều kiện để bị bác bỏ. Trước đây, tranh luận về chỉ báo thường kết thúc bằng việc mỗi bên đưa ra một biểu đồ đẹp. Với Colab, cả notebook có thể được gửi đi để dữ liệu tự VAR.

Tải file Google Colab – Backtest chiến lược MA200 với FPT

Sau khi tải file, đưa notebook lên Google Drive, chọn mở bằng Google Colab và bấm Run all. Notebook sẽ tự tải dữ liệu mới tại thời điểm chạy, thực hiện backtest, tạo nhật ký giao dịch, tính các chỉ số đánh giá và so sánh chiến lược với Buy and Hold.