CAFE NOTEBOOK

Lập trình và đầu tư: Hệ thống giao dịch tự động - autotrade (phần 2)

lap-trinh-va-dau-tu-phan-2

** Lưy ý: Nội dung phù hợp với người mới bắt đầu, nếu bạn là 1 protrader hoăc là nhà đầu tư chuyên nghiệp có thể bạn đã biết những nội dung này và mình hi vọng bạn để lại cho mình 1 lời khuyên tốt hơn. Chân thành cảm ơn !

Chào các anh em trader đang “cày” autotrade, sau phần 1 mình đã nói sơ qua autotrade là gì và tại sao nó lại khiến nhiều người vừa mê vừa sợ. Hôm nay, phần 2 mình sẽ đi chậm hơn, sâu hơn, để anh em thật sự nắm được bản chất: có những loại bot nào đang chạy ngoài kia, và một hệ thống bot đúng nghĩa được xây dựng ra sao. Mình viết dài, từ tốn, không gạch đầu dòng nhiều, để anh em đọc như đang ngồi cà phê tám chuyện với một thằng đã từng cháy vài tài khoản vì bot.

Trước khi code, phải hiểu mình đang chơi loại bot gì

Mỗi loại bot giống như mỗi phong cách yêu vậy – có kiểu thích dài hạn, có kiểu thích “đánh nhanh rút gọn”, có kiểu lại thích “chơi chắc ăn không lỗ”. Nếu không hiểu rõ mình thuộc team nào, rất dễ build ra con bot đẹp trên giấy nhưng live thì… khóc không ra tiếng.

Loại đầu tiên, và cũng là loại mình thấy anh em mới chơi hay bắt đầu nhất, chính là bot theo xu hướng – trend-following. Con bot này đơn giản lắm: thị trường lên thì nó mua, thị trường xuống thì nó bán hoặc đứng im. Nó không cố gắng đoán đỉnh đoán đáy, chỉ việc “đi cùng đám đông”. Nhiều anh em dùng EMA crossover, MA crossover, hay kết hợp thêm RSI để lọc tín hiệu, kiểu như EMA 7 cắt lên EMA 19 + RSI dưới 30 thì vào lệnh mua. Ưu điểm của nó là dễ hiểu, dễ code, dễ backtest, phù hợp với anh em thích swing hoặc position trading, không cần nhìn chart mỗi ngày. Nhưng nhược điểm thì đau đầu: khi thị trường đi ngang, sideways, nó sẽ liên tục bị fake breakout, quét stop-loss liên tục, tài khoản teo dần vì commission và spread.

Ngược lại hoàn toàn là bot mean-reversion, kiểu “giá đi xa trung bình thì sẽ quay về”. Con bot này thấy giá lên quá cao so với đường trung bình thì bán khống, xuống quá thấp thì mua vào. Nó hay dùng Bollinger Bands, RSI ở vùng quá mua quá bán, hoặc các mô hình thống kê. Nếu thị trường có tính dao động rõ ràng, ít trend mạnh, bot này ăn rất ngọt. Nhưng khi thị trường có xu hướng mạnh thật sự, nó sẽ liên tục “đu đỉnh” hoặc “bắt đáy”, tài khoản có thể bốc hơi chỉ trong vài cây nến lớn. Vì vậy anh em chơi mean-reversion thường phải siết risk management cực chặt.

Tiếp theo là dòng scalping và HFT – dân chơi tốc độ. Bot này đặt hàng chục, hàng trăm lệnh một ngày, ăn vài pip mỗi lần, cộng dồn lại thành lợi nhuận. Nó đòi hỏi hạ tầng khủng: VPS đặt gần sàn, latency dưới 10ms, code tối ưu đến mức từng microsecond. Mình từng thấy nhiều team Việt Nam chơi scalping crypto trên Binance, Bybit, ăn ngon một thời, rồi sàn tăng phí, tăng spread, hoặc thay đổi engine khớp lệnh một cái là cả hệ thống chết đứng. Loại này không dành cho người mới, trừ khi bạn có tiền và sẵn sàng mất tiền để học.

Còn một kiểu rất “an toàn” trên lý thuyết, đó là arbitrage và market-making. Bot tìm chênh lệch giá giữa các sàn, mua sàn rẻ bán sàn đắt gần như cùng lúc, hoặc đứng làm market maker cung cấp thanh khoản để ăn spread. Trong crypto thì kiểu này từng rất hot vì có hàng trăm sàn, chênh lệch đôi khi lên đến vài phần trăm. Nhưng giờ cạnh tranh quá khốc liệt, chỉ còn các team có hạ tầng colocation, băng thông riêng, và vốn lớn mới sống được. Anh em nhỏ lẻ chơi arbitrage giờ gần như không còn cửa, trừ khi tìm được niche rất nhỏ.

Cuối cùng là dòng bot hiện đại nhất: bot học máy, AI, reinforcement learning. Loại này không dựa vào quy tắc cứng nữa, mà để mô hình tự học từ dữ liệu lịch sử, từ volume, từ order flow, thậm chí từ sentiment Twitter. Nếu train tốt, nó có thể tìm ra những pattern mà con người không bao giờ nghĩ tới. Nhưng cái giá phải trả là cực kỳ phức tạp, dễ overfit, cần dữ liệu sạch, cần GPU, và đặc biệt cần anh em hiểu thật sâu về machine learning, nếu không sẽ chỉ tạo ra một con bot “thần thánh trên backtest, phàm nhân ngoài đời”.

Ngoài ra còn một kiểu bot mà mình rất thích khuyên anh em dài hạn: portfolio rebalancing bot. Nó không giao dịch nhiều, chỉ ngồi canh danh mục, tự động mua thêm coin đang rẻ, bán bớt coin đang đắt để giữ tỷ lệ mong muốn, hoặc tự động cắt lỗ, chốt lời theo risk rule. Loại này phù hợp với người không muốn nhìn chart mỗi ngày, chỉ muốn để tiền tự sinh lời một cách kỷ luật.

Mục tiêu / phong cách trade Loại bot phù hợp Kiến trúc nên áp dụng
Trade theo xu hướng swing / medium-term (như EMA crossover + RSI) Trend-following bot Data collection → Signal generation (MA/RSI) → Risk mgmt → Execution → Logging → Backtest / Paper-trade
Đảo chiều khi giá quay về trung bình (mean reversion) Mean-reversion bot tương tự, với chiến lược phù hợp + risk mgmt chặt
Trade ngắn hạn, nhiều lệnh / tận dụng dao động nhỏ Scalping / HFT bot Kiến trúc tối ưu — latency thấp, order management mạnh, monitoring real-time, risk limits
Ưu tiên ổn định, ít giao dịch, đa tài sản Portfolio-management / Rebalancing bot Data collection (nhiều tài sản) → logic phân bổ + rebalance → Monitoring + Reporting
Muốn khai thác pattern phức tạp, dữ liệu đa chiều Bot định lượng / ML-based Kiến trúc nhiều layer: data, feature engineering, model training/evaluation, execution, monitoring, feedback loop

Kiến trúc chuẩn của một con bot thật sự đáng tiền

Dù bạn chọn loại bot nào đi nữa, thì một hệ thống chuyên nghiệp đều phải có những tầng lớp giống nhau. Mình hay hình dung nó như một nhà máy: có kho nguyên liệu, có dây chuyền sản xuất, có kiểm soát chất lượng, có kho thành phẩm, và có bảo vệ đứng canh.

Đầu tiên là tầng thu thập và làm sạch dữ liệu. Đây là nền móng. Dữ liệu bẩn, thiếu, hoặc bị spike là nguyên nhân số một khiến bot ra tín hiệu nhảm. Một con bot tử tế phải biết lấy giá real-time, order book, volume, historical data, và nếu cao cấp hơn thì cả tin tức, sentiment. Sau đó phải normalize, xử lý missing value, lọc outlier. Mình từng mất 3 tháng chỉ để làm sạch dữ liệu trước khi train model, nhưng đáng giá từng giây.

