bản 1.2.0 · 09/2026 · FatBoy AI — aifatboy.com · Hỗ trợ: 0981807460 (Zalo)
Tài liệu này viết cho bạn — người không biết lập trình. Mỗi mục có ảnh chụp màn hình thật, các bước đánh số, và khung "Nếu thấy lỗi X thì làm Y". Bạn chỉ cần làm theo từ trên xuống.
FatBoy Studio là phần mềm chạy trên Windows giúp bạn tự dạy một con bot AI đọc biểu đồ giá, bằng cách cho nó xem dữ liệu thật hàng triệu lần — bạn không phải viết một dòng lệnh nào, chỉ tick chọn và bấm nút. Phần mềm đã kèm sẵn 5 năm dữ liệu nến giờ và nến phút của 5 cặp (EURUSD, USDJPY, XAUUSD, BTCUSDT, ETHUSDT), chia sẵn phần "học" và phần "thi" niêm phong, nên bạn không cần đi tìm dữ liệu ở đâu cả. Sau khi bot học xong, bạn cho nó đi thi trên khúc dữ liệu nó chưa từng thấy, và nếu bot qua được Bộ tiêu chuẩn FatBoy thì bạn có thể đưa nó lên FatBoy Arena (Đấu trường bot) tại aifatboy.com/arena để được chấm công khai — đúng, sai, thắng, thua đều hiện cho mọi người xem và không ai sửa được. Tất cả nằm trong một cửa sổ duy nhất, bên trái là lựa chọn, bên phải là nhật ký chạy thời gian thực.
Nói cho dễ hiểu: bạn là giáo viên, bot là học sinh, 5 năm dữ liệu là sách giáo khoa, khúc "thi" là đề thi niêm phong, và FatBoy Arena là kỳ thi ngoài đời. Việc của bạn là chọn bot học môn gì, chấm điểm thế nào, và học bao lâu.
| Yêu cầu | Chi tiết |
|---|---|
| Hệ điều hành | Windows 10 hoặc Windows 11 (64-bit). Không chạy trên macOS / Linux / điện thoại. |
| Ổ cứng trống | ít nhất 5 GB. Bản tải về ~363 MB, giải nén ra ~1,5 GB (phần mềm + 5 năm dữ liệu), còn lại để chứa các bot bạn train. |
| Python | Không cần cài gì cả. Python và toàn bộ thư viện đã nằm sẵn bên trong thư mục phần mềm. |
| RAM | 8 GB chạy được; 16 GB thì thoải mái. Máy ít RAM xem mục 16 (dòng "Máy đơ / MemoryError"). |
| Card đồ hoạ | Không bắt buộc. Có card NVIDIA thì train nhanh hơn khoảng 7 lần (đo trên máy FatBoy: 86 bước/giây bằng CPU so với ~615–800 bước/giây bằng GPU). Bật bằng một nút — xem mục 14. Card AMD/Intel: vẫn chạy, chỉ chậm hơn. |
| Mạng Internet | Cần lúc đăng nhập, lúc cập nhật, và lúc gửi bot lên FatBoy Arena. Train và thi thì không cần mạng — mất mạng vẫn chạy bình thường. |
| MetaTrader 5 | Không bắt buộc. Chỉ cần khi bạn muốn lấy nến trực tiếp từ MT5 đang mở trên máy, hoặc khi chạy bot với giá sống. Học bằng bộ dữ liệu 5 năm kèm sẵn thì không cần MT5. |
Lưu ý về máy laptop: train là việc nặng, máy sẽ nóng và quạt kêu to. Cắm điện, đừng để máy tự ngủ (Settings → System → Power → Screen and sleep → chọn Never cho mục "When plugged in, put my device to sleep after").
FatBoyStudio.zip, khoảng 363 MB. Tải xong đừng mở file zip rồi chạy thẳng bên trong — phải giải nén ra ngoài trước.C:\FatBoyStudio hoặc D:\FatBoyStudio. Ví dụ dễ hỏng: C:\Users\Nguyễn Văn A\Tài liệu\..., hoặc để trong OneDrive / Program Files.FatBoy Studio.exe (icon con robot) → nháy đúp.Bảng "Windows protected your PC" không có nghĩa là phần mềm có virus. Nó là SmartScreen — Windows cảnh báo với mọi file tải từ mạng chưa mua chứng thư số (một loại "giấy chứng nhận chữ ký" giá vài trăm USD mỗi năm mà FatBoy chưa mua). Sau khi có nhiều người tải và chạy, cảnh báo này sẽ tự mất. Nếu bạn muốn chắc chắn: chuột phải file zip đã tải → Properties → tích ô Unblock → OK, rồi mới giải nén.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì "Windows protected your PC" More info → Run anyway. Hoặc chuột phải file zip → Properties → tích Unblock → OK. Nháy đúp mà không thấy gì hiện lên Bạn đang chạy file .exe kéo riêng ra ngoài. Phải giải nén trọn thư mục rồi chạy .exe nằm trong thư mục đó. Báo "Không chạy được Python" Giải nén bị thiếu (thư mục _engine\python\hỏng) hoặc antivirus đã xoá file. Xem mục 16, dòng "Antivirus".Giải nén báo hết chỗ Chọn ổ khác còn ≥ 2 GB, hoặc dọn ổ đĩa rồi giải nén lại.
FatBoy Studio dùng chung tài khoản với website aifatboy.com. Không có mật khẩu — mỗi lần đăng nhập, hệ thống gửi cho bạn một mã 8 số qua email.
Sau khi đăng nhập lần đầu, phần mềm hỏi thêm họ tên và số điện thoại (có Zalo). Đây là bắt buộc — để FatBoy liên hệ hỗ trợ bạn khi cần.
+84… hay 84… cũng được, phần mềm tự đổi.Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Không nhận được mã sau 2 phút Xem Spam. Kiểm tra gõ đúng email. Bấm Gửi mã lại sau 60 giây. Vẫn không có → gọi 0981807460. "Mã không đúng hoặc đã hết hạn" Mã chỉ sống vài phút. Bấm Gửi mã lấy mã mới, dùng mã mới nhất trong hộp thư. Đăng nhập xong lại quay về hộp đăng nhập Bạn đã đóng hộp Hoàn tất hồ sơ. Mở lại phần mềm, điền họ tên + số điện thoại rồi bấm Tiếp tục. Đóng hộp đăng nhập thì phần mềm tắt Đúng như thiết kế: chưa đăng nhập thì không vào được. Mở lại và đăng nhập.
Cửa sổ chia làm ba phần: bên trái là lựa chọn, bên phải là nhật ký, bên dưới là các nút bấm. Số trong ảnh tương ứng với bảng bên dưới.
| Số | Vùng | Bạn làm gì ở đây |
|---|---|---|
| 1 | Thanh tài khoản (trên cùng) | Logo, tên phần mềm, phiên bản (v1.2.0), email đang đăng nhập, nút Đăng xuất, nút Cập nhật. |
| 2 | Cặp · Nguồn · Số năm · Giữ lệnh · Soi gương · SL/TP | Chọn bot học thị trường nào (tick nhiều ô = học chung nhiều cặp), lấy dữ liệu ở đâu, lệnh chưa chạm SL/TP thì bao lâu tự đóng. Dòng chữ xám "SL/TP: theo ATR…" chỉ để đọc, không sửa được. Xem mục 8 và 9. |
| 3 | Cách chấm bot (preset) + Điểm nền | Chọn "tính cách" của bot: Chuẩn / Gọn lệnh / Kiên nhẫn / An toàn, và điểm tính bằng pip hay bằng R. Xem mục 8. |
| 4 | Bot nhìn gì | Bot xem bao nhiêu cây nến, có đeo thêm "kính lọc" (chỉ báo) nào không. Xem mục 7. |
| 5 | 5 nút chính | Kiểm tra máy → Lấy dữ liệu → ▶ Train → Thi (test) → Chạy thật (run), cùng nút ■ Dừng, Mở TensorBoard, Mở thư mục kết quả. |
| 6 | Bộ tiêu chuẩn FatBoy | ▶ Chạy theo tiêu chuẩn (qua đêm), Thi cuốn chiếu, Tự luyện, và Đưa lên Arena (sáng khi bot Thi đủ hoặc ĐẠT — bấm là mở hộp Thêm bot chạy thật). Xem mục 12 và 13. |
| 7 | Nhật ký | Mọi thứ phần mềm đang làm, hiện ra từng dòng có màu — giống màn hình đen của lập trình viên nhưng bạn chỉ cần đọc vài dòng. Xem mục 10. |
| 8 | Thanh trạng thái + dòng hỗ trợ | Đang chạy tới bước bao nhiêu, nhanh bao nhiêu, còn bao lâu. Dòng cuối cùng luôn có số hotline 0981807460 (Zalo). |
Phóng to khu 5 nút chính:
Cột bên trái dài hơn màn hình, nên bạn lăn chuột để cuộn xuống xem nốt phần dưới: Bot nhìn gì, Số bước train, Cỡ mạng, Thiết bị, dòng Gửi Arena / MT5 (trạng thái Arena của bot), Tên run.
Ba điều cần nhớ về màn hình này:
config.yaml trong thư mục phần mềm mỗi khi bạn bấm một nút. Bạn không cần mở file đó, nhưng nếu ai bảo bạn "sửa config" thì đó là nó.▶ fatboy … — đó là lệnh thật mà nút vừa gọi. Không cần hiểu, chỉ cần biết nó có ghi lại.Đây là kịch bản cầm tay để bạn thấy trọn vòng đời một con bot. Đừng đổi gì khác ngoài những chỗ được nói dưới đây.
EUR-USD-chuan-2309-0032. Tên này là tên thư mục chứa bot — nhớ nó.ket-qua.md (mở bằng Notepad được).Bạn đã dạy một con bot 20.000 lượt và cho nó thi trên dữ liệu nó chưa từng thấy. 20.000 bước là quá ít để bot giỏi — nhiều khả năng bảng thi sẽ xấu, thậm chí "0 lệnh". Đó là bình thường và đúng như dự kiến. Mục đích của 20 phút này là để bạn quen với 4 nút và biết chỗ đọc kết quả. Bot thật nên train từ 20 đến 50 triệu bước (mục 12).
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Train đứng ở "0 bước/giây" hơn 2 phút Đợi thêm; máy đang nạp dữ liệu. Quá 10 phút → bấm ■ Dừng, xem mục 16 dòng "Máy đơ". Bảng thi ra "0 lệnh" Bot train quá ít, chưa dám vào lệnh. Bấm ▶ Train lại với cùng Tên run và số bước lớn hơn (200.000). Chữ chạy nhanh quá không đọc kịp Bình thường. Chỉ đọc dòng trắng đậm === Bước …mỗi 1.000 bước. Toàn bộ vẫn được lưu trongruns\<tên run>\train-log.txt.Bấm ■ Dừng mà 90 giây sau mới tắt Không sao. Bot đã được lưu checkpoint. Bấm ▶ Train với cùng Tên run là chạy tiếp đúng chỗ dở.
Trước mỗi quyết định, bot được cho xem một thứ duy nhất: hình dạng giá gần đây. Khối này quyết định nó xem gì.
Dòng chữ xám ở dưới cho bạn biết tổng cộng bot đang nhìn bao nhiêu số, ví dụ: "Bot sẽ nhìn: 50 nến (7 số/nến) + EMA (4) + RSI (1) + Bollinger (2) + ATR (1) → 50 × 15 số".
Đây là chỗ người mới hay làm sai: tick hết 14 chỉ báo vì nghĩ "cho bot nhiều thông tin thì nó giỏi hơn". Thực tế thường ngược lại. Càng nhiều con số, bot càng dễ học thuộc lòng đoạn dữ liệu cũ (kiểu "khi RSI 62,3 và MACD 0,0004 và ADX 27 thì giá lên") thay vì học hình dạng chung. Điểm lúc train sẽ đẹp hơn, nhưng đi thi thì tệ hơn. Ví như học sinh học tủ: thuộc đúng đề năm ngoái, gặp đề mới là tắc.
Cách làm đúng: mỗi lần chỉ đổi MỘT thứ, đặt Tên run mới, Train, Thi, rồi đặt hai bảng cạnh nhau. Ví dụ: train "chỉ nến" trước làm mốc → tick thêm đúng một chỉ báo (RSI) → Tên mới → Train → Thi → so.
Mỗi bot "nhớ" lựa chọn của chính nó lúc train. Khi bạn chọn một bot cũ ở ô Tên run rồi bấm Thi hoặc Chạy thật, phần mềm luôn dùng lựa chọn của bot đó, dù bạn đã đổi tick trên màn hình. Khi đó một dòng chữ vàng hiện dưới ô Tên run để nhắc bạn. Muốn thử lựa chọn mới thì phải bấm "Tên mới" và train một bot mới.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì "run này được train với …; đổi lựa chọn thì phải train run mới" Bấm Tên mới → ▶ Train. Bot cũ vẫn thi được bình thường nếu bạn để nguyên lựa chọn của nó. Dòng chữ vàng dưới ô Tên run Chỉ là nhắc nhở, không phải lỗi: bạn đang chọn một bot cũ có "cách nhìn" khác với các ô đang tick. Ô số nến không cho gõ quá 300 Đúng vậy, giới hạn là 20–300. Nhiều hơn chỉ tốn thời gian chứ không giúp gì.
Bot học bằng cách được cộng hoặc trừ điểm sau mỗi lệnh. Khối này quyết định "giáo viên chấm khắt khe kiểu gì".
| Preset | Bot sẽ khác gì |
|---|---|
| Chuẩn | Mốc so sánh. Bot chỉ quan tâm "mỗi lệnh lời/lỗ bao nhiêu pip". Bắt đầu bằng cái này. |
| Gọn lệnh | Sau 12 giờ giữ lệnh, mỗi giờ thêm bị trừ 0,05 điểm → bot học đóng lệnh sớm, không ôm lệnh lê thê. |
| Kiên nhẫn | Mỗi ngày (UTC) được 3 lệnh "miễn phí"; từ lệnh thứ 4 mỗi lệnh bị trừ 0,5 điểm → bot phải chọn lọc, chỉ vào khi thật đáng. |
| An toàn | Trong một ván, nếu tổng R tụt xuống −5 thì bị trừ thêm 2 điểm (rồi −10, −15… mỗi bậc thêm 2 điểm) → bot sợ thua dài, giữ đường vốn mượt hơn. |
Đổi preset = đổi tính cách bot, không đổi kiến thức nó nhìn. Cách làm đúng vẫn là: đổi một thứ, Tên run mới, Train, Thi, so hai bảng.
Dòng chữ xám ngay trên khối preset ghi:
SL/TP: theo ATR (0.5–1.5 / 0.5–2×), kẹp trong 15–50 pip (theo cặp; TP ≥ SL)
Dòng này chỉ để đọc, bạn không sửa được, và nó là một trong những phần quan trọng nhất của phần mềm. Nghĩa là:
Vì bot đã thử ăn gian hai lần, theo hai kiểu ngược nhau, và FatBoy phải bịt cả hai:
Cách hiện tại lấy phần hay của cả hai: ATR cho SL/TP co giãn theo nhịp thị trường, biên pip giữ cho nó không bao giờ quá gần (bị spread và nhiễu quét) hay quá xa (hết giờ mà chưa chạm giá). Đo trên dữ liệu thật: tỉ lệ lệnh hết giờ rơi từ 59 % xuống 7–14 %, chạm TP khoảng 40 %, chạm SL khoảng 47–52 %.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Bảng thi có TIMEOUT rất nhiều (> 50 % số lệnh) Bot này được train bằng bản cũ (bội ATR không kẹp). Bấm Tên mới rồi train lại — bot mới dùng luật kẹp 15–50 pip. Dòng SL/TP ghi "theo bội ATR (bản cũ)" Bạn đang chọn một bot train từ trước 22/09. Bình thường; muốn theo luật mới thì train bot mới. SL/TP trung bình trong bảng thi đụng trần 50 pip ở mọi lệnh Bot chưa học phân biệt phiên động với phiên yên — thường do train quá ít bước. Train nhiều hơn (mục 12).
Hai lựa chọn này đều là thuốc chống học thuộc, đều bật sẵn cho bot mới, và đều dựa trên số đo thật trên chính bộ 5 năm dữ liệu kèm theo phần mềm.
Một cặp có khoảng 24.000 cây nến giờ trong 5 năm. Chỉ học một cặp thì bot dễ bám vào thói quen riêng của cặp đó. Cho bot học hai thị trường cùng lúc thì nó phải tìm quy luật chung cho cả hai — thứ có cơ may còn đúng ở tháng sau.
Ba con số đo trên bộ 5 năm:
| Đo cái gì | Kết quả | Nghĩa là gì |
|---|---|---|
| Tương quan theo giờ EURUSD – USDJPY | −0,46 | Hai cặp bù nhau: giờ EUR lên thì JPY thường xuống. Bot học được "hai mặt của cùng một đồng đô la" thay vì học hai bản sao. |
| Tương quan theo giờ BTC – ETH | +0,85 | Gần như một thị trường. Train chung gần như không thêm được gì, chỉ tốn gấp đôi thời gian. |
| Độ nghiêng 5 năm | XAUUSD +2,78 %/năm ≫ USDJPY +1,47 % ≫ EURUSD +0,23 % | Vàng đi lên gần như một chiều suốt 5 năm. Ghép vàng vào là tặng không cho bot chiến thuật "cứ Mua là có lời" — đúng trên dữ liệu cũ, sai ngay khi vàng đi ngang. |
Kết luận: mặc định cho bot mới là EURUSD + USDJPY. Vàng và crypto bị loại khỏi train nhiều cặp — muốn dạy vàng hay crypto thì train riêng, một cặp một bot. Nếu bạn tick vàng/crypto chung với forex, phần mềm hiện dòng cảnh báo "Vàng/crypto có nhịp và độ nghiêng khác hẳn forex — nên train riêng."
Nhìn lại bảng trên: USDJPY đi lên +1,47 %/năm suốt 5 năm. Một con bot lười có thể đạt điểm khá chỉ bằng cách luôn Mua — không phải vì nó đọc được biểu đồ, mà vì dữ liệu học nghiêng về một phía. Ra thị trường thật, khi xu hướng đảo, con bot đó lỗ liên tục.
Soi gương giá chữa đúng chỗ đó: một nửa số ván lúc học, phần mềm lật ngược biểu đồ rồi bắt bot chơi lại. Lật đúng nghĩa đen — đỉnh thành đáy, đáy thành đỉnh; một đoạn tăng dần trở thành đoạn giảm dần y hệt về hình dạng. Chỉ báo được tính lại từ đầu trên chuỗi đã lật (RSI của chuỗi lật đúng bằng 100 − RSI gốc; ATR không đổi vì biên độ dao động lật hay không cũng vậy). Nhờ vậy mọi lợi thế do "xu hướng một chiều" bị triệt tiêu hoàn toàn, và bot buộc phải học hình dạng giá.
Soi gương chỉ dùng lúc học. Khi Thi, thi cuốn chiếu, phong ấn và Chạy thật, biểu đồ không bao giờ bị lật — đi thi và ra đời luôn là giá thật.
Chỉ tắt để so sánh trong bài tập: bỏ tick Soi gương giá, đặt Tên run mới, train, thi, rồi đặt hai bảng cạnh nhau. Bạn sẽ thấy bot tắt soi gương thường thi đẹp ở kỳ có xu hướng và rớt hẳn ở kỳ đi ngang. Ngoài bài tập đó ra, cứ để bật.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Dòng cảnh báo "Vàng/crypto có nhịp và độ nghiêng khác hẳn forex" Bỏ tick vàng/crypto, hoặc bỏ tick forex — train riêng từng nhóm. Máy hết RAM khi train 2 cặp Mỗi sân tập nạp nến phút của mọi cặp (~90 MB/cặp/sân tập). Train 1 cặp thôi, hoặc xem mục 16 dòng "Máy đơ". Không tick ô nào ở dòng Cặp Phải tick ít nhất một ô, hoặc gõ tên cặp vào ô "hoặc gõ thêm".
Khung bên phải chạy rất nhanh — bạn không cần đọc hết. Chỉ có hai loại dòng đáng quan tâm.
| Dòng | Ý nghĩa | |||||
|---|---|---|---|---|---|---|
| `Step 49,947 e2 \ | Buy \ | Entry … \ | Result TIMEOUT \ | Reward −15.98` | Một quyết định. Buy màu xanh, Sell màu đỏ, Hold (đứng ngoài) màu xám. Kết quả TP xanh, SL đỏ, TIMEOUT (hết giờ) vàng. Reward dương xanh, âm đỏ. | |
| `Update @ 50,000 \ | Critic Loss … \ | Actor Loss …` (xanh lơ) | Mạng nơ-ron vừa được cập nhật. Số này chỉ dành cho người tò mò, không cần hiểu. | |||
| `=== Bước 2,600,000/20,000,000 (13%) \ | 803 bước/s \ | Tổng pip … \ | Lệnh …: TP … / SL … / TO … \ | Thắng … \ | còn ~6 giờ 0 phút ===` | Dòng trắng đậm, mỗi 1.000 bước. Đây là dòng để bạn liếc: đã chạy tới đâu, nhanh bao nhiêu, còn bao lâu. |
*** Đánh giá @ bước 2,600,000: điểm TB −2305.7 (tốt nhất −1880.8 @ 600,000) | Dòng tím — quan trọng nhất. Xem giải thích ngay dưới. | |||||
*** Dừng sớm ở bước 2,600,000: … | Dòng tím, cũng xem dưới. |
Cứ 10.000 bước (hoặc 100.000 bước khi chạy theo tiêu chuẩn), bot được lôi ra chấm trên khúc dữ liệu nó chưa từng thấy, và kết quả in ra dòng tím này. Đây mới là điểm thật.
Ngược lại, "Tổng pip" trên dòng trắng đậm là điểm lúc học, luôn đẹp hơn thực tế — vì bot đang làm bài trên đúng đoạn dữ liệu nó đã xem đi xem lại 50–100 lần. Trong ảnh trên, Tổng pip lúc train là +6.252.059 (rất đẹp) trong khi điểm đánh giá là −2305,7 (âm). Khoảng cách đó chính là học thuộc.
Bot ghi nhớ đoạn dữ liệu cũ thay vì học quy luật — như học sinh thuộc lòng đề năm ngoái. Dấu hiệu nhận ra:
Ô "Tự dừng khi hết cải thiện" (bật sẵn) làm việc này: nếu 20 lần đánh giá liên tiếp không có lần nào tốt hơn bản tốt nhất, phần mềm tự dừng và giữ lại bản tốt nhất, in dòng tím:
*** Dừng sớm ở bước 2,600,000: tập kiểm tra không cải thiện 20 lần đánh giá liên tiếp từ bước 600,000 — bản tốt nhất là 600,000 (best/best_model.zip)
Nghĩa là: "train thêm chỉ làm bot thuộc bài hơn, tôi dừng ở đây và giữ bản ở bước 600.000". Đây không phải lỗi và cũng không phải bot hỏng — nút Thi (test) sẽ tự lấy đúng bản tốt nhất đó. Muốn train hết số bước bằng mọi giá thì bỏ tick ô này (không khuyên).
runs\<tên run>\train-log.txt — mở bằng Notepad lúc nào cũng được. Nút Mở thư mục kết quả đưa bạn tới đúng chỗ đó.Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Điểm đánh giá đầu tiên rất âm (ví dụ −4.980) Bình thường ở 10–20 nghìn bước đầu: bot mới, đứng ngoài suốt nên bị phạt lặp hành động. Điểm sẽ lên khi bot bắt đầu vào lệnh. Dòng tím đi ngang suốt, "tốt nhất" đứng yên Bot đã hết học được. Đổi một thứ (số nến, chỉ báo, preset, cỡ mạng), Tên mới, train lại. Nhật ký bỏ qua hàng nghìn dòng ("… bỏ qua N dòng để màn hình không đơ") Bình thường khi train bằng GPU (quá nhanh). Bản đầy đủ vẫn nằm trong train-log.txt.Muốn xem biểu đồ thay vì chữ Bấm Mở TensorBoard — trình duyệt mở một trang biểu đồ điểm đánh giá theo thời gian.
Bấm Thi (test) là cho bot làm bài trên khúc dữ liệu niêm phong — phần dữ liệu năm 2026 mà bot chưa từng được thấy lúc học, chỉ mở ra khi thi. Kết quả in ra nhật ký và ghi vào runs\<tên run>\ket-qua.md.
| Dòng trong bảng | Nghĩa là gì | Nhìn thế nào là ổn |
|---|---|---|
| Bot nhìn | Nhắc lại lựa chọn của chính bot này lúc train. | Phải khớp với cái bạn định thử. |
| SL/TP | Luật đặt SL/TP của bot này (mục 8). | — |
| Số quyết định (nến bot đã xem) | Bao nhiêu cây nến giờ bot được hỏi "vào hay đứng ngoài?". | Bằng số giờ giao dịch trong kỳ thi. |
| Số lệnh | Tổng số lệnh, kèm lệnh/ngày và số lệnh mua / bán. | Dưới 30 lệnh thì đừng kết luận gì. Mua và bán nên tương đối cân — lệch hẳn về một phía là dấu hiệu bot thiên vị. |
| Lệnh mở cùng lúc tối đa | Bot được vào lệnh mới ở mỗi cây nến, nên nhiều lệnh chồng nhau. Số này là lúc đông nhất, kèm trần cho phép. | Đụng trần liên tục = bot vào lệnh quá tham. |
| Thắng / thua / hoà | Số lệnh lãi / lỗ / hoà và tỉ lệ thắng. | Tỉ lệ thắng cao không có nghĩa là bot tốt — xem dòng tổng pip. |
| Tổng pip (đã trừ spread) | Dòng quan trọng nhất. Lãi lỗ cả kỳ tính bằng pip, đã trừ phí. Kèm trung bình mỗi lệnh và sụt sâu nhất. | Phải dương. Trung bình mỗi lệnh dương dù chỉ +0,5 pip cũng có ý nghĩa nếu số lệnh lớn. |
| Kỳ vọng mỗi lệnh (R trung bình) | Lãi lỗ trung bình tính theo R (chạm SL ≈ −1 R). | Dương là tốt. |
| Sụt sâu nhất (theo R hoặc pip) | Từ đỉnh xuống đáy của đường vốn — đau nhất là bao nhiêu. Có tính cả các lệnh đang mở. | Càng nhỏ càng tốt. Ngưỡng của Bộ tiêu chuẩn: EURUSD/USDJPY 150 pip, XAUUSD 60 USD, BTC 3.000, ETH 200. |
| Giờ giữ lệnh trung bình | Trung bình, trung vị và lâu nhất. | Nếu gần sát mức "giữ lệnh tối đa" của bạn → phần lớn lệnh đang chờ hết giờ chứ không chạm SL/TP. |
| SL / TP trung bình (pip) và (× ATR) | Bot đặt SL/TP xa bao nhiêu, tính bằng pip và theo bội ATR. | Không nên đụng trần ở mọi lệnh (mục 8). |
| Lệnh đóng vì | TIMEOUT (hết giờ) / TP (chạm chốt lời) / SL (chạm cắt lỗ). | TIMEOUT nên dưới 20 %. Trên 50 % là bot đang "đặt xa rồi chờ". |
| Minh hoạ vốn (rủi ro 2 %/lệnh) | Chỉ để hình dung, không phải tài khoản thật. | — |
20 lệnh đầu (trong file ket-qua.md) | Từng lệnh: vào lúc nào, mua hay bán, giá vào, SL, TP, đóng vì gì, được mấy pip. | Đọc để thấy bot thật sự làm gì. |
Bot train nhiều cặp thì bảng còn có thêm mỗi cặp một cột và một cột TỔNG.
Điểm đẹp lúc train mà đi thi lại âm là chuyện BÌNH THƯỜNG — nó xảy ra với phần lớn bot đầu tiên của mọi người, kể cả FatBoy. Đó là học thuộc (mục 10), không phải bạn làm sai và cũng không phải phần mềm hỏng.
Và đây là luật của khoá học: phải kể thật. Bot thi âm thì nói là âm. Con số trong bảng này là con số thật, tính từ kết quả thật của từng lệnh trên dữ liệu bot chưa thấy — nó có giá trị chính vì nó không được làm đẹp. Một bot lỗ mà bạn hiểu vì sao nó lỗ đáng giá hơn mười bot "đẹp" mà bạn không giải thích được.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì "0 lệnh — bot không vào lệnh nào" Train quá ít bước. Bấm ▶ Train với cùng Tên run, số bước 200.000 trở lên. Tổng pip âm dù train rất lâu Bình thường ở bot đầu. Đổi một thứ, Tên mới, train lại, so bảng. Đừng đổi 3 thứ một lúc. Số quá đẹp (thắng 80 %, sụt sâu gần 0) Nghi ngờ trước khi vui. Kiểm tra bạn có vô tình cho bot học nhầm khúc thi không. Gọi hỗ trợ nếu không chắc. Báo "bot này chưa được train bằng fatboy train" Ô Tên run đang trỏ vào một thư mục chưa có bot. Chọn đúng tên run đã train, hoặc train trước.
Một lần thi 6 tháng chưa trả lời được câu hỏi thật: bot này may hay giỏi? Một đồng xu tung 6 lần ra 5 mặt ngửa cũng "trông giỏi". Bộ tiêu chuẩn FatBoy là cách trả lời bằng số, theo cùng một luật cho mọi bot.
Bấm ▶ Chạy theo tiêu chuẩn (qua đêm), hộp xác nhận hiện ra (cho bạn sửa trần bước, số vòng, và ước lượng thời gian theo máy bạn), bấm Bắt đầu, rồi đi ngủ. Phần mềm sẽ tự làm:
Cuối cùng in KẾT LUẬN: ĐẠT hoặc KHÔNG ĐẠT tiêu chuẩn FatBoy với 5 mục ✓/✗, và ghi vào runs\<tên run>\TIEU-CHUAN.md.
| Máy | Thời gian |
|---|---|
| Có GPU NVIDIA (~700 bước/giây) | khoảng 14 giờ nếu bot dừng sớm, tới 46 giờ nếu chạy hết trần. Nên bấm buổi tối, sáng dậy xem; có thể sang cả ngày hôm sau. |
| Chỉ CPU (~85 bước/giây) | 3–12 ngày. Nên bật GPU (mục 14), hoặc giảm trần bước / số vòng ngay trong hộp xác nhận. |
Hộp xác nhận sẽ tính con số cụ thể cho máy bạn trước khi bắt đầu.
Bấm ■ Dừng bất cứ lúc nào — checkpoint đã được lưu. Bấm lại ▶ Chạy theo tiêu chuẩn với cùng Tên run là chạy tiếp đúng giai đoạn dở, không phải làm lại từ đầu. Tắt máy giữa chừng cũng vậy. Thanh trạng thái luôn ghi đang ở giai đoạn nào ([Tiêu chuẩn] …, [Tự luyện] vòng r/N — kỳ k/3).
Hai nút Thi cuốn chiếu và Tự luyện chạy riêng từng phần, cho ai muốn làm từng bước.
| Mục | ĐẠT khi |
|---|---|
| 3 kỳ cuốn chiếu | qua 3/3 kỳ |
| ≥ 30 lệnh mỗi kỳ | cả 3 kỳ |
| Tổng pip sau spread > 0 mỗi kỳ | cả 3 kỳ |
| Sụt sâu nhất ≤ ngưỡng mỗi kỳ | cả 3 kỳ |
| Phong ấn | ≥ 10 lệnh, tổng pip > 0, sụt sâu ≤ ngưỡng |
Bot train nhiều cặp thì mọi cặp phải qua thì kỳ đó mới tính là qua.
KHÔNG ĐẠT không có nghĩa là "hỏng" — nó có nghĩa là "chưa đủ bằng chứng". Đọc xem kỳ nào rớt và vì sao (ít lệnh? sụt sâu? pip âm?), đổi một thứ, đặt Tên mới, chạy lại.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Hộp xác nhận báo thời gian 3–12 ngày Bạn đang chạy bằng CPU. Bấm Bật GPU (NVIDIA) (mục 14), hoặc giảm trần bước / số vòng ngay trong hộp. Chạy giữa chừng thì mất điện / máy khởi động lại Mở lại phần mềm, chọn đúng Tên run cũ, bấm ▶ Chạy theo tiêu chuẩn — chạy tiếp từ chỗ dở. Báo BrokenPipeError/ "Sân tập con chết lúc khởi tạo"Phần mềm tự thử lại 3 lần. Vẫn thoát → bấm lại nút đó (tự chạy tiếp). Xem thêm mục 16. Muốn thử luồng cho nhanh, không cần bot giỏi Trong hộp xác nhận, tick "Bản rút gọn chỉ để thử luồng" (~45 phút với GPU). Bot sẽ KHÔNG đạt — đúng như dự kiến.
FatBoy Arena · Đấu trường bot (aifatboy.com/arena) là bảng điểm công khai: bot của học viên thi đấu trên dữ liệu thật và được chấm độc lập. Bot của bạn gửi quyết định lên trước khi biết kết quả, rồi máy chủ chấm bằng giá thật. Kết quả công khai, kể cả thua, và không ai sửa hay xoá được — kể cả FatBoy.
Từ bản 1.3.4, gửi FatBoy Arena chọn theo từng bot ở thẻ Chạy thật (thẻ Tập & Thi không còn ô Gửi lên Arena / API key). Ô Gửi lên Arena trong hộp Thêm bot chạy thật chỉ bấm được khi bot đủ một trong hai:
Ở thẻ Tập & Thi, dòng trạng thái dưới Gửi Arena / MT5 (chỉ đọc) nói bot trong ô Tên run đang thế nào, ví dụ "Arena: ✓ mở — Thi 142 lệnh, +35,2 pip." (xanh), "Arena: khoá — Thi gần nhất: 64 lệnh — cần ≥ 100.", "Arena: khoá — Thi gần nhất: tổng pip −12,3 — cần ≥ 0." hoặc "Arena: khoá — model đã đổi sau lần Thi — bấm Thi lại." (vàng). Khi mở, nút Đưa lên Arena (hàng Bộ tiêu chuẩn) sáng: bấm là mở hộp Thêm bot chạy thật với bot này chọn sẵn và tick sẵn Arena.
Nếu bạn cứ bấm Chạy thật khi chưa đủ: bot vẫn chạy bình thường, nhật ký hiện một dòng vàng, nhưng không gửi gì lên Arena.
fb_live_… chỉ hiện đúng một lần → bấm Sao chép ngay và dán vào chỗ nào đó an toàn. Lỡ mất khoá? Bấm Xoay API key ngay chỗ đó: khoá mới hiện một lần, khoá cũ bị thu hồi. Máy chủ chỉ lưu bản mã hoá nên không ai xem lại được, kể cả quản trị viên.fb_live_… của đúng bot đó vào ô API key hiện ngay dưới (mỗi bot một khoá riêng). Tick hiện để kiểm tra đã dán đúng chưa.Arena: mở (…), ví dụ Arena: mở (Thi 142 lệnh, +35,2 pip); mỗi khi một cây nến giờ đóng lại, bot in BUY/SELL @ … → Arena nhận hoặc ĐỨNG NGOÀI (đứng ngoài thì không gửi gì).aifatboy.com/arena/<tên-bot> hiện khi bot đang hoạt động. Muốn ẩn tạm: Tạm ẩn (về nháp) — lịch sử đã chấm vẫn giữ, không xoá được.Quyết định gửi lên Arena là thật và công khai. Arena chưa có chế độ thử — mọi thứ bạn gửi đều được chấm như thật và hiện ra cho mọi người. Đó chính là điều làm Arena có giá trị: không ai khoe được thành tích rồi âm thầm xoá phần thua. Vì vậy: chỉ đưa lên bot Thi đủ (tốt nhất là đã ĐẠT tiêu chuẩn), và chuẩn bị tinh thần rằng con số ngoài đời sẽ xấu hơn con số lúc thi.
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Ô Gửi lên Arena (hộp Thêm bot) mờ, không bấm được Đọc dòng lý do màu vàng ngay trên (hoặc dòng Arena: khoá — … ở thẻ Tập & Thi). Bấm Thi (test): cần ≥ 100 lệnh và tổng pip ≥ 0 (hoặc bot ĐẠT tiêu chuẩn, mục 12). Nhật ký ghi ! Arena: KHOÁ — run '…': <lý do>Đúng như trên. Bot vẫn chạy, chỉ không gửi. Arena từ chối quyết định Trên web, bấm Bật hoạt động cho thẻ bot (bot còn Nháp thì bị từ chối). Mất API key Bấm Xoay API key trên thẻ bot → khoá mới. Khoá cũ bị thu hồi ngay. Chạy được vài tiếng rồi tự ngưng Máy đã ngủ. Settings → System → Power → đặt Never cho mục sleep khi cắm điện.
Bản tải về đi kèm phiên bản chạy bằng CPU cho nhẹ. Máy có card NVIDIA thì bật GPU giúp train nhanh hơn khoảng 7 lần (đo trên RTX 5070 Ti: 615–800 bước/giây so với 86 bước/giây bằng CPU; 20.000 bước từ 4–6 phút xuống còn ~35 giây).
(ảnh bản trước, bố cục tương tự)
Nút sẽ báo "Máy không có card NVIDIA, dùng CPU". Bình thường — mọi thứ vẫn chạy, chỉ chậm hơn. Card AMD và Intel hiện chưa được hỗ trợ.
Một số máy có phần mềm chống gian lận game (Vanguard…) hoặc driver cũ gây xung đột. Cách xử lý: ở mục Thiết bị chọn Ép CPU. Train chậm hơn nhưng ổn định. Đồng thời nên cập nhật driver NVIDIA (GeForce Experience → Drivers).
Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì "Thiếu chỗ trống" Cần ~8 GB trống ở cả ổ chứa phần mềm lẫn ổ chứa thư mục tạm. Dọn ổ rồi bấm lại. Tải giữa chừng thì mất mạng Bấm Bật GPU (NVIDIA) lại — phần đã tải được dùng tiếp. Bật xong nhưng Kiểm tra máy báo ✗ torch Hiếm (mất mạng đúng lúc thay bản). Gọi 0981807460 — có một lệnh khôi phục bản CPU. Máy vẫn màn hình xanh sau khi bật Chọn Ép CPU ở mục Thiết bị, cập nhật driver NVIDIA.
Phiên bản đang dùng hiện ngay cạnh tên phần mềm ở góc trên bên trái (v1.2.0).
_engine_backup\ trước khi thay, và tự khôi phục nếu có lỗi.Khi có bản mới, nút Cập nhật cũng tự đổi thành Cập nhật ● 1.x.y để bạn biết mà bấm.
Đôi khi bản mới cần cả nền Python/thư viện mới, không chỉ vá vài file. Lúc đó phần mềm sẽ tự mở trang aifatboy.com/hub/tai-ve để bạn tải lại bản đầy đủ (~363 MB).
Khi tải lại bản đầy đủ:
runs\ từ bản cũ sang bản mới.Nếu thấy lỗi X thì làm Y
Thấy gì Làm gì Bấm Cập nhật không phản hồi Kiểm tra mạng. Đang (ngoại tuyến) thì không cập nhật được. Cập nhật xong phần mềm không mở lại được Thư mục _engine_backup\chứa bản cũ. Gọi 0981807460 để được hướng dẫn khôi phục.Không muốn cập nhật ngay Cứ bấm Không — bản đang dùng vẫn chạy bình thường. Nhưng nên cập nhật, vì FatBoy Arena chấm theo luật của bản mới.
| # | Thấy gì | Vì sao | Làm gì |
|---|---|---|---|
| 1 | "Windows protected your PC" khi nháy đúp FatBoy Studio.exe | SmartScreen chặn file tải từ mạng chưa mua chứng thư số. Không phải virus. | More info → Run anyway (chỉ hỏi lần đầu). Hoặc chuột phải file zip → Properties → tích Unblock → OK rồi giải nén lại. |
| 2 | Nháy đúp không thấy gì, hoặc báo "Không chạy được Python" | Giải nén thiếu, hoặc bạn kéo riêng file .exe ra ngoài, hoặc antivirus đã xoá file. | Giải nén lại trọn thư mục, chạy .exe nằm trong thư mục đó. Thêm thư mục vào loại trừ antivirus (dòng 4). |
| 3 | Không nhận được mã 8 số qua email | Thư rơi vào Spam, hoặc gõ nhầm email. | Xem thư mục Spam / Quảng cáo. Kiểm tra lại email. Bấm Gửi mã lại sau 60 giây. Vẫn không có → gọi 0981807460. |
| 4 | PermissionError / Access is denied / file tự biến mất | Antivirus (Windows Defender, Avast…) chặn hoặc cách ly file. | Thêm thư mục FatBoy vào loại trừ: Windows Security → Virus & threat protection → Manage settings → Exclusions → Add folder. Đừng để phần mềm trong OneDrive hay Program Files. |
| 5 | Báo "Chưa có file … .csv" hoặc "không thấy file dữ liệu" | Chưa bấm Lấy dữ liệu, hoặc bạn đổi cặp mà chưa lấy dữ liệu cho cặp mới. | Bấm Lấy dữ liệu một lần nữa (với nguồn Bộ dữ liệu 5 năm (file) mất vài giây). |
| 6 | "MT5 chưa mở hoặc chưa đăng nhập" | Bạn chọn nguồn MT5 đang mở mà MetaTrader 5 chưa chạy / chưa đăng nhập. | Cách dễ nhất: đổi Nguồn sang Bộ dữ liệu 5 năm (file) — không cần MT5. Hoặc mở MT5, đăng nhập (demo cũng được), thấy số dư ở góc dưới rồi bấm lại. |
| 7 | "broker này không có symbol nào giống XAUUSD" | Sàn của bạn đặt tên khác (XAUUSD.fix, XAUUSDm, GOLD…). | Dùng nguồn file (bộ 5 năm kèm sẵn), hoặc gọi hỗ trợ để được chỉ cách khai đúng tên symbol. |
| 8 | Hết ổ cứng / giải nén hoặc train báo thiếu chỗ | Bộ dữ liệu + các bot đã train chiếm nhiều chỗ; mỗi bot vài MB nhưng checkpoint thì nặng. | Dọn ổ đĩa. Xoá các thư mục bot cũ không dùng trong runs\ (bấm Mở thư mục kết quả để tới đó). Cần ≥ 5 GB trống, ≥ 8 GB nếu bật GPU. |
| 9 | Máy đơ, MemoryError, hoặc cửa sổ tự tắt khi train | Hết RAM (bộ nhớ kinh nghiệm + nhiều sân tập chạy song song, nhất là khi train 2 cặp). | Đóng trình duyệt và các ứng dụng khác. Train một cặp thay vì hai. Vẫn đơ → gọi 0981807460 (có một dòng cấu hình giảm số sân tập). |
| 10 | Train rất chậm (hàng chục bước/giây) | Đang chạy bằng CPU. | Bấm Bật GPU (NVIDIA) nếu máy có card NVIDIA (mục 14). Không có card thì giảm số bước, hoặc để chạy qua đêm. |
| 11 | Train đứng yên 0 bước/giây trong 1–2 phút đầu | Bình thường: đang tính chỉ báo và nạp nến phút vào từng sân tập. | Đợi 1–2 phút. Quá 10 phút → bấm ■ Dừng, xem dòng 9. |
| 12 | Bấm Bật GPU nhưng báo "Máy không có card NVIDIA" | Máy dùng card AMD / Intel, hoặc laptop không có card rời. | Bình thường, train vẫn chạy bằng CPU, chỉ chậm hơn. |
| 13 | Máy màn hình xanh / tự khởi động lại khi train bằng GPU | Driver đồ hoạ hoặc phần mềm chống gian lận game (Vanguard…) xung đột. | Mục Thiết bị → chọn Ép CPU. Cập nhật driver NVIDIA. |
| 14 | Bấm Mở TensorBoard ra trang trắng | Cổng mạng đang bận, hoặc TensorBoard chưa kịp khởi động. | Đợi 20 giây rồi tải lại trang (F5). Vẫn trắng thì bỏ qua — biểu đồ không bắt buộc, mọi số đều có trong nhật ký. |
| 15 | Đường dẫn có dấu tiếng Việt (ví dụ C:\Users\Nguyễn Văn A\...) | Một số thành phần không đọc được đường dẫn có dấu. | Giải nén lại vào C:\FatBoyStudio hoặc D:\FatBoyStudio (không dấu, không khoảng trắng). |
| 16 | "run này được train với …; đổi lựa chọn thì phải train run mới" | Bạn đổi "Bot nhìn gì" rồi bấm Thi / Chạy thật trên một bot cũ. | Bấm Tên mới → ▶ Train bot mới với lựa chọn mới. Bot cũ vẫn thi được nếu giữ nguyên lựa chọn của nó. |
| 17 | Ô Gửi lên Arena (hộp Thêm bot chạy thật) mờ, không bấm được | Bot chưa Thi đủ (≥ 100 lệnh, tổng pip ≥ 0) và chưa ĐẠT tiêu chuẩn, hoặc model đã đổi sau lần Thi. | Bấm Thi (test) (đọc dòng Arena: khoá — … ở thẻ Tập & Thi); hoặc ▶ Chạy theo tiêu chuẩn (mục 12). Chưa đủ thì không gửi được — đó là luật. |
| 18 | Mất API key fb_live_… | Khoá chỉ hiện đúng một lần và máy chủ chỉ lưu bản mã hoá. | Trên web, trong thẻ bot bấm Xoay API key → khoá mới hiện một lần. Khoá cũ bị thu hồi. |
| 19 | Bảng thi ra "0 lệnh" | Bot train quá ít bước, chưa dám vào lệnh. | ▶ Train với cùng Tên run, 200.000 bước trở lên. |
| 20 | Dòng tím "Dừng sớm ở bước X" | Không phải lỗi: bot hết cải thiện, phần mềm giữ bản tốt nhất. | Cứ bấm Thi (test) — nó tự lấy bản tốt nhất. |
| 21 | BrokenPipeError / "Sân tập con chết lúc khởi tạo" | Một sân tập con đọc file dữ liệu lớn bị lỗi ngẫu nhiên. | Phần mềm tự thử lại 3 lần. Vẫn thoát → bấm lại đúng nút đó (mọi giai đoạn tự chạy tiếp). Bấm Lấy dữ liệu để kiểm tra file trên đĩa. |
| 22 | Bấm ■ Dừng mà ~90 giây sau mới tắt, nhật ký ghi "buộc dừng" | Tiến trình con không phản hồi (hiếm, thường do máy quá tải). | Không sao — checkpoint gần nhất vẫn còn. Bấm ▶ Train cùng Tên run để chạy tiếp. |
| 23 | Chữ trong nhật ký chạy quá nhanh không đọc kịp | Bình thường (hàng trăm dòng mỗi giây). | Chỉ đọc dòng trắng đậm === Bước …. Toàn bộ nằm trong runs\<tên run>\train-log.txt. |
| 24 | Lỗi lạ không có trong bảng này | — | Phần mềm ghi chi tiết vào runs\loi-gan-nhat.txt. Bấm Mở thư mục kết quả, tìm file đó và gửi cho FatBoy qua Zalo 0981807460. |
Khi hỏi, gửi kèm ba thứ này thì được giúp nhanh gấp đôi:
Windows + Shift + S để cắt màn hình).runs\<tên run>\train-log.txt hoặc runs\loi-gan-nhat.txt nếu là lỗi.Đừng gửi cho ai khoá API bắt đầu bằng fb_live_… — kể cả nhân viên FatBoy không bao giờ hỏi bạn khoá đó.
Kết quả quá khứ không đảm bảo tương lai. Giao dịch có rủi ro.