CẢI THIỆN CHIẾN LƯỢC CỦA BẠN VỚI CHỨC NĂNG XẾP HẠNG (Ranking) TRONG AMIBROKER
Amibroker
Mục lục
✅ 1. Xếp hạng là gì và tại sao hữu ích?
-
Xếp hạng
là một phép so sánh giữa các mục (cổ phiếu, hợp đồng, tín hiệu…), theo ba trạng thái:
cao hơn – thấp hơn – bằng
. -
Cách đơn giản nhất để xếp hạng là gán điểm (ví dụ: mức tăng/giảm giá sau 100 phiên) rồi sắp xếp:
-
Giá cao → xếp hạng cao
-
Giá thấp → xếp hạng thấp
-
Ứng dụng thực tế
: bạn có thể nhanh chóng chọn ra top cổ phiếu tăng nóng hoặc phát hiện nhóm kém tiềm năng bằng cách xếp hạng thông minh!
🏆 2. 3 dạng xếp hạng mạnh mẽ trong AmiBroker
2.1 PositionScore (Xếp hạng tín hiệu BUY/SELL)
-
Khi hệ thống giao dịch tạo nhiều tín hiệu
mua/bán khống
vượt quá giới hạn vị thế, AmiBroker sẽ ưu tiên thực hiện lệnh bằng
PositionScore
. -
Cách hoạt động
: -
Trong AFL, gán
PositionScore = <điểm ưu tiên>
-
AmiBroker sẽ tự động xếp hạng và chọn tín hiệu tốt nhất theo giá trị tuyệt đối
Ứng dụng
: cực kỳ hiệu quả khi backtest danh mục đầu tư, tối ưu hóa vốn sử dụng, hoặc khi hệ thống đưa ra quá nhiều tín hiệu cùng lúc.
2.2 Xếp hạng trong bảng Exploration
- Dùng khi bạn muốn tạo report dạng danh sách và hiển thị thứ hạng trực tiếp bằng bảng.
Cách làm
:
afl
CopyEdit
Filter = 1;
AddColumn(Close, “Close”);
AddColumn(Volume, “Volume”);
SetSortColumns(-4); AddRankColumn(); // xếp hạng theo cột thứ 4 giảm dần
SetSortColumns(-3); AddRankColumn(); // xếp hạng theo cột thứ 3 tăng dần
-
Kết quả
: -
Xuất ra bảng có thêm cột
Rank
, giúp bạn dễ dàng lọc ra top/bottom mong muốn
2.3 Xếp hạng theo mã (Symbol Ranking) – mục đích chung
-
Dành cho người dùng nâng cao cần tạo điểm và xếp hạng ngoài PositionScore.
-
Sử dụng biến tĩnh (
StaticVar
) và hàm
StaticVarGenerateRanks
:
-
Tạo biến static lưu điểm của từng mã
-
Chạy
StaticVarGenerateRanks
để tạo thứ hạng tương ứng
-
Ví dụ đầy đủ
:
afl
CopyEdit
symlist = “AAPL,MSFT,GOOG,AMZN”;
for(i=0; (sym = StrExtract(symlist,i)) != ""; i++){
SetForeign(sym);
score = ROC(C,10);
RestorePriceArrays();
StaticVarSet(“Score”+sym, score);
}
// Tạo thứ hạng toàn danh sách
StaticVarGenerateRanks(“Rank”,“Score”,0,1224);
// Lấy và hiển thị thứ hạng
for(i=0; (sym=StrExtract(symlist,i)) != ""; i++){
r = StaticVarGet(“RankScore”+sym);
Plot(r, sym, colorCustom10+i);
}
-
Chế độ “top-N”
: nếu bạn chỉ muốn danh sách top 3 -
Chế độ “bottom-N”
: nếu muốn bottom 3 mã yếu nhất
⚠️ 3. Lưu ý khi dùng StaticVarGenerateRanks
-
Tốn tài nguyên
: mất ~20 ms cho 15k bar – nên
CHỈ chạy 1 lần/lần scan
, không làm cho mỗi mã. -
Khuyến khích
sử dụng khi: -
Cần xếp hạng
nhiều mã cùng lúc -
Khó hoặc không thể dùng PositionScore để “chọn tín hiệu”
-
Cách tối ưu hóa
: -
Dùng
if( Status(“stocknum”)==0 )
để chạy thuật toán ranking chỉ đối với ký hiệu đầu tiên
-
Loại bỏ biến static cũ bằng
StaticVarRemove(“Score*”)
trước mỗi lần ranking mới
🚦 4. Kết hợp cả 3 công cụ để nâng cấp hệ thống
Bạn có thể:
-
Dùng
PositionScore
để
quản lý tín hiệu ưu tiên
trong backtest -
Sử dụng
AddRankColumn
trong bảng khám phá để
hiển thị “top” mã theo điểm mạnh -
Dùng
StaticVarGenerateRanks
khi cần
xếp hạng tùy biến
, chẳng hạn: -
Dựa trên chỉ báo
-
Kết hợp điểm kỹ thuật và cơ bản
-
Kết hợp nhiều tiêu chí đa chiều
✅ Tổng kết – Thêm chiều sâu chiến lược với xếp hạng
| Công cụ | Ứng dụng | Điểm mạnh |
| PositionScore | Lọc tín hiệu BUY/SELL ưu tiên | Tích hợp sẵn, siêu nhanh, ít tốn bộ nhớ |
| AddRankColumn | Xếp hạng trong bảng báo cáo | Gọn nhẹ, trực quan |
| StaticVarGenerateRanks | Ranking toàn danh mục tùy chỉnh | Linh hoạt, đa chiều – nhưng cần tối ưu |
👉 Hướng dẫn áp dụng thực tế
-
Mục tiêu rõ ràng
: -
Chọn top cổ phiếu mạnh nhất? → dùng
PositionScore
+ ranking
-
Muốn khảo sát thị trường nhanh? → dùng
AddRankColumn
-
Cần ranking phức tạp (đa tiêu chí)? → dùng
StaticVarGenerateRanks
-
Hiệu suất phải đảm bảo
: -
Dùng
Status(“stocknum”)==0
để tránh rank quá nhiều lần
-
Xóa các biến static cũ trước khi xếp hạng mới
-
Kết hợp xu hướng và xếp hạng
: -
Ranking theo RSI, ROC, v.v.
-
Dùng kết quả rank để tạo tín hiệu hoặc filter mã
🎯 Kết luận
Xếp hạng trong AmiBroker không chỉ là một tính năng – đó là
vũ khí mạnh mẽ
để tối ưu hóa hệ thống giao dịch theo cách linh hoạt, đa chiều và hiệu quả.
👉
Thử áp dụng Ranking ngay hôm nay
– bạn sẽ bất ngờ về khả năng lựa chọn tín hiệu, lọc cổ phiếu và tối ưu hóa hệ thống!
Thông tin trong bài chỉ mang tính tham khảo, không phải khuyến nghị mua bán. Giao dịch phái sinh có rủi ro cao do sử dụng đòn bẩy; nhà đầu tư tự chịu trách nhiệm với quyết định của mình.
Tự động đặt lệnh theo tín hiệu AmiBroker thẳng vào tài khoản chứng khoán.
* Phần mềm chạy trên máy tính Windows. Giao dịch tự động vẫn có rủi ro mất vốn.