Tầng thứ hai là trái tim: strategy & signal generation. Với bot đơn giản thì đây chỉ là chỗ kiểm tra EMA cắt nhau, RSI bao nhiêu. Với bot phức tạp thì là chỗ chạy model dự đoán xác suất giá lên xuống trong 5 cây nến tới. Quan trọng là phải có decision logic rõ ràng: hôm nay có được phép vào lệnh không, tài khoản đang drawdown bao nhiêu, đã mở bao nhiêu vị thế…

Tầng thứ ba là risk management – phần mà 90% anh em mới làm qua loa rồi cháy tài khoản. Bot phải tự động tính position size theo % vốn, theo ATR, phải biết tự đặt stop-loss, take-profit, phải biết dừng giao dịch khi drawdown chạm ngưỡng. Mình từng thấy bot tín hiệu rất chuẩn, thắng 70% lệnh, nhưng vì fixed lot nên chỉ cần 3 lệnh thua liên tiếp là bay 60% tài khoản.

Tầng thứ tư là execution – nơi bot thực sự “đánh nhau” với thị trường. Kết nối API, gửi lệnh, quản lý partial fill, cancel lệnh cũ, retry khi lỗi nonce, tính slippage… Đây là nơi bot scalping và arbitrage sống hay chết.

Tầng thứ năm là monitoring, logging, alerting. Bot ngon đến mấy cũng sẽ có ngày lỗi API, lỗi kết nối, lỗi logic. Nếu không có alert gửi Telegram ngay khi drawdown vượt 5%, hoặc khi không có lệnh nào khớp trong 30 phút, thì bạn sẽ chỉ phát hiện ra khi tài khoản đã âm. Mình luôn bật 3 lớp alert: email, Telegram, và cả gọi điện nếu drawdown quá 15%.

Cuối cùng, trước khi thả bot ra tiền thật, bắt buộc phải có backtest và paper-trade nghiêm túc. Backtest phải tính đủ phí, slippage, spread biến đổi. Paper-trade phải chạy ít nhất 1–2 tháng real-time để xem execution có ổn không. Mình hay chia giai đoạn: local test → paper trade → live với 5–10% vốn → từ từ tăng vốn.

Làm sao để chọn đúng cho bản thân?

Nếu bạn giống mình ngày xưa: thích EMA + RSI, thích swing, ghét noise, muốn bot chỉ check mỗi phút một lần, thì cứ mạnh dạn đi trend-following hoặc mean-reversion với risk management chặt. Kiến trúc chỉ cần đơn giản: data → signal → risk → execution → logging là đủ sống.

Còn nếu bạn thích tốc độ, thích ngồi nghe tiếng “ting ting” lệnh khớp, thì chuẩn bị tiền thuê VPS Frankfurt hoặc Singapore, tối ưu code đến mức điên loạn, và chấp nhận sống chung với slippage.

Còn nếu bạn lười, chỉ muốn để tiền tự chạy, thì làm một con portfolio rebalancing bot là đẹp nhất.

Lời kết phần 2

Autotrade không phải là cỗ máy in tiền, mà là một hệ thống kỷ luật được code hóa. Bot giỏi đến mấy cũng chỉ là công cụ, còn người điều khiển cuối cùng vẫn là bạn. Hãy chọn đúng loại bot phù hợp với tính cách, thời gian, và túi tiền của mình. Hãy xây nó theo kiến trúc modular để sau này dễ mở rộng, dễ sửa chữa. Và quan trọng nhất: luôn luôn backtest, paper-trade, và không bao giờ bỏ qua risk management.

Phần 3 mình sẽ chia sẻ cách build một con bot EMA + RSI + ATR hoàn chỉnh bằng Python, có đầy đủ module như mình vừa kể ở trên, kèm skeleton code chạy được ngay. Ai muốn nhận code thì cứ comment “GỬI CODE” hoặc inbox mình, mình sẽ gửi bản đầy đủ có comment tiếng Việt dễ hiểu.

Còn bây giờ, nghỉ ngơi một chút đã, rồi tiếp tục chiến nhé anh em!


Bình luận

Bài mới