Nhật ký giao dịch — bảng tính, thống kê và rà soát hiệu suất
Hướng dẫn đầy đủ để xây bảng nhật ký trong khoảng 20 phút (thời gian tham khảo cho người biết cơ bản bảng tính; nhập lần đầu và kiểm tra dữ liệu có thể lâu hơn): 26 cột có tên kỹ thuật nhất quán với bài 15.9, công thức hàng và bảng tổng hợp chín chỉ số với hai biến thể (Excel tiếng Ba Lan và tiếng Anh; thiết lập bảng tính đám mây được nói bên dưới), cùng CSV khởi đầu tạo trong trình duyệt. Có thể tải XLSX làm sẵn hoặc tự xây theo toàn bộ hướng dẫn dưới. Hiểu công thức giúp nắm phép tính và tự sửa; nhờ tên cột chung, bản xuất CSV từ nhật ký này, khi chọn đúng dấu phân cách, mã hóa và định dạng ngày, dùng được với script S1–S3 có sẵn trong phụ lục I và script từ prompt P5; kiểm toán P6–P7 cần thêm hai cột (bên dưới).
- 26 cột trong năm nhóm: nhận diện, bối cảnh, kế hoạch so với thực thi, chi phí và kết quả, quy trình — chỉ dùng công thức ở nơi số liệu suy ra từ trường khác (slippage, r_net, execution_drag)
- Bảng tổng hợp chín công thức: số giao dịch, tỷ lệ thắng, profit factor, kỳ vọng, tổng R, drawdown tối đa theo R, MAE/MFE trung bình, tỷ lệ thực thi không lỗi — chỉ số hiệu suất tính từ r_net, chỉ số quy trình từ các cột riêng; phạm vi MAE/MFE được giải thích dưới
- Hai biến thể công thức: Excel PL (ŚREDNIA, LICZ.JEŻELI, chấm phẩy) và Excel EN (AVERAGE, COUNTIF, dấu phẩy) — có nút chuyển và sao chép mỗi khối
- Chỉ số mô tả mẫu từ lần ghi đầu tiên: khoảng 50 giao dịch là mốc rà soát ví dụ trong khóa học, không phải mức tối thiểu phổ quát hay bằng chứng lợi thế. Kết luận tùy độ phân tán, phụ thuộc giữa kết quả và kế hoạch kiểm thử. Vi phạm giới hạn hoặc lỗi dữ liệu cần xử lý ngay; đổi quy tắc chiến lược cần giả thuyết và xác thực riêng
Nhật ký XLSX làm sẵn
Tải nhật ký giao dịch — XLSX tiếng Việt
Tệp có ba trang tính: Statistics (thống kê), Journal (nhật ký), Instructions (hướng dẫn), 999 hàng chuẩn bị sẵn và công thức lãi/lỗ ròng, R, trượt giá, drawdown. Cột A–Z giữ định dạng bên dưới; tệp còn có AA–AC (tự đánh giá từ 15.9), AD (ghi chú), AE–AF (đường vốn và drawdown), AG (thực thi không lỗi) — xuất CSV cho script chỉ gồm A:Z. Ô vàng nhận dữ liệu; không ghi đè cột công thức bằng bản xuất broker. Swap hoặc hoa hồng thật sự bằng không thì nhập 0 — dữ liệu thiếu vẫn là thiếu.
Ví dụ trong hướng dẫn không đi vào thống kê của tệp. Drawdown gồm điểm xuất phát 0 R: lỗ đầu tiên −1 R tạo drawdown 1 R. Sắp giao dịch theo thời gian đóng; giữ thứ tự nhất quán nếu cùng thời điểm. Không chỉ sắp riêng cột C — mọi trường của bản ghi phải đi cùng. Sau đổi thứ tự, kiểm tra AE/AF còn cộng dồn từ hàng 2. Cột phụ coded_clean không coi mã lỗi trống là thực thi không lỗi.
Bảng tính hiển thị MAE và MFE trung bình cho mọi phép đo đã nhập (kể cả giá trị bằng không), còn biến thể riêng cho giao dịch thắng/thua ở bên dưới. Tệp tính profit factor theo R, không phải tiền tài khoản. Chỉ điền lãi/lỗ dự kiến ở cột T cho cùng loại thoát: SL dự kiến với SL thực thi, TP với TP. Để trống nếu kiểu thoát không có đối chiếu tương ứng.
Bản PL dùng PLN trong các trường *_pln của nó. Bản tiếng Anh có cùng thứ tự cột và tên trường tiền trung tính, không có hậu tố _pln ; bạn chỉ định tiền tài khoản trong hướng dẫn. Khi chuyển CSV giữa ngôn ngữ, ánh xạ tiêu đề và kiểm tra tiền tệ. Chỉ đổi nhãn tiền không chuyển đổi giá trị.
Bảng tính làm sẵn hoặc tự xây
- Hai cách đến cùng một nhật ký: XLSX làm sẵn có công thức hiển thị, hướng dẫn đầy đủ cho phép tự dựng lại bảng tính. Tệp không có macro hoặc kết nối broker. CSV khởi đầu vẫn tạo cục bộ trong trình duyệt. Phiên bản tệp nằm ở trang Instructions (hiện 1.2, ngày 21 tháng Chín năm 2026; bài có số phiên bản riêng).
- Bảng tính tự xây giúp bạn hiểu tận gốc: nhiều năm sau công thức báo lỗi (cặp mới, định dạng xuất khác), bạn dễ tìm nguyên nhân hơn vì biết nó tính gì. Mẫu “ma thuật” có thể hỏng âm thầm — nhật ký sai còn tệ hơn không có nhật ký.
- Tên cột dùng chung toàn khóa học: tiêu đề lấy từ đặc tả CSV ngắn ở 15.9 (bảng tính bao quát khoảng 20 trong 29 trường logic được đánh số ở 15.9 — trường thiếu liệt kê ở Nguồn), script S1–S3 có sẵn trong phụ lục I và script prompt P5 cũng chờ cùng tên; kiểm toán P6–P7 trong xưởng AI còn cần trạng thái tuân thủ kế hoạch và ghi chú trạng thái — thêm: status = “plan” cho error_code 0, “breach” cho mã 1–9; bỏ hàng mã 10 (hạ tầng) khỏi bản xuất P6 hoặc gắn status “infrastructure” và giải thích trong prompt; lấy ghi chú trạng thái từ trường tự đánh giá (AA–AC). Một định dạng giúp giảm chuyển đổi dữ liệu giữa công cụ.
- Đám mây tiện, nhưng đây là dữ liệu tài khoản: khối lượng vị thế, kết quả, lỗi quy trình. Chủ động chọn lưu đám mây hay cục bộ — theo cùng tiêu chí khi dán dữ liệu vào mô hình AI (phần vệ sinh dữ liệu trong phụ lục H).
Cấu trúc: 26 cột trong 5 nhóm
Chữ cột (A–Z) khớp bố cục dùng trong công thức dưới — đổi thứ tự phải cập nhật tham chiếu. Giữ tiêu đề kỹ thuật tiếng Anh để CSV dùng với script P5 không cần ánh xạ. Có thể thêm ba trường tự đánh giá (mental_state, sleep_hours, decision_quality từ 15.9) thành cột tùy chọn AA–AC (đã có trong tệp) — công thức không cần chúng.
| Cột | Tiêu đề | Nhóm 1: nhận diện | Ví dụ |
|---|---|---|---|
| A | trade_id | số thứ tự hoặc ID nền tảng | 2026-041 |
| B | open_time_utc | ngày giờ mở theo UTC — bản xuất MT4/MT5 dùng giờ máy chủ broker (ví dụ GMT+2/+3 — kiểm tra thông số broker); đổi từ múi giờ máy chủ (15.9); định dạng YYYY-MM-DD HH:MM | 2026-07-08 07:42 |
| C | close_time_utc | ngày giờ đóng theo UTC (như B); giá trị ngày/giờ thực trong bảng tính, không phải văn bản. Trống = giao dịch mở, không tính chỉ số; ngày không hợp lệ hoặc giờ đóng trước giờ mở đã nhập sẽ không cho R | 2026-07-08 13:15 |
| D | pair | công cụ — 6 ký tự không phân cách hoặc hậu tố broker (EURUSD, không phải EUR/USD hay EURUSD.m); công thức pip chỉ cho cặp FX (pip là 0.0001, hoặc 0.01 với JPY — nhận diện theo phần cuối); công cụ khác cần nhập kích thước pip theo thông số và đổi hệ số | EURUSD |
| E | direction | long / short (chữ thường — công thức trượt giá so sánh văn bản) | long |
| Cột | Tiêu đề | Nhóm 2: bối cảnh | Ví dụ |
|---|---|---|---|
| F | setup | tên setup trong playbook (phụ lục E) | asia-london-breakout |
| G | setup_class | A+ / A / B / C — cấp playbook lúc vào; danh sách tệp theo 15.9. Không phân cấp dựa kết quả sau đó | A+ |
| H | session | phiên vào (Asia / London / NY / overlap) | London |
| Cột | Tiêu đề | Nhóm 3: kế hoạch / thực thi | Ví dụ |
|---|---|---|---|
| I | planned_entry | giá vào dự kiến (ghi TRƯỚC khi đặt lệnh) | 1.0850 |
| J | actual_entry | giá khớp thực từ nền tảng | 1.0852 |
| K | planned_sl | stop-loss dự kiến | 1.0820 |
| L | planned_tp | take-profit dự kiến | 1.0910 |
| M | actual_exit | giá đóng thực tế | 1.0907 |
| N | spread_pips | spread lúc vào | 0.7 |
| O | slippage_entry_pips | công thức — trượt giá lúc vào theo pip, dương = khớp tệ hơn | 2.0 |
| Cột | Tiêu đề | Nhóm 4: chi phí và kết quả | Ví dụ |
|---|---|---|---|
| P | swap | swap có dấu trong tiền tài khoản (chi phí âm) | −3.20 |
| Q | commission | hoa hồng là chi phí không âm; 0 nếu không có. Đổi chi phí âm trong bản xuất broker thành số dương để công thức không cộng vào lợi nhuận | 7.00 |
| R | broker_gross_pnl | lãi/lỗ gộp từ nền tảng: sau spread và thực thi giá, trước swap và hoa hồng | 201.67 |
| S | broker_net_pnl | công thức (hoặc nhập tay nếu broker báo lãi/lỗ ròng) | 191.47 |
| T | planned_gross_pnl | lãi/lỗ dự kiến cho cùng loại thoát (số tiền): TP dự kiến cho thoát TP, SL dự kiến cho thoát stop; để trống khi thoát tay hoặc theo thời gian — tệp để W trống, còn 15.9 tính hao hụt bằng tổng trượt giá vào, hoa hồng và swap theo R: (O × giá trị pip + Q − P) / U, swap P giữ dấu (âm = chi phí) — tính tay, ngoài công thức | 220.00 |
| U | planned_risk | rủi ro dự kiến trong tiền tài khoản (USD ở ví dụ; khoảng giá vào dự kiến → SL dự kiến theo pip × giá trị pip cho khối lượng dự kiến). Đây là mẫu số R cố định của giao dịch, không chỉnh sau để khớp khoản lỗ. Không phải lỗ tối đa được bảo đảm: gap, trượt giá và chi phí có thể làm lớn hơn | 110.00 |
| V | r_net | công thức — lãi/lỗ ròng theo R; cột cấp dữ liệu cho chỉ số hiệu suất | 1.74 |
| W | execution_drag_R | công thức — chênh lệch giữa lãi/lỗ gộp dự kiến và lãi/lỗ ròng thực theo R; có thể âm khi kết quả tốt hơn dự kiến | 0.26 |
| Cột | Tiêu đề | Nhóm 5: quy trình | Ví dụ |
|---|---|---|---|
| X | mae_r | độ đi ngược giá lớn nhất trong thời gian giữ vị thế, theo R (định nghĩa: 15.9, mục 7) | 0.35 |
| Y | mfe_r | độ đi thuận giá lớn nhất trong thời gian giữ vị thế, theo R | 2.10 |
| Z | error_code | 0 = thực thi không lỗi; 1–9 = mã lỗi quyết định; 10 = lỗi hạ tầng (danh mục: 15.9) | 0 |
Công thức hàng — cột tính toán
Biến thể công thức:
Thiết lập: PL dùng tên hàm tiếng Ba Lan và dấu chấm phẩy; EN dùng tên tiếng Anh và dấu phẩy. Dấu phân cách tùy thiết lập vùng; trong Google Sheets, ngôn ngữ hàm được đặt riêng. Khi nhập, đặt B/C là ngày giờ rồi kiểm tra =CZY.LICZBA(C2) (EN: =ISNUMBER(C2)): kết quả đúng là PRAWDA/TRUE. Chỉ đổi cách hiển thị ô là chưa đủ.
Nhập công thức ở hàng 2 và điền xuống (hoặc sao chép vào vùng). Vùng đến hàng 1000 — nhật ký dài hơn cần mở rộng công thức hàng, xác thực và mọi vùng bảng chỉ số, kể cả kiểm tra đầy đủ.
=JEŻELI(ORAZ(CZY.LICZBA(I2);CZY.LICZBA(J2);DŁ(D2)=6;LUB(E2="long";E2="short"));JEŻELI(E2="long";J2-I2;I2-J2)*JEŻELI(PRAWY(D2;3)="JPY";100;10000);"")
=IF(AND(ISNUMBER(I2),ISNUMBER(J2),LEN(D2)=6,OR(E2="long",E2="short")),IF(E2="long",J2-I2,I2-J2)*IF(RIGHT(D2,3)="JPY",100,10000),"")
=JEŻELI(ORAZ(ILE.LICZB(P2:R2)=3;Q2>=0);R2+P2-Q2;"")
=IF(AND(COUNT(P2:R2)=3,Q2>=0),R2+P2-Q2,"")
=JEŻELI(ORAZ(CZY.LICZBA(C2);CZY.LICZBA(S2);CZY.LICZBA(U2));JEŻELI(ORAZ(C2>=1;C2<2958466;U2>0;LUB(B2="";ORAZ(CZY.LICZBA(B2);B2>=1;B2<=C2)));S2/U2;"");"")
=IF(AND(ISNUMBER(C2),ISNUMBER(S2),ISNUMBER(U2)),IF(AND(C2>=1,C2<2958466,U2>0,OR(B2="",AND(ISNUMBER(B2),B2>=1,B2<=C2))),S2/U2,""),"")
=JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(T2));(T2-S2)/U2;"")
=IF(AND(ISNUMBER(V2),ISNUMBER(T2)),(T2-S2)/U2,"")
Bảng tổng hợp: 9 chỉ số và cách diễn giải
Dán chỉ số trên trang tính riêng (như tệp: thêm tên trang trước mỗi vùng, ví dụ 'Journal'!V2:V1000) hoặc phía trên bảng — khi đó tiêu đề rời hàng 1, cần chỉnh tham chiếu. Sao chép khối cho nhiều công thức ở dòng riêng; đặt từng công thức vào ô phù hợp. AE2, AF2, AG2 thuộc trang Journal, không phải Statistics.
Nhật ký trống cho N = 0, tổng R = 0, drawdown tối đa = 0; WR, PF, kỳ vọng và trung bình chưa có phép đo để trống. PF cũng trống nếu không có lỗ vì tỷ số không có giá trị hữu hạn. Kết quả R cần lãi/lỗ ròng ở S, U dương, ngày/giờ dạng số ở C trong phạm vi ngày Excel. Nếu B được điền, phải là ngày nhận diện được không muộn hơn C. Excel lưu ngày dưới dạng số; định dạng ô không đổi văn bản thành ngày hoặc kiểm tra giờ có thật sự nhập theo UTC.
Tệp 1.2 dùng xác thực kiểu Stop cho ngày, hướng, cấp, chi phí hoa hồng, rủi ro, MAE/MFE và mã. Dán dữ liệu có thể vượt xác thực — vì vậy V từ chối ngày văn bản và rủi ro không dương, S từ chối chi phí hoa hồng âm, AG chỉ nhận mã nguyên 0–10. Kiểm tra hàng 16–19 của Statistics cho biết số lần đóng thiếu R, giao dịch có R nhưng thiếu mã hợp lệ, MAE và MFE không hợp lệ. Công thức ngày trả văn bản rỗng được coi là thiếu thời gian đóng, không phải giao dịch đóng sai. Mọi số đếm lớn hơn không đều cần giải thích trước khi đánh giá toàn mẫu.
Chỉ số hiệu suất dùng V. MAE/MFE trung bình trên mọi phép đo đã nhập dùng mẫu riêng: gồm số không âm, kể cả không, ngay khi V còn trống. Số âm, văn bản (kể cả “0.5” lưu dạng chữ), dấu cách hoặc giá trị Boolean trong cột đo sẽ chặn trung bình đến khi xử lý, thay vì âm thầm làm lệch. Số ô không hợp lệ nằm ở Statistics B18 cho MAE, B19 cho MFE; lỗi cột này không chặn trung bình hợp lệ cột kia. Không tự so cỡ mẫu đó với số giao dịch đóng. Nhập phép đo không âm cho cùng giai đoạn xác định trong đời vị thế; thiếu thì để trống. Biến thể thắng/thua dưới đây chọn tập con dựa V.
Số giao dịch: =ILE.LICZB(V2:V1000) Tỷ lệ thắng: =JEŻELI(ILE.LICZB(V2:V1000)=0;"";LICZ.JEŻELI(V2:V1000;">0")/ILE.LICZB(V2:V1000)) Profit factor: =JEŻELI(LICZ.JEŻELI(V2:V1000;"<0")=0;"";SUMA.JEŻELI(V2:V1000;">0")/-SUMA.JEŻELI(V2:V1000;"<0")) Kỳ vọng (R): =JEŻELI(ILE.LICZB(V2:V1000)=0;"";ŚREDNIA(V2:V1000)) Tổng R: =SUMA(V2:V1000)
Số giao dịch: =COUNT(V2:V1000) Tỷ lệ thắng: =IF(COUNT(V2:V1000)=0,"",COUNTIF(V2:V1000,">0")/COUNT(V2:V1000)) Profit factor: =IF(COUNTIF(V2:V1000,"<0")=0,"",SUMIF(V2:V1000,">0")/-SUMIF(V2:V1000,"<0")) Kỳ vọng (R): =IF(COUNT(V2:V1000)=0,"",AVERAGE(V2:V1000)) Tổng R: =SUM(V2:V1000)
AE2 (đường vốn): =JEŻELI(CZY.LICZBA(V2);SUMA($V$2:V2);"") AF2 (drawdown): =JEŻELI(CZY.LICZBA(AE2);MAX(0;$AE$2:AE2)-AE2;"") Drawdown tối đa (R): =MAX(AF2:AF1000)
AE2 (đường vốn): =IF(ISNUMBER(V2),SUM($V$2:V2),"") AF2 (drawdown): =IF(ISNUMBER(AE2),MAX(0,$AE$2:AE2)-AE2,"") Drawdown tối đa (R): =MAX(AF2:AF1000)
MAE trung bình (tất cả): =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI(ILE.LICZB(X2:X1000)=0;"";ŚREDNIA(X2:X1000))) (như trong tệp, B11) MFE trung bình (tất cả): =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI(ILE.LICZB(Y2:Y1000)=0;"";ŚREDNIA(Y2:Y1000))) (như trong tệp, B12) MAE trung bình của giao dịch thắng: =JEŻELI(WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;">0";X2:X1000);"")) MFE trung bình của giao dịch thua: =JEŻELI(WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")>0;"";JEŻELI.BŁĄD(ŚREDNIA.JEŻELI(V2:V1000;"<0";Y2:Y1000);"")) AG2 (coded_clean): =JEŻELI(ORAZ(CZY.LICZBA(V2);CZY.LICZBA(Z2));JEŻELI(ORAZ(Z2>=0;Z2<=10;Z2=LICZBA.CAŁK(Z2));JEŻELI(Z2=0;1;0);"");"") Thực thi không lỗi: =JEŻELI(ILE.LICZB(AG2:AG1000)=0;"";ŚREDNIA(AG2:AG1000)) Hao hụt thực thi trung bình: =JEŻELI(ILE.LICZB(W2:W1000)=0;"";ŚREDNIA(W2:W1000)) (tùy chọn, không có trong tệp)
MAE trung bình (tất cả): =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IF(COUNT(X2:X1000)=0,"",AVERAGE(X2:X1000))) (như trong tệp, B11) MFE trung bình (tất cả): =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IF(COUNT(Y2:Y1000)=0,"",AVERAGE(Y2:Y1000))) (như trong tệp, B12) MAE trung bình của giao dịch thắng: =IF(ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,">0",X2:X1000),"")) MFE trung bình của giao dịch thua: =IF(ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")>0,"",IFERROR(AVERAGEIF(V2:V1000,"<0",Y2:Y1000),"")) AG2 (coded_clean): =IF(AND(ISNUMBER(V2),ISNUMBER(Z2)),IF(AND(Z2>=0,Z2<=10,Z2=INT(Z2)),IF(Z2=0,1,0),""),"") Thực thi không lỗi: =IF(COUNT(AG2:AG1000)=0,"",AVERAGE(AG2:AG1000)) Hao hụt thực thi trung bình: =IF(COUNT(W2:W1000)=0,"",AVERAGE(W2:W1000)) (tùy chọn, không có trong tệp)
Đã đóng nhưng thiếu R: =WIERSZE(C2:C1000)-LICZ.PUSTE(C2:C1000)-ILE.LICZB(V2:V1000) Có R nhưng thiếu mã: =ILE.LICZB(V2:V1000)-ILE.LICZB(AG2:AG1000) MAE không hợp lệ: =WIERSZE(X2:X1000)-LICZ.PUSTE(X2:X1000)-ILE.LICZB(X2:X1000)+LICZ.JEŻELI(X2:X1000;"<0") MFE không hợp lệ: =WIERSZE(Y2:Y1000)-LICZ.PUSTE(Y2:Y1000)-ILE.LICZB(Y2:Y1000)+LICZ.JEŻELI(Y2:Y1000;"<0")
Đã đóng nhưng thiếu R: =ROWS(C2:C1000)-COUNTBLANK(C2:C1000)-COUNT(V2:V1000) Có R nhưng thiếu mã: =COUNT(V2:V1000)-COUNT(AG2:AG1000) MAE không hợp lệ: =ROWS(X2:X1000)-COUNTBLANK(X2:X1000)-COUNT(X2:X1000)+COUNTIF(X2:X1000,"<0") MFE không hợp lệ: =ROWS(Y2:Y1000)-COUNTBLANK(Y2:Y1000)-COUNT(Y2:Y1000)+COUNTIF(Y2:Y1000,"<0")
| Chỉ số | Cách đọc kết quả và hạn chế |
|---|---|
| Tỷ lệ thắng | Riêng nó không nói lên lợi thế — xem biểu đồ dưới. Trống khi chưa có giao dịch đóng; 0% nghĩa là mẫu không có lệnh thắng. Dùng để so với giả định playbook, không để phán xét “mình có giỏi không?” |
| Profit factor | Dưới 1.0 = kết quả theo R âm trong mẫu đang xét; chỉ có ý nghĩa cùng số giao dịch và drawdown. Mẫu không lỗ nghĩa là chia cho không, không phải “lợi thế vô hạn” |
| Kỳ vọng (R) | Con số quan trọng nhất của nhật ký: kết quả ròng trung bình mỗi giao dịch. Dương sau chi phí mô tả mẫu này, nhưng không tự chứng minh lợi thế. Đánh giá độ phân tán, phụ thuộc giữa kết quả, sự ổn định điều kiện và kết quả xác thực theo biên bản kiểm thử (N). Con số 50 là mốc rà soát ví dụ; quyết định tăng quy mô còn cần tuân thủ kế hoạch rủi ro |
| Drawdown tối đa (R) | Thước đo toàn lịch sử: AF tính drawdown từ đỉnh cao nhất của đường vốn, không phải lỗ tuần. Giới hạn tuần trong kế hoạch (phụ lục E) dùng R cơ sở kế hoạch hoặc phần trăm vốn. Không so trực tiếp với tổng r_net nếu U khác nhau giữa giao dịch. Khi R cơ sở bằng tiền tài khoản không đổi, kết quả kỳ theo đơn vị kế hoạch bằng tổng lãi/lỗ ròng S trong kỳ chia số tiền R cơ sở. Giới hạn phần trăm dùng cơ sở vốn trong kế hoạch. AF mô tả đường R giao dịch lũy kế, không phải drawdown số dư hoặc vốn chủ sở hữu. Drawdown bất thường cần kiểm tra dữ liệu, điều kiện và giả định kiểm thử |
| Trung bình MAE của giao dịch thắng | Thấp (ví dụ < 0.4R) = giả thuyết stop rộng hơn cần thiết — kiểm thử trên mẫu mới, không thu hẹp ngay (15.9); gần 1R = giao dịch thắng từng đi ngược gần hết rủi ro — kiểm tra điểm vào, vị trí stop trước khi kết luận lỗi thực thi |
| MFE trung bình của giao dịch thua | Cao = giá từng đi thuận rồi đảo chiều — kiểm toán quy tắc thoát và chốt từng phần |
| Hao hụt thực thi (trung bình) | Công thức tùy chọn ở trên, chỉ tính giao dịch có T. Giá trị cao kéo dài cho thấy chênh lệch giữa lãi/lỗ gộp dự kiến và lãi/lỗ ròng thực với kiểu thoát so sánh được: gồm chi phí và khác biệt giá thực thi. Thoát tay/sớm không có đối chiếu không vào trung bình này. Không gộp với ước tính chi phí đơn giản cho các lần thoát đó |
| Thực thi không lỗi | Tỷ lệ giao dịch đóng có error_code = 0 (AG chỉ đếm giao dịch có R hợp lệ và mã nguyên từ 0 đến 10; thiếu mã không tính là không lỗi). Khoảng 90% có thể là ngưỡng làm việc trong một kế hoạch, không phải chuẩn chất lượng. Kiểm tra số giao dịch được đánh giá và mã thiếu: 100% từ một mã 0 cùng nhiều ô trống không mô tả toàn nhật ký. Vi phạm nghiêm trọng cần hành động bất kể tỷ lệ. Chỉ số từ giao dịch phá quy tắc không phải kiểm thử sạch các quy tắc đó |
CSV khởi đầu và nhập
Nút tạo CSV hoàn toàn trong trình duyệt, không gửi dữ liệu hoặc tạo yêu cầu mạng riêng: 26 tiêu đề và hai hàng ví dụ — một thắng, một thua — để minh họa công thức. PL dùng chấm phẩy, thập phân dấu phẩy (chọn dấu phân cách rõ khi nhập; hành vi nhấp đúp tùy hệ thống), EN dùng dấu phẩy, thập phân dấu chấm. Sau nhập, thay cột tính O, S, V, W trong hàng ví dụ bằng công thức trên, xóa ví dụ trước lần ghi đầu (hoặc giữ trong tệp riêng). CSV có thể lưu độ chính xác đang hiển thị; trong XLSX 1.2, V và W dùng sáu chữ số thập phân. CSV khởi đầu cũng dùng sáu chữ số, tính từ số tiền mỗi hàng. Với làm tròn này, sai số R riêng lẻ không quá 0.0000005 R; PF nhạy hơn khi tổng lỗ rất nhỏ. Kết quả có trị tuyệt đối dưới 0.0000005 R có thể tròn thành không, đổi phân loại thắng/thua và tỷ lệ thắng; với dữ liệu đó, tăng độ chính xác trước xuất. Phân tích cần chính xác hơn phải tăng trước xuất, không chỉ sau trong script.
yyyy-mm-dd hh:mm (giao diện tiếng Ba Lan có thể hiện rrrr-mm-dd gg:mm), V/W ít nhất sáu chữ số thập phân, không phân cách hàng nghìn. Lưu CSV UTF-8. Trước gộp tệp, kiểm tra trade_id duy nhất: S1 không loại trùng. Gộp khớp từng phần của một vị thế theo đơn vị giao dịch đã chọn (gồm chi phí), giữ U ban đầu; không đếm cùng giao dịch vừa thành nhiều lần khớp vừa thành một tổng hợp. Mở bản sao trong soạn thảo văn bản: kiểm tra 26 trường mỗi bản ghi, dấu phân cách, ngày UTC và số. CSV chứa giá trị, không công thức hay trang khác — giữ XLSX gốc. Với S1, đặt PL: CSV_SEP=";", DECIMAL=","; EN: CSV_SEP=",", DECIMAL=".". UTF-8 có BOM có thể đọc bằng utf-8-sig.Kiểm tra hai ví dụ: lãi/lỗ ròng USD 191.47 với rủi ro USD 110 cho 1.740636 R; lãi/lỗ ròng −USD 113.10 với rủi ro USD 105 cho −1.077143 R. Từ các giá trị sáu chữ số, script nên cho N = 2, WR = 50%, tổng 0.663493 R, kỳ vọng 0.3317465 R, PF khoảng 1.615974852, max DD 1.077143 R. S2 in số làm tròn: WR 0.5; PF 1.62; kỳ vọng 0.332 R; tổng 0.66 R; max DD 1.08 R. Công thức XLSX đầy đủ tính từ tỷ số chưa tròn, nên chữ số cuối có thể khác. S1 dừng khi giao dịch đóng không hợp lệ; P5 yêu cầu script loại và báo bản ghi đó. Chỉ so chỉ số sau đối soát mẫu. P5 là chỉ dẫn tạo script, không phải tệp sẵn với kết quả bảo đảm.
Xây từng bước
- Tạo bảng tính trống trong Excel hoặc LibreOffice Calc; bảng tính đám mây cũng dùng được — nhưng đây là dữ liệu tài khoản, cần chủ động chọn.
- Nhập CSV khởi đầu (hoặc chép tiêu đề từ bảng cấu trúc). Kiểm tra số được nhập thành số — nếu “1.0850” là văn bản, biến thể dấu phân cách không khớp thiết lập hệ thống.
- Dán công thức hàng vào O2, S2, V2, W2 rồi điền xuống một vùng hàng dự phòng.
- Dán bảng chỉ số (chỉ số 1–9) phía trên bảng hoặc trên trang riêng; điền cột phụ AE, AF, AG xuống như công thức hàng đến hàng cuối đã chuẩn bị.
- Đặt lịch làm việc: ghi sau mỗi giao dịch đóng (checklist EOD trong phụ lục J có bước này), đọc chỉ số khi rà tuần, quyết định playbook hàng quý (phụ lục E).
Câu hỏi thường gặp
Excel, LibreOffice hay bảng tính đám mây?
Công thức dùng hàm cơ bản có trong Excel, LibreOffice Calc, Google Sheets. Tuy nhiên tên hàm, dấu phân cách tùy chương trình và tệp: PL dùng tên Ba Lan, chấm phẩy; EN dùng tiếng Anh, dấu phẩy. Bảng đám mây có thể cần tên tiếng Anh với chấm phẩy. Chúng tôi không tuyên bố kiểm thử mọi phiên bản. Khác biệt chính: nhật ký chứa khối lượng vị thế, kết quả và danh mục lỗi — trên đám mây, dữ liệu chịu chính sách nhà cung cấp và nằm ngoài ổ đĩa riêng. Quy tắc phần này là mặc định giữ dữ liệu tài khoản cục bộ; dùng đám mây có chủ đích, xuất bản sao lưu. Cùng lựa chọn mà phần vệ sinh dữ liệu phụ lục H yêu cầu trước dán nhật ký vào chat.
Cần bao nhiêu giao dịch để chỉ số có ý nghĩa?
Chỉ số mô tả mẫu từ giao dịch đầu; khoảng năm mươi là mốc làm việc ví dụ cho lần rà hệ thống đầu, không phải ngưỡng ý nghĩa thống kê — trước đó kỳ vọng và tỷ lệ thắng đổi mạnh sau từng chuỗi, phản ánh chuỗi gần đây hơn hệ thống; độ phân tán và phụ thuộc cũng quan trọng (vì vậy cùng số xuất hiện trong playbook phụ lục E như ngưỡng cấp A+). Không có nghĩa nhật ký vô ích trước mốc ấy: chỉ số quy trình hoạt động từ lần ghi đầu — tỷ lệ thực thi không lỗi, độ đầy đủ — và quyết định liệu số liệu hệ thống có đáng tin hay không. Thứ tự luôn là quy trình, mẫu, rồi đánh giá hệ thống. Cập nhật theo phiên bản E hiện tại: khoảng năm mươi giao dịch được nêu là thời điểm rà soát minh họa, không phải ngưỡng A+ trong playbook hiện tại. Xếp hạng dựa trên điều kiện bắt buộc và tiêu chí chất lượng định trước; riêng cỡ mẫu không quyết định hạng.
Vì sao cần error_code khi đã thấy kết quả?
Vì kết quả và chất lượng quyết định là hai chiều riêng: có giao dịch lãi nhưng phá kế hoạch (nguy hiểm nhất — vi phạm được thưởng sẽ được củng cố), có thực thi chuẩn vẫn lỗ. Error_code 0–10 cho phép tính kỳ vọng RIÊNG cho thực thi không lỗi: nếu sau lọc vi phạm hệ thống có lãi, đó là gợi ý vấn đề ở thực thi hơn quy tắc — khác biệt nhóm chưa chứng minh nguyên nhân, chỉ hướng nơi tìm. Tách mã 10 (hạ tầng) khỏi lỗi quyết định; quy trình các trường hợp đó trong phụ lục K, danh mục mã 1–9 ở 15.9.
Excel không nhận công thức — kiểm tra gì?
Gần như luôn là ba điểm. Đầu: biến thể — ngôn ngữ hàm và dấu phân cách đối số là thiết lập riêng. Nút cung cấp hai tổ hợp phổ biến (PL: tên Ba Lan + chấm phẩy; EN: tên Anh + dấu phẩy), nhưng kiểm tra vùng. Google Sheets cần kiểm tra cả tùy chọn tên hàm tiếng Anh. Hai: dấu thập phân — hệ dùng dấu phẩy sẽ đọc “1.0850” thành văn bản, nên có hai CSV. Ba: dấu nháy — chép qua ứng dụng nhắn tin có thể đổi nháy thẳng thành nháy cong; dùng nút trên trang, không qua trung gian. Nếu vẫn không tính, prompt P3 phụ lục H có thể rà công thức như mã.
Tài liệu khóa học liên quan
- 15.9 Nhật ký và chỉ số — đầy đủ trường (kể cả mã lỗi 0–10), định nghĩa MAE/MFE, chỉ số nâng cao (SQN, Sortino)
- 15.10 Kiểm toán chiến lược — có thể suy ra gì từ chỉ số và từ mẫu nào
- Phụ lục I — bộ mã — script S1–S3 sẵn có, đã kiểm thử: đọc CSV xuất từ bảng này (A–Z), tính chỉ số và vẽ đường vốn
- Phụ lục H, prompt P5–P7 — script tính chỉ số từ CSV của bảng này, cùng kiểm toán mẫu hình (P6–P7: thêm trạng thái tuân thủ và ghi chú trạng thái; P7 cần chỉ số tuần — chép hàng đóng trong tuần ra trang riêng rồi tính cùng công thức; chỉ lọc tự động không đổi kết quả COUNT/SUM/AVERAGE)
- Phụ lục E — mẫu kế hoạch — playbook hiệu chỉnh hàng quý bằng số liệu nhật ký
- Phụ lục J — checklist — quy trình EOD/EOW giữ nhật ký được dùng đều
Nguồn
- Van K. Tharp, Trade Your Way to Financial Freedom, ấn bản thứ 2, McGraw-Hill 2007 — bội số R và kỳ vọng là chỉ số hệ thống cốt lõi, cơ sở cột r_net và bảng chỉ số.
- Nội bộ: 15.9 Nhật ký và chỉ số (cấu trúc trường, mã lỗi, MAE/MFE) và 15.10 Kiểm toán chiến lược (suy luận có kỷ luật từ mẫu) — 26 cột A–Z cộng 3 trường tự đánh giá cho 29 cột trong tệp, nhưng bảng bao quát khoảng 20 trong 29 trường logic đánh số ở 15.9; trường thiếu là regime, actual_tp, slippage_exit_pips và bốn trường mà chính 15.9 yêu cầu thêm (“bảng tính có trước phần này”): lots, pip_value_at_open, strategy_version, evidence_link — nếu dùng script 15.9, thêm chúng thành cột tùy chọn từ AH trở đi để không ghi đè AA–AG; với script chờ A:Z, vẫn chỉ xuất vùng đó.
- Tài liệu: Microsoft — dấu phân cách đối số và CSV, Microsoft — nhập và xuất CSV, Google Sheets — vùng và ngôn ngữ hàm. Kiểm tra ngày 21 tháng Chín năm 2026; đây là quy tắc cấu hình, không phải tuyên bố đã thử mọi ứng dụng.
- NIST — bất định của trung bình: phụ thuộc kích thước mẫu và độ phân tán; không làm cơ sở cho ngưỡng phổ quát 50 giao dịch. Kiểm tra ngày 21 tháng Chín năm 2026.